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

23.03.10

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

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

Возможности новой платформы 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

 

См. также

SALE! 15%

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7875    59    23    

69

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8884    42    5    

74

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10464    36    25    

61

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    188059    1140    0    

912

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

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

14400 руб.

29.04.2020    32707    106    152    

73

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

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72806    627    45    

85

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

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

4200 руб.

10.11.2015    62838    94    59    

79

Разработка внешних компонент Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента в виде библиотеки (.dll файл), позволяющая посылать команды и получать ответы по протоколу WebSocket из 1С. Компонента работает только на стороне "клиента".

4440 руб.

22.06.2020    18133    18    33    

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

Ну к примеру получить Контрагентов текущей БД и вывести их в форму html.
8. Душелов 4018 20.11.09 15:48 Сейчас в теме
(6) А что там сложного? Обычное ком-соединение.
7. akkvamarin 120 20.11.09 11:35 Сейчас в теме
9. kadr 55 20.11.09 16:00 Сейчас в теме
Можно испросить пример как получить контекст приложения, загрузившего ВК из ВК?
10. Душелов 4018 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. Душелов 4018 23.11.09 13:09 Сейчас в теме
(12) >не АктивИкс, а NativeAPI
Не верно сказано ;), правильнее не COM, а NativeAPI.
Это всего лишь технология подключения ВК к 1С, не визуальная (пример - формирование штрихкода, на макете в 8.2 уже нет объекта компоненты, как было в 8.1, а ВК формирует картинку и вставляется на форму).

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

(13) А в чем проблема?
13. nikolega 174 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 3968 25.11.09 06:48 Сейчас в теме
(0)
русские называния событий IE не видит, как побороть - пока не знаю

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


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

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

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

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

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

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

и проверяем уровень безопасности для этой зоны (должно быть разрешено использование ActiveX)."
27. eiffil 28.12.09 21:30 Сейчас в теме
не помогло... м.б. что-то в настройках веб-сервера надо сделать???
28. Душелов 4018 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. Душелов 4018 28.12.09 21:51 Сейчас в теме
(29) А в 8.1 эта компонента работает?
31. eiffil 28.12.09 22:01 Сейчас в теме
сделал обычную (неуправляемую 8.2) форму, туда кинул контрол активХ - работает.
Что-то мне подсказывает, что в вэб-сервере настройки безопасности не дают выполниться dll-ке... Эх, как любят центральные 1С-ники усложнять жизнь...
32. Душелов 4018 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. Душелов 4018 28.12.09 23:32 Сейчас в теме
(33) Ну вот, уже набирается материал для собственной статьи ;)
35. cleaner_it 209 13.01.10 04:33 Сейчас в теме
(34) А на обычной форме в "толстом" клиенте пробовал визуальные актив-икс компоненты располагать? Что-то поиск молчит по этому поводу, такое чувство что все актив-икс придется располагать в тонких клиентах, и толстые совсем не у дел останутся
36. Душелов 4018 13.01.10 08:09 Сейчас в теме
(34) В управляемых формах? Точно так же.
37. Душелов 4018 23.03.10 12:09 Сейчас в теме
Спасибо sgeneralov за дополнение к статье по настройкам безопасности для .Net Framework'а.
38. Душелов 4018 23.03.10 14:11 Сейчас в теме
Добавил видео, демонстрирующее работу визуальной компоненты в тонком клиенте.
39. sergling 34 28.05.10 15:42 Сейчас в теме
подскажите почему у меня не работает конструкция
ОбъектВК = ЭлементВК.contentDocument;
а работает
ОбъектВК = ЭлементВК;

при этом почему то в отладчике не видно реальных методов и свойств объекта, хотя использовать их получается? Основная же моя беда - не находятся события объекта.
40. Душелов 4018 28.05.10 16:09 Сейчас в теме
(39) Вебклиент? Версия платформы какая?
41. Душелов 4018 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. Душелов 4018 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. Душелов 4018 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 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 Сейчас в теме
Делаю в тонком клиенте
Оставьте свое сообщение