Использование визуальных (ActiveX) компонент в тонком клиенте 1С 8.2

23.03.10

Разработка - Разработка внешних компонент

В данной статье рассматривается вопрос использования визуальных компонент (ActiveX) на форме тонкого клиента 1С 8.2 и веб-клиента на базе MS Internet Explorer.

Скачать файлы

Наименование Файл Версия Размер
Файлы примера использования компоненты VectorDrawing
.zip 91,88Kb
494
.zip 91,88Kb 494 Скачать бесплатно
.NET 2.0 Framework Configuration Tools
.zip 443,15Kb
144
.zip 443,15Kb 144 Скачать бесплатно

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

И так...

Как известно, MS Internet Explorer прекрасно работает с ActiveX-объектами, чем мы и воспользуемся.

Публикация компоненты.

 1. На веб-сервере выкладываем файлы компоненты и html-страницу для инициализации объекта компоненты. (примеры файлов приложены к статье)

<object id="vk"
classid="http://s0740/components/Dushelov.VectorDrawing1C.dll#Душелов.VectorDrawing"
width="100%" height="100%">
</object>

Где id - имя элемента, по которому потом будет получен объект компоненты,

и classid - идентификатор класса компоненты в формате "<полный путь к файлу компоненты на веб-сервере>#<имя класса компоненты>

2.  На клиентских машинах данный веб-сервер добавляем в список "надежных узлов"

(В IE - меню "Сервис" - "Свойства обозревателя" - закладка "Безопасность" - зона "Надежные узлы")

и проверяем уровень безопасности для этой зоны (должно быть разрешено использование ActiveX)

+ для компонент на .Net Framework'е выставляем нужные разрешения:

Жмем mmc, выбираем оснастку .NET 2.0 Framework Configuration - C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorcfg.msc (если ее нет, то скачиваем из файлов статьи), выбираем в дереве "Runtime security policy", жмем Adjust Zone Security и дальше выбираем Full Trust (возможно и с меньшим доверием будет работать) для зоны, в которую внесен сайт с нашим ActiveX.

3. После проделанных действий на клиентской машине можно открыть страницу инициализации компоненты и на ней должен появиться объект компоненты.

Использование на форме тонкого клиента

Контейнером для компоненты будем использовать элемент формы с типом "Поле HTML-документа", в котором открываем страницу инициализации компоненты

Пример:

Элементы.ВК.Документ.URL = "http://s0740/components/vector.html";

После загрузки страницы ищем элемент по идентифиатору, написанному выше, получаем объект и подписываем нужные события компоненты.

(вот с событиями только 1 нюанс - русские названия событий IE не видит, как побороть - пока не знаю)

Пример:

ЭлементВК = Элементы.ВК.Документ.getElementById("vk");
Если
ЭлементВК = Неопределено Тогда
   
Сообщить("Не найден объект компоненты!");
    Возврат;
КонецЕсли;

Элементы.ВК.ТолькоПросмотр = Ложь;
ОбъектВК = ЭлементВК.contentDocument;
ДобавитьОбработчик ОбъектВК.OnShapeMouseDoubleClick, ПриДвойномЩелчкеМышкойПоФигуре;

После этого можно работать с объектом компоненты, как с обычным ком-объектом.

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

К статье приложен пример использования компоненты "VectorDrawing"

Соответственно, для работы компоненты на клиентских машинах должен быть установлен .Net Framework 2.0

 

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2976    13    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3531    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177743    1073    0    

849

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27378    79    146    

59

Медиадисплей. Рекламный информационный монитор для покупателя.

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Монитор покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Можно использовать в качестве графического меню-борда в кафе и видеовывески. Управление выводом на телевизор через hdmi-приставку на базе Windows или Android. В качестве устройства отображения можно использовать Android-планшеты, фоторамки с Android, монитор любого Windows-компьютера, доступного по сети. Настраивается ЛЮБОЙ ДИЗАЙН экрана!

16800 руб.

30.05.2017    52103    34    69    

43

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

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61317    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11746    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    31110    31    18    

47
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Душелов 4013 19.11.09 12:48 Сейчас в теме
Слушаю идеи и предложения ;)
2. Русский 47 20.11.09 04:50 Сейчас в теме
(1) А реально будет: редактирование mxl средствами Excel?
3. Душелов 4013 20.11.09 07:37 Сейчас в теме
4. Русский 47 20.11.09 08:29 Сейчас в теме
(3) Можно ли сделать редактирование табличных документов 1С при помощи Excel? Ну, скажем, макетов для отчетов?
5. Душелов 4013 20.11.09 10:29 Сейчас в теме
(4) К теме данной статьи это не относится, но конверторы mxl2xls и обратно существуют.
d4rkmesa; +1 Ответить
6. kadr 55 20.11.09 11:06 Сейчас в теме
В статье рассмотрен вопрос об управлении ВК из 1С.
А есть ли наработки по управлению приложением из ВК на базе ActiveX?

Ну к примеру получить Контрагентов текущей БД и вывести их в форму html.
8. Душелов 4013 20.11.09 15:48 Сейчас в теме
(6) А что там сложного? Обычное ком-соединение.
7. akkvamarin 120 20.11.09 11:35 Сейчас в теме
9. kadr 55 20.11.09 16:00 Сейчас в теме
Можно испросить пример как получить контекст приложения, загрузившего ВК из ВК?
10. Душелов 4013 20.11.09 16:56 Сейчас в теме
(9) В шаблонах 1С реализовано через указатель на интерфейс 1С: http://www.asd-dnepr.com/v82vkomponent.html#_cpp_intf_comp

В ActiveX-ах только новым com-соединением к базе.
11. kadr 55 20.11.09 17:17 Сейчас в теме
Спасибо.
Реально помогли.
12. afanasko 35 23.11.09 11:27 Сейчас в теме
Интересно.
А что насчет файрфокса? Слышал что у 1С новый метод реализации внешних компонент: не АктивИкс, а NativeAPI. Не ковырял еще?
15. Душелов 4013 23.11.09 13:09 Сейчас в теме
(12) >не АктивИкс, а NativeAPI
Не верно сказано ;), правильнее не COM, а NativeAPI.
Это всего лишь технология подключения ВК к 1С, не визуальная (пример - формирование штрихкода, на макете в 8.2 уже нет объекта компоненты, как было в 8.1, а ВК формирует картинку и вставляется на форму).

А визуально - только ActiveX

(13) А в чем проблема?
13. nikolega 173 23.11.09 12:43 Сейчас в теме
Обратите внимание как автор себя любит :)
Dushelov.VectorDrawing1C.dll#Душелов.VectorDrawing
14. vip 23.11.09 12:51 Сейчас в теме
(13) Обращаем.
Любит себя вполне заслуженно.
Абсолютно нормально. Ненормально #nikolega.ОчереднойПеренумератор
SiAl; cleaner_it; +2 Ответить
16. larisab 160 23.11.09 13:09 Сейчас в теме
(14) Ха, любить себя можно и незаслуженно, как и вообще любить ;)
(13) Мало того, мы его тоже любим :)
17. vip 23.11.09 13:22 Сейчас в теме
(14+) Программеру добиться признания в среде программеров (я не об адынэснегах) практически невозможно. Каждый считает себя творцом, единственным и неповторимым.
В данном случае г-н Душелов этого заслуженно добился.
Чего и вам искренне желаем.
18. Abadonna 3958 25.11.09 06:48 Сейчас в теме
(0)
русские называния событий IE не видит, как побороть - пока не знаю

А я знаю! :D У меня ни в одной ВК нет русского названия
19. Душелов 4013 25.11.09 18:09 Сейчас в теме
(18) Я делал русскими, чтобы на форме в конфигураторе были "нормальные" (привычные) названия свойств и событий ;) Видимо, придется дублировать...
Abadonna; +1 Ответить
20. eiffil 25.12.09 22:57 Сейчас в теме
1. На веб-сервере выкладываем файлы компоненты и html-страницу для инициализации объекта компоненты. (примеры файлов приложены к статье)


А без вэб-сервера нельзя обойтись??? Это IIS???
21. Душелов 4013 25.12.09 23:17 Сейчас в теме
А какой смысл в тонком клиенте без вебсервера?
22. eiffil 28.12.09 19:17 Сейчас в теме
может смысла и не много, хотя где-то прочитал в 1С-ной литературе, что предпочтительней выбирать тонкий клиент. Но вся проблема в том, что в управляемом приложении (хоть даже толстый клиент) так просто не кинешь элемент управления ActiveX на форму...

М.б. пойти другим путем, и сделать контрол, который будет программно выводиться на форму без оболочки IE, но пока что я не знаю, как такое сделать.... Если есть мысли или ссылки по поводу последнего предложения, то их очень интересно было бы увидеть
23. Душелов 4013 28.12.09 20:59 Сейчас в теме
(22) Такого сделать не возможно.
24. Душелов 4013 28.12.09 21:07 Сейчас в теме
+(23)

А в чем проблема настроить вебсервер или расшарить папку в сети и грузить html вида \\192.168.0.1\components.html ?
25. eiffil 28.12.09 21:08 Сейчас в теме
какая-то запара с вэб-сервером, не хочет страница показывать компонент. Вместо него как-будто в страницу вставлен фрейм с двумя полосами прокрутки...

Не похоже, что это так и должно быть :| . В чем может быть косяк?
26. Душелов 4013 28.12.09 21:13 Сейчас в теме
(25) Не хватает прав. Эксплорер блокирует активикс.

"На клиентских машинах данный веб-сервер добавляем в список "надежных узлов"

(В IE - меню "Сервис" - "Свойства обозревателя" - закладка "Безопасность" - зона "Надежные узлы")

и проверяем уровень безопасности для этой зоны (должно быть разрешено использование ActiveX)."
27. eiffil 28.12.09 21:30 Сейчас в теме
не помогло... м.б. что-то в настройках веб-сервера надо сделать???
28. Душелов 4013 28.12.09 21:41 Сейчас в теме
(27) Если есть возможность скачать dll по ссылке, то с веб-сервером все нормально. А у эксплорера стот еще указать разрешение на выполнение .Net кода. вообщем, ради эксперимента стоит вообще поставить все в "разрешено" и поиграться настройками.
29. eiffil 28.12.09 21:49 Сейчас в теме
В эксплорере уже выставил се по максимуму. При попытке сохранить с сервера файл Dushelov.VectorDrawing1C.dll он выдает ему такое содержимое:

<html><head><title>Error</title></head><body>Не найдена указанная процедура. </body></html>

Отсюда и получался фрейм, как на скриншоте
30. Душелов 4013 28.12.09 21:51 Сейчас в теме
(29) А в 8.1 эта компонента работает?
31. eiffil 28.12.09 22:01 Сейчас в теме
сделал обычную (неуправляемую 8.2) форму, туда кинул контрол активХ - работает.
Что-то мне подсказывает, что в вэб-сервере настройки безопасности не дают выполниться dll-ке... Эх, как любят центральные 1С-ники усложнять жизнь...
32. Душелов 4013 28.12.09 22:23 Сейчас в теме
(31) Это не 1С-ники, это технология. Как же еще та же компонента будет работать в веб-клиенте? Там на форму ничего не кинешь.

А настройки безопасности не в веб-сервере, а именно в эксплорере, от веба главное отдать файл и все.
33. eiffil 28.12.09 23:17 Сейчас в теме
прогресс наступил (мало ли кому пригодится). по материалам похожего вопроса на gotdotnet выяснил, что если для папки в которой лежит dll в настройках стоит
Execute Permissions: Scripts and Executables
при этом dll интерпретируется как ISAPI dll, поэтому при обращении к ней она пытается выполниться и в результате выдается ошибка 404: ресурс не найден.
Для решения проблеммы достаточно убрать разрешение на выполнение для папки в которой лежит контрол...

Однако контрол всё равно не отоборажается, хотя скачать уже его можно... Буду копать дальше...
Душелов; +1 Ответить
34. Душелов 4013 28.12.09 23:32 Сейчас в теме
(33) Ну вот, уже набирается материал для собственной статьи ;)
35. cleaner_it 220 13.01.10 04:33 Сейчас в теме
(34) А на обычной форме в "толстом" клиенте пробовал визуальные актив-икс компоненты располагать? Что-то поиск молчит по этому поводу, такое чувство что все актив-икс придется располагать в тонких клиентах, и толстые совсем не у дел останутся
36. Душелов 4013 13.01.10 08:09 Сейчас в теме
(34) В управляемых формах? Точно так же.
37. Душелов 4013 23.03.10 12:09 Сейчас в теме
Спасибо sgeneralov за дополнение к статье по настройкам безопасности для .Net Framework'а.
38. Душелов 4013 23.03.10 14:11 Сейчас в теме
Добавил видео, демонстрирующее работу визуальной компоненты в тонком клиенте.
39. sergling 34 28.05.10 15:42 Сейчас в теме
подскажите почему у меня не работает конструкция
ОбъектВК = ЭлементВК.contentDocument;
а работает
ОбъектВК = ЭлементВК;

при этом почему то в отладчике не видно реальных методов и свойств объекта, хотя использовать их получается? Основная же моя беда - не находятся события объекта.
40. Душелов 4013 28.05.10 16:09 Сейчас в теме
(39) Вебклиент? Версия платформы какая?
41. Душелов 4013 28.05.10 16:27 Сейчас в теме
(39) и еще, события "не находятся" еще потому, что они могут быть с русскими названиями
И в отладчике не всегда видны свойства и методы ком-объектов.
43. sergling 34 28.05.10 16:46 Сейчас в теме
(41) имена латинскими, мне почему-то кажется что как-то связано с contentDocument, может быть новая версия платформы иначе работает.
42. sergling 34 28.05.10 16:43 Сейчас в теме
Тонкий клиент, 8.2.10.82, 8.2.11.229
пробовал свою компоненту, не из статьи
44. Душелов 4013 28.05.10 16:58 Сейчас в теме
contentDocument - это ActiveX-объект InternetExplorer'a
45. sergling 34 16.06.10 11:40 Сейчас в теме
Запустил таки это чудо через тонкий клиент (свой компонент), но вот при попытке старта через web-клиент получаю от браузера "...ФормаУправляемая.Форма(418)}: Поле объекта не обнаружено (url)". Соответственно 418 строка это
Элементы.ВьюверПоле.Документ.url = "http://localhost/agro.html";
как тут быть? У меня IE 8.0.6001.18702, может версия не подходящая?
46. kiba 63 18.06.10 16:49 Сейчас в теме
У кого-нибудь получилось таким же образом подключить компоненту WebCam.dll тоже от Dushelovа? Все делал по аналогии. Но не работает - черный квадрат и все...
47. minister2007 19.06.10 21:16 Сейчас в теме
dushelov, подскажи, что может быть при web-клиенте "Поле объекта не обнаружено (URL)"? В тонком все "как по маслу".
48. sergling 34 21.06.10 11:30 Сейчас в теме
У меня и его компонента и моя отлично работают в тонком клиенте. Обновил ИЕ до 8 версии, поставил фреймверк 2 версии, добавил хост в доверенную зону, разрешил для доверенной зоны все.
49. sergling 34 21.06.10 12:11 Сейчас в теме
Получается что свойство "Документ" поля вида "Поле html Документа" не работает в веб-клиенте, во всяком случае его тип не определен, по документации такое св-во доступно только в толстом клиенте. Однако успешно использует в тонком.
50. sergling 34 22.06.10 13:34 Сейчас в теме
св-во "документ" не доступно в обработчике при открытии формы в веб-клиенте, после открытия пожалуйста...
51. Душелов 4013 22.06.10 13:51 Сейчас в теме
Скорее всего при открытии его еще нет, этого документа, точнее его значение равно Null
52. sergling 34 23.06.10 11:08 Сейчас в теме
Вот это очень сбило с толку, сейчас пытаюсь понять почему в веб-клиенте не работает
ОбъектВК = ЭлементВК.contentDocument; Нету св-ва contentDocument, т.е. работает такая конструкция ОбъектВК = ЭлементВК, но при этом не получается использовать события активХ элемента.
53. yastreb_220 23.09.10 16:38 Сейчас в теме
а вообще таким образом можно с любой dll -кой работать чтоли??? кто нить пробовал??? напрмер в УТ 11 можно будет покдлючить оборудование ???
54. seermak 665 05.11.10 09:46 Сейчас в теме
Для заторможенных - на примере: http://infostart.ru/public/16446/ - как такое сделать в 8.2 на если несложно, то на пальцах :)
55. l_oleg 10.01.12 05:48 Сейчас в теме
(54) seermak,
также интересует этот вопрос.
Уточню: в 8.2 на ТОНКОМ клиенте
56. serpisal 3 10.03.12 15:37 Сейчас в теме
Интересно, пришлось чутка повозитья ,чтобы разобраться и прикрутить, но это того стоило
57. intrata 36 19.06.13 11:16 Сейчас в теме
Зарегистрировал Active-X компонент в системе. На форму документа добавил Поле HTML документа.
При создании на сервере присваиваю переменной даного поля следующий текст:

<HTML>
<OBJECT id=ThermalLib classid=clsid:904511D2-5407-4033-8DAD-07B33EC7317E width=0 height=0><PARAM NAME=""_Version"" VALUE=""65536""><PARAM NAME=""_ExtentX"" VALUE=""26"">
<PARAM NAME=""_ExtentY"" VALUE=""26"">
<PARAM NAME=""_StockProps"" VALUE=""0"">
</OBJECT>
</HTML>



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

Иду в свойства обозревателя. Для зоны "Интернет" Включаю всевозможные настройки Active-X и сценарии.

Запускаю форму - вуаля, ни на что не ругается, компонента Active-X отлично работает.

Все бы ничего, если не учитывать того, что я полностью уничтожил безопасность компьютера.

Нужно все те настройки включить только для надежных узлов. Но самый сложный вопрос: Какой адрес добавить в надежные узлы??? Промучался. Что только не добавлял. И 904511D2-5407-4033-8DAD-07B33EC7317E добавлял, и clsid:904511D2-5407-4033-8DAD-07B33EC7317E добавлял не работает. Открываю форму - все те же сообщения и 1С виснет намертво.
58. intrata 36 19.06.13 11:17 Сейчас в теме
Делаю в тонком клиенте
Оставьте свое сообщение