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

23.03.10

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

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

Скачать файл

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

Наименование Бесплатно
Файлы примера использования компоненты VectorDrawing
.zip 91,88Kb
502
502 Скачать бесплатно
.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

 

См. также

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

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

8400 руб.

20.08.2024    22789    153    82    

149

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

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

15000 руб.

10.11.2023    13403    55    33    

75

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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

19200 руб.

06.12.2023    12348    54    8    

84

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

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

14400 руб.

29.04.2020    35097    112    152    

77

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

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

6000 руб.

06.11.2012    74649    631    45    

90

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

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    10559    11    4    

19

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

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

3600 руб.

02.09.2010    77962    73    280    

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

Ну к примеру получить Контрагентов текущей БД и вывести их в форму html.
8. Душелов 4021 20.11.09 15:48 Сейчас в теме
(6) А что там сложного? Обычное ком-соединение.
7. akkvamarin 120 20.11.09 11:35 Сейчас в теме
9. kadr 55 20.11.09 16:00 Сейчас в теме
Можно испросить пример как получить контекст приложения, загрузившего ВК из ВК?
10. Душелов 4021 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. Душелов 4021 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 3971 25.11.09 06:48 Сейчас в теме
(0)
русские называния событий IE не видит, как побороть - пока не знаю

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


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

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

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

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

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

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

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

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