ActiveX контейнер для управляемого интерфейса системы 1С:Предприятие


Внешняя компонента «ControlContainer» для платформы «1С:Предприятие» v.8.2, 8.3 (8.3.10 и более ранние версии), реализующая размещение ActiveX объектов на управляемых формах системы 1С:Предприятие.

   Как известно, компания 1С лишила разработчиков возможности размещения ActiveX объектов на управляемой форме. Обходные пути, конечно же есть, они неоднократно были описаны в публикациях, например, в этой — //infostart.ru/public/61064/. Но все они сводятся к вставке элементов управления в тэг <OBJECT>, используемый в HTML документе, что лишь частично удовлетворяет потребность в их использовании. В прочем, последние версии платформы, насколько я знаю, используют движок web клиента, отличный от MS IE,  который не поддерживает ActiveX объекты.
   Представленное в данной публикации решение, контейнер ActiveX объектов, является на данный момент единственной альтернативой размещения ActiveX объектов на управляемых формах. Поле HTML документа, как и другие поля элементов управления, имеющие оконный интерфейс (см. примечания), являются по сути всего лишь родительскими окнами для контейнера.
   Работа с компонентой очень проста, поскольку компонента имеет всего лишь два метода (описание приемов работы с компонентой продемонстрировано в приложенных обработках). Всё остальное делает платформа 1С:Предприятие.

Примечание 1: в версиях платформы 1С:Предприятие выше 8.3.11 изменились классы окон, поэтому на этих платформах следует использовать в качестве окна для контейнера элемент с типом ФорматированныйДокумент, а в функцию УстановитьActiveX в качестве второго параметра передавать значение 1 или использовать альтернативную функцию ВставитьActiveX. Подробности см. в справочной системе внешней компоненты.

Примечание 2: в версиях платформы 1С:Предприятие выше 8.3.12 оконный интерфейс потеряли большинство элементов управления, поэтому на этих платформах следует использовать в качестве окна для контейнера элементы с типом ФорматированныйДокумент, HTMLДокумент и использовать альтернативную функцию ВставитьActiveX. Подробности см. в справочной системе внешней компоненты.
Работоспособность проверена на версии платформы
8.3.15.1489.

P.S. Поскольку компонента выполнена по технологии COM, она должна быть зарегистрирована утилитой regsvr32.exe с правами администратора. 
Реализация внешней компоненты — 32-битная, соответственно и клиент 1С:Предприятия, к которому будет подключаться компонента, также должен быть также 32-битный.

Внешняя обработка, приложенная к публикации — пример использования контейнера ActiveX объектов на управляемых формах.

 

Не для коммерческого использования (см. лицензионное соглашение).

  

72 Comments

  1. Ksu

    Есть вопрос по использованию данной компоненты.

    Каким образом ее публиковать в системе? через regsvr32 выдается ошибка и соответственно дальше дело не идет

    Сделала стандартным способом архив компоненты с манифестом.

    Установка проходит, а компонента не подключается.

    код инициализации пишу такой:

    Try
    AttachAddIn(«CommonTemplate.MGS_CtrlCont»,»CtrlCont»);
    ObjectVK = New («AddIn.CtrlCont.ControlContainer»);
    Except
    Try
    InstallAddIn(«CommonTemplate.MGS_CtrlCont»);
    AttachAddIn(«CommonTemplate.MGS_CtrlCont»,»CtrlCont»);
    ObjectVK = New («AddIn.CtrlCont.ControlContainer»);
    Except
    Message(«Внешняя компонента ControlContainer не установлена!»);
    EndTry;
    EndTry;
    
    

    Показать

    Reply
  2. premierex

    А какая именно ошибка выдаётся при регистрации через regsvr32?

    В какой ОС пытаетесь регистрировать?

    Какая разрядность у операционной системы?

    Не зная всего этого, я не смогу Вам подсказать.

    Reply
  3. Ksu

    (2)

    С регистрацией в системе разобралась. Надо было запустить регистрацию от администратора.

    Собственно система win7

    Хочется автоматизировать установку у пользователей

    Reply
  4. premierex

    Windows 7 упрямая операционка в плане безопасности.

    Попробуйте в каталог с компонентой поместить .bat или .cmd файл, содержащий вызов: regsvr32.exe CtrlCont.dll

    и уже его запускать от имени администратора. По крайней мере запустить файл проще, чем писать в командной строке.

    Reply
  5. kolayuk

    Здравствуйте, не могли бы вы предоставить исходники данной компоненты? Есть задача интегрировать свое окно в существующую форму 1С, через FindWindowEx это сделать проблематично, тк там куча окон с одинаковыми классами у всех ЭУ, нужно хотя бы получить HWND конкретной формы, очень интересно как вы это решили. Собственно интересуют даже не столько исходники конкретной компоненты, сколько технология создания своих элементов управления. Спасибо! Мои контакты: kolayuk at gmail.com

    Reply
  6. premierex

    (5) Здравствуйте. Если бы Вы внимательно прочитали публикацию, Вы, наверняка, уже давно реализовали бы свою задачу. В описании есть несколько моментов, которые явно указывают на механизм поиска окна на управляемой форме.

    ТипПоляФормы (обязательный)

    Тип: Число.

    Тип элемента формы, в который будет вставлен элемент управления.

    Возможные значения:

    0 — поле диаграммы (Диаграмма, ДиаграммаГанта, Дендрограмма)

    1 — поле форматированого документа, поле HTML документа.

    Поиск, соответственно, и производится по дочерним окнам формы с указанными классами.

    Чтобы компонента могла правильно разместить элемент управления в поле формы,

    следует размещать на форме только одно поле с указанным типом, иначе элемент

    управления будет размещен в произвольном поле с подходящим типом,

    не занятом другим элементом управления.

    А по поводу технологии создания своих элементов управления, если Вы, конечно, имеете ввиду внешнюю компоненту, которой, собственно и является ActiveX контейнер, есть масса информации на дисках ИТС. С описанием и примерами.

    Reply
  7. qwsachka

    Здравствуйте Premier !

    Использование вашего контейнера позволит использовать любые ActiveX , которые зарекомендовали себя в обычных приложениях ?

    Меня интересует Перехватчик клавишь , которым я пользовался на 8.1 . Подключить его в ваш контейнер не удалось .

    Имеется ли у вас пример работы с перехватчиком клавишь , подобно данной публикации ? Мне нужно получать событие нажатия клавиши Enter , когда я пишу что-нибудь в Форматированном документе .

    Reply
  8. premierex

    (7) qwsachka, отвечу по порядку:

    Использование вашего контейнера позволит использовать любые ActiveX , которые зарекомендовали себя в обычных приложениях ?

    Я тестировал контейнер на ActiveX объектах как сторонних производителей, так и разработанных мной. Все работали.

    Меня интересует Перехватчик клавишь , которым я пользовался на 8.1 . Подключить его в ваш контейнер не удалось .

    Если Перехватчик — это ActiveX объект, то должен был подключиться.

    Имеется ли у вас пример работы с перехватчиком клавишь , подобно данной публикации ? Мне нужно получать событие нажатия клавиши Enter , когда я пишу что-нибудь в Форматированном документе .

    В принципе, реализовать такой Перехватчик вполне возможно (я даже писал ВК с похожим функционалом для 1С 7.7). Но вот привязать его к какому-то конкретному элементу на управляемой форме будет достаточно проблематично.

    Reply
  9. nay2k

    Здравствуйте, premier.

    У меня следующая проблема. Мне нужно подключить ActiveX компоненту по работе со считывателем смарт-карт (Сайт компоненты — http://www.scardsoft.com/main.php3?Theme=SCardX).

    Подключаю ее вот таким образом:

     SCardX_Easy = Контейнер1.УстановитьActiveX(«SCardXEasy.SCardX_Easy», 1);

    Компонента подключается, располагается на форме и я ее вижу как СomОбъект.

    Далее мне нужно заполнить некоторые свойства компоненты. При этом в компоненте происходят некоторые манипуляции(отключение от ридера, что конкретно происходит внутри — не знаю

    После выполнения следующего кода

    SCardX_Easy.SmartCardService = 1

    1с прерывает отладку, дальнейший код не выполняется и 1с вываливается с ошибкой платформы при любом действии.

    В неуправляемой форме подобной ошибки не возникает, правда там не СomОбъект создается, а ActiveX родным методом подключается.

    Reply
  10. premierex

    (9) nay2k, ActiveX и Сom — это разные названия одной и той же технологии, раньше такие объекты OLE назывались, так что создаются объекты, разработанные по одной и той же технологии. Вообще, странно, конечно, что-то, не то видимо с контейнером. Хотя я массу ActiveX объектов на ней тестировал. И своих и от Microsoft как на скриншоте. Ничего не падало. И события отрабатывались корректно. Может, в платформе 1С дело? Я отлаживал на 8.2 (разные подрелизы) и на 8.3.5.1098. Вы на какой платформе 1С SCardX_Easy подключали? Мне так кажется, что дело в платформе 1С. У меня есть элемент управления web-камерой, который преспокойно работает на всех платформах 1С, которые я использовал и вот сообщение, что на управляемой форме платформа падает (там тоже использовался контейнер)! Поставлю самый последний релиз 8.3, потестирую.

    Reply
  11. premierex

    Кажется понял. Ошибка вываливается в тонком клиенте. Причем на платформе 8.3.6, в 8.3.5 всё работает…

    Reply
  12. nay2k

    (11) Да именно в тонком клиенте. Версия платформы — 8.3.4.437. Т.е ошибка именно из-за платформы?

    Спасибо, вас и за контейнер и за ответы! На этот раз мне проще было переписать обработку под толстый клиент, но в дальнейшем надеюсь пригодится.

    Reply
  13. pp77

    Добрый день!

    Если регистрировать в реестре через regsvr32 и подключать

    ПодключитьВнешнююКомпоненту(«AddIn.ControlContainer»)

    компонента работает великолепно

    Но это не удобно, т.к. придется регистрировать на каждом клиенте.

    Попытался сделать так:

    УстановитьВнешнююКомпоненту(«ОбщийМакет.ActiveX_UF»);

    ОбщийМакет.ActiveX_UF это макет (двоичные данные) в который загружен архив zip содержащий:

    1. файл манифеста «MANIFEST.xml» :

    <?xml version=»1.0″ encoding=»UTF-8″?>

    <bundle xmlns=»http://v8.1c.ru/8.2/addin/bundle»>

    <component os=»Windows» path=»CtrlCont.dll» type=»Com» arch=»i386″/>

    </bundle>

    2. сама dll

    УстановитьВнешнююКомпоненту отрабатывает на ура, но подключить не удается, строка подключения:

    ПодключитьВнешнююКомпоненту(«ОбщийМакет.ActiveX_UF»,»ControlContainer»)

    возвращает ложь

    можете подсказать в чем может быть причина.?

    Спасибо.

    Reply
  14. premierex

    (13) pp77, дело в том, что регистрировать компоненту в любом случае придётся «От имени Администратора». Я так думаю, не все пользователи имеют такие права, поэтому из макета они просто не смогут зарегистрировать компоненту, не имея соответствующих прав. Предлагаю воспользоваться способом, описанном в посте 4.

    Reply
  15. pp77

    Добрый день

    На платформе 8.3.6, компонента не стабильно работает (управляемый интерфейс), часто 1С вываливается (например при закрытии обработки) Вы писали об этом в п.11. Будете ли Вы оптимизировать под 8.3.6?

    Спасибо

    Reply
  16. premierex

    pp77, Я написал в конце публикации, что исправил эту ошибку. При тестировании использовал самую последнюю версию платформы, которая была доступна на начало августа 2015 г.

    Точно версию платформы не помню, но не ниже 8.3.6.2076. Причём тестировал на разных OS. Нестабильности не заметил. Вы как давно файл скачивали?

    Reply
  17. pp77

    (16) premier\r

    Качали 26.08.2015,

    Дата dll 11.08.2015

    тестировали на 8.3.2041

    попробуем под «совсем последней» платформой 8.3.2237

    Reply
  18. premierex

    (17) pp77, мне кажется не в платформе дело. Возможно, проблема в ActiveX элементе, который Вы пытаетесь использовать совместно с контейнером. Я протестировал не меньше десятка ActiveX объектов. Последовательно вызывал их методы, изменял свойства, инициировал события. Закрывал форму, на которой расположен контейнер, снова открывал, закрывал 1С без закрытия формы — не было краха системы! Может, вышлете Вашу обработку с ActiveX объектом, естественно, для тестирования?

    Reply
  19. pp77

    (18)

    Добрый день!

    Спасибо, прошу прощения за задержку с ответом.

    Обработку прикладываю. Для установки компоненты AcniveX достаточно поставить демо версию системы Zulu:

    Zulu (в самом внизу страницы ссылка, под скачать)

    После установки, в обработке в процедуре ОбработчикОжиданияОткрытияФормы() нужно поправить путь к zmp файлу (это необходимо для Active X объекта). По умолчанию , если установите ZUlu по этому пути, сразу все должно работать:

    C:Program Files (x86)ulu 7.0\r

    Как воспроизвести:

    Вариант 1: После открытия обработки и отображения карты «ткнутся» на любой объект карты — 1С закрывается. Воспроизводится почти всегда

    Вариант 2: После открытия обработки и отображения карты , ввести ИДОбъекта (поле сверху слева)= 29. Повыбирать на карте объекты (закрываться не будет). Закрыть обработку, повторить сначала. Раза с 3-его 1С вылетает.

    Пробовал на последнем релизе 2237 и 2041. На 32битных 64битных ОС.

    Reply
  20. premierex

    (19) pp77, действительно, не работает ни в тонком клиенте, ни в толстом. Будет время — потестирую. А на обычных формах пробовали запускать? Сам ActiveX — то хоть рабочий?

    Reply
  21. pp77

    (20)

    Добрый день!

    Да на в обычном приложении все работает замечательно.

    Прикладываю обработку для обычного приложения, с внедренным Active X типовым способом.

    Подключение карты в процедуре ПриОткрытии также сделано по умолчанию:C:Program Files (x86)ulu 7.0\r

    Спасибо

    Reply
  22. premierex

    (21) pp77, вот что я заметил при тестировании:

    Если в процедуре ВыборОбъекта() заменить фрагмент кода

    ИДОбъекта = ЭлементУправления1.CurrentID; // именно в этом месте платформа «падает»

    на

    ИДОбъекта = Число(ЭлементУправления1.CurrentID);

    программа перестаёт «падать». Видимо, платформа не распознаёт тип значения CurrentID, хотя в отладчике тип указывается как число.

    Причём обратное преобразование

    ЭлементУправления1.CurrentID = ИДОбъекта;

    происходит вполне корректно. Вот такая загадка платформы 8.3…

    Reply
  23. pp77

    (22)

    Добрый день!

    Применили Ваши рекомендации

    «Вариант 1: После открытия обработки и отображения карты «ткнутся» на любой объект карты — 1С закрывается. Воспроизводится почти всегда » — «исправился»

    но если открыть обработку (с подгрузкой карты) закрыть, открыть заново, закрыть, открыть — «Падение 1С»

    Т.е. стабильно с 3 раза «падает 1С».

    Reply
  24. premierex

    (23) pp77, действительно, «падает 1С» при повторном открытии обработки. Но только с объектами Zulu. Обработка, приложенная, как пример использования, открывается сколько угодно раз. Я раз 20 открывал-закрывал эту обработку и это не приводило к падению 1С. Очевидно проблема в объекте Zulu, потому как контейнер, содержащий другие ActiveX объекты, при многократном открытии не приводит к краху системы.

    Reply
  25. premierex

    (23) pp77, попробовал изменить Вашу обработку таким образом: контейнеры в ней создаются, но ActiveX объекты не устанавливаются. Обработка запускается множество раз и не «роняет» 1С. Стало быть, вывод сам собой напрашивается — дело не в контейнере, а в элементе управления.

    Reply
  26. pp77

    (25)

    Добрый день!

    Спасибо. Будем связываться с разработчикам Zulu.

    Reply
  27. pp77

    Добрый день!

    Получили ответ от разработчиков Zulu (они воспроизвели у себя ситуацию):

    В сценарии работы формы получается так, что при закрытии формы элемент MapCtrl высвобождается раньше, чем объект connection point на IPropertyNotifySink, который форма-контейнер у него запросила. Стандартный сценарий подразумевает, что сначала высвобождаются запрошенные объекты у элемента, а потом уже сам элемент. Если элемент вставляется на форму через «прослойку», то тогда в этом коде нужно убедиться, что все connection point закрыты, прежде чем элемент будет высвобожден.

    Reply
  28. premierex

    (27) pp77, Немного подправил код внешней компоненты. Сейчас обработка открывается — закрывается множество раз без «падения системы». Скиньте в личку e-mail. Я вышлю Вам ВК для тестирования.

    Reply
  29. pp77

    Добрый день!

    Скинул в личку мой адрес

    Спасибо.

    Reply
  30. pp77

    Добрый день!

    Спасибо проблема решена

    Reply
  31. pp77

    Добрый день!

    Обнаружил все же недочет, в рамках сеанса 1С все работает корректно, но при закрытии 1С, 1С закрывается с ошибкой.

    Имя события проблемы: APPCRASH

    Имя приложения: 1cv8c.exe

    Версия приложения: 8.3.6.2299

    Отметка времени приложения: 55f16760

    Имя модуля с ошибкой: ntdll.dll

    Версия модуля с ошибкой: 6.1.7601.18933

    Отметка времени модуля с ошибкой: 55a69e20

    Код исключения: c0000005

    Смещение исключения: 00051365

    Версия ОС: 6.1.7601.2.1.0.16.7

    Код языка: 1049

    Дополнительные сведения 1: 0a9e

    Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789

    Дополнительные сведения 3: 0a9e

    Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789

    Reply
  32. premierex

    (31) pp77, а какие объекты Zulu подключаете, те же, что и в выложенных ранее обработках?

    Reply
  33. premierex

    (31) pp77, не удалось воспроизвести ошибку. Несколько раз в течение сеанса открывал — закрывал обработку. Потом закрыл приложение. Всё нормально отработало.

    Reply
  34. pp77

    Да обработка «не валит» 1С. Возможно, что то не то сделали в функционале (будем смотреть) по результатам, отпишусь.

    Reply
  35. Maxis

    Компонента CtrlCont.dll успешно установлена. Но на Windows 10 при открытии обработок из архива сразу пишет:

    SetActiveX : Неудачная попытка создания

    элемента управления

    MSDataGridLib.DataGrid.1.

    SetActiveX : Неудачная попытка создания

    элемента управления

    MSChart20Lib.MSChart.2.

    SetActiveX : Неудачная попытка создания

    элемента управления

    MSCAL.Calendar.7.

    Reply
  36. premierex

    (35) Maxis, Все эти элементы управления — стандартные из поставки Windows 7 и взяты только для примера. В Windows10 ProgID этих элементов может быть другим, а может и элементов самих не быть.

    Попробуйте вставить любой другой известный Вам элемент управления.

    Reply
  37. premierex

    (35) Maxis, кстати, позвольте поинтересоваться: откуда у Вас эта внешняя компонента? В списке скачавших файл Вашего nick-name’а нет…

    Reply
  38. tomasian

    при попытке Контейнер1.УстановитьActiveX(«Excel.Application.16», 1); умирает 1с

    стоит win 10 x64, excel 2016, 1c 8.3.8.2027 также пробовал на excel 2013 по реестру смотрел PRogID корректный

    Reply
  39. premierex

    (38) tomasian, к сожалению, протестировать не могу — OpenOffice у меня установлен.

    Reply
  40. tomasian

    (39)

    проблема решена — у Excel не было ActiveX контрола. Excel.Application — контролом не является.

    Установил «Надстройка Office 2003: веб-компоненты Office» (в ней есть нашелся контрол: «OWC11.Spreadsheet.11»).

    Заработало.

    Советую, кстати, простую утилиту, которая показывает все установленные компоненты, их ProgID и являются они контролами или нет

    http://www.nirsoft.net/utils/axhelper.html

    Reply
  41. premierex

    (40) tomasian, я, в принципе, это и предполагал, но, поскольку у меня установлен OpenOffice, проверить не смог.

    Хотя, можно было догадаться: Excel.Application — это объект OLEAutomation, не из той оперы, как говорится.

    А похожая утилита входит в поставку MS Visual Studio. Но всё равно за ссылку спасибо.

    Reply
  42. Wladimir_spb

    Доброго дня, Максим

    А каким образом на форму добавляются сами контролы? И можно ли таким образом добавить на форму контролы из библиотеки Windows Forms типа ListBox и TextBox

    Reply
  43. premierex

    (42) Здравствуйте, Владимир. Элементы управления добавляются не на форму — ограничение от 1С для управляемых форм. Они встраиваются в объект ActiveX Container. На скриншотах, прилагаемых к публикации, как раз и продемонстрировано встраивание Windows ActiveX объектов в контейнер. Таким образом, внешняя компонента позволяет встраивать любые зарегистрированные в системе элементы управления.

    Reply
  44. Wladimir_spb

    Уже понял, что лист-бокс меня не спасет. В обычных формах я его юзал, вместо выпадающего списка (нужен был контроль нажатия клавиш и мышки внутри списка). А в управляемых формах даже если я это повторю, то все равно не смогу сделать из него «выпадающий» список, так чтобы он раскрывался поверх других элементов. При расширении списка он просто будет двигать другие элементы формы, а не «раскрываться» поверх.

    Reply
  45. premierex

    (44) Не понял, в чём проблема использования? Все подписки на события элементов управления добавляются методом встроенного языка 1С: ДобавитьОбработчик <Событие>, <ОбработчикСобытия>;

    . Естественно, надо будет знать количество и типы параметров, которые должен будет принимать вызываемый обработчик события.

    Reply
  46. premierex

    (44)

    А в управляемых формах даже если я это повторю, то все равно не смогу сделать из него «выпадающий» список, так чтобы он раскрывался поверх других элементов. При расширении списка он просто будет двигать другие элементы формы, а не «раскрываться» поверх.

    А вот здесь подсказать ничего не могу — не тестировал.

    Reply
  47. Wladimir_spb

    (45)(46) Привязка к событиям скорее всего сработает. А вот «раскрывание» списка без смещения других элементов в УФ наверняка не получится. В обычных формах я список просто поверх других элементов накладывал и при «раскрытии» он закрывал все что оказывалось под ним. В УФ нельзя накладывать элементы друг на друга.

    В любом случае спасибо за разъяснения

    Reply
  48. trupo

    Добрый день Максим.

    Хочу использовать Вашу разработку в нашем коммерческом продукте.

    Ещё не скачивал, но судя по описанию, это то что мне надо. Раньше у нас всё было через HTML реализовано. Хотелось бы обсудить с Вами возможности, ограничения и условия.

    С уважением, Александр. тел. 977-460-27-87

    Reply
  49. premierex

    (48) Добрый день. Пишите в личку или оставьте e-mail, Думаю, договоримся.

    Reply
  50. trupo

    Моя почта a.truhan@ibsco.ru, или skype tru-po. Вашу не смог найти.

    Reply
  51. user851284

    День добрый

    cobrax@pisem.net

    весьма заинтересован с Вами связаться 🙂 ( с версии 14.ххх при установитьActiveX начинает возвращать НЕОПРЕДЕЛЕНО :-()

    Reply
  52. premierex

    (51) Добрый день. Прочитайте ещё раз публикацию. В ней чётко указано

    для платформы «1С:Предприятие» v.8.2, 8.3 (8.3.10 и более ранние версии)

    . На версии 14.ххх работать не будет, т. к. начиная с версии, по-моему 13.ххх у элементов управления нет окон, они прорисовываются платформой как web-browser прорисовывает элементы управления. А нет окон — некуда и контейнер вставлять.

    Reply
  53. user851284

    абалденна….. и… про ActiveX в управляемых…. остается только ЗАБЫТЬ?

    Reply
  54. premierex

    (53) На той платформе, которую Вы указали, забыть однозначно.

    Reply
  55. user851284

    отвратительно 🙁

    Reply
  56. premierex

    (55) Такая вот политика 1С и я с этим ничего поделать не могу.

    Reply
  57. premierex

    (56) Пока, по-крайней мере, не могу…

    Reply
  58. user851284

    ,… мучаться с полем HTML….. ыыыы 🙁

    Reply
  59. premierex

    (58) Пока вариантов 2 — установить версию платформы 8.3.10.ххх, если конфигурация позволяет, и использовать ActiveX контейнер или … ну да — поле HTML.

    Reply
  60. user851284

    …. второй вариант тоже не работает :-(…. то ли версия встроенного ИЕ в 1С убога…. то ли….

    Reply
  61. premierex

    (60) То ли не знаем как это готовить )))

    Reply
  62. user851284

    возможно что безопасность…. в ИЕ после настроек все работает и даже не спрашивает… в 1С в поле HTML — пока глухо….

    Reply
  63. erutan

    (60) здравствуйте!

    Удалось победить HTML поле на новых платформах? Обновились на 8.3.15 (по важной причине), и все нормально, кроме отвалившейся работы с камерой ((((

    Reply
  64. premierex

    (63) Нет, пытаться даже не стал. Поле HTML документа даже не знает, что такое внешняя компонента, а вот про ActiveX объекты знает. Только я не уверен, что политика безопасности встроенного в 1С web browser’а, оболочкой которого и является по сути Поле HTML документа, позволит эти ActiveX в этом поле размещать. Так что вариантов пока не вижу.

    Reply
  65. premierex

    (63) Решение найдено! Оно описано в Примечании 2 публикации. Для верности приложу скришот и тестовую обработку для тех, кто уже скачал внешнюю компоненту. Тестировал на ActiveX объектах, встроенных в Windows 7, так что на версиях Windows, отличных от 7-ой, возможно придется искать другие ActiveX объекты.

    Reply
  66. premierex

    (65) Две обработки приложил, а скрин забыл…

    Reply
  67. user851284

    нуу…. мы пока перестали использовать «компоненту» …. от слова СОВСЕМ…. заставив подключенную COM-библиотеку открывать СВОЕ СОбСТВЕННОЕ окно

    Reply
  68. premierex

    (67) Есть ещё так называемые безоконные (windowless) элементы управления, и, не имея исходников, эти элементы без контейнера просто никуда не вставить.

    Reply
  69. user851284

    ммм…. «не визуальная» библиотека?… а чем не устроит просто МойCOMОбъект = Новый COMОбъект(«блаблабла»); …. ну а далее методы и подписка на события….

    Reply
  70. premierex

    (69) А кто сказал, не «визуальная»? Читайте внимательно, я написал — безоконные. У таких элементов управления нет собственного окна, поэтому они и встраиваются в контейнер, используя его окно для визуализации. Почитайте документацию про ActiveX. Тема довольно объемная и совсем не в рамках данной публикации.

    Reply
  71. sorbo999

    Здравствуйте, Максим. Нам необходимо воспользоваться вашей компонентой в конфигурации на нашем предприятии. С уважением, Константин email: megabit4098@gmail.com

    Reply
  72. premierex

    (71) Доброго дня, Константин! Ответил Вам по e-mail.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *