ActiveX контейнер для управляемого интерфейса системы 1С:Предприятие
Разработка - Разработка внешних компонент
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
| Наименование | Скачано | Купить файл | По подписке PRO |
|---|---|---|---|
|
ActiveX контейнер для управляемого интерфейса системы 1С:Предприятие (архив)
.zip 65,45Kb ver:2.3
114
|
114 | 6 200 руб. Купить | 10 SM Скачать |
|
ActiveX контейнер для управляемого интерфейса системы 1С:Предприятие (установочный файл)
.zip 327,83Kb ver:2.3
17
|
17 | 6 200 руб. Купить | 10 SM Скачать |
|
Пример внешней обработки для подключения компоненты.
.epf 7,35Kb
7
|
7 | 2 500 руб. Купить | 1 SM Скачать |
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Как известно, компания 1С лишила разработчиков возможности размещения ActiveX объектов на управляемой форме. Обходные пути, конечно же, есть. Они неоднократно были описаны в публикациях. Например, в этой - //infostart.ru/public/61064/. Но все они сводятся к вставке элементов управления в тэг <OBJECT>, используемый в HTML документе, что лишь частично удовлетворяет потребность в их использовании. Впрочем, последние версии платформы, насколько я знаю, используют интерфейс WebView2 для приложений, работающих в ОС Windows, а прямое использование ActiveX в WebView2 не поддерживается (цитата).
Представленное в данной публикации решение, контейнер ActiveX объектов, является на данный момент единственной альтернативой размещения ActiveX объектов на управляемых формах. Поле HTML документа, как и другие поля элементов управления, имеющие оконный интерфейс (см. примечания), являются по сути всего лишь родительскими окнами для контейнера.
Работа с компонентой очень проста, поскольку компонента имеет всего лишь два метода (описание приемов работы с компонентой продемонстрировано в приложенных обработках). Всё остальное делает платформа 1С:Предприятие.
Примечание 1: в версиях платформы 1С:Предприятие выше 8.3.11 изменились классы окон, поэтому на этих платформах следует использовать в качестве окна для контейнера элемент с типом ФорматированныйДокумент, а в функцию УстановитьActiveX в качестве второго параметра передавать значение 1 или использовать альтернативную функцию ВставитьActiveX. Подробности см. в справочной системе внешней компоненты.
Примечание 2: в версиях платформы 1С:Предприятие выше 8.3.12 оконный интерфейс потеряли большинство элементов управления, поэтому на этих платформах следует использовать в качестве окна для контейнера элементы с типом ФорматированныйДокумент, HTMLДокумент и использовать альтернативную функцию ВставитьActiveX. Подробности см. в справочной системе внешней компоненты.
Примечание 3: В некоторых случаях компонента успешно загружается только когда платформа 1С:Предприятия запущена с правами администратора. Прочитать как это обойти или автоматизировать можно на этой странице.
Работоспособность проверена:
на версии платформы 8.3.15.1489 и версии Windows 7;
на версии платформы 8.3.23.1865 и версии Windows 10.
В некоторых случаях может возникать ошибка при регистрации компоненты, описанная в комментарии 84. В комментариях 85, 86 описаны способы устранения подобной ошибки.
P.S. Поскольку компонента выполнена по технологии COM, она должна быть зарегистрирована утилитой regsvr32.exe с правами администратора.
Реализация внешней компоненты - 32-битная, соответственно и клиент 1С:Предприятия, к которому будет подключаться компонента, также должен быть 32-битный. Есть, конечно, варианты решения проблемы совместимости, но моя публикация не об этом.
Внешняя обработка, приложенная к публикации - пример использования контейнера ActiveX объектов на управляемых формах.
Не для коммерческого использования (см. лицензионное соглашение).
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.378
Вступайте в нашу телеграмм-группу Инфостарт
Контейнер ActiveX COM control элемент управления внешняя компонента
См. также
Разработка внешних компонент Телефония, SIP Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)
Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)
5246 руб.
04.05.2018 52190 128 68
Разработка внешних компонент Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)
Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).
5084 руб.
12.05.2020 34946 147 100
Разработка внешних компонент Инструментарий разработчика Разработчик 1С 8.3 Бесплатно (free)
Внешняя обработка проверяет выгрузку конфигурации, расширений и внешних обработок и находит места, где код руками делает то, что платформа умеет штатно: регулярки через COM, пауза пустым циклом, свой хеш и Base64, распаковка архивов программой, буфер обмена через HTML-поле. По каждой находке пишет, доступна ли замена на месте или мешает тонкий клиент.
13.10.2026 1312 144 nedomolkov.ivan 5
Разработка внешних компонент Разработчик 1С:Предприятие 8 Бесплатно (free)
Нативная внешняя компонента для 1С 8 для чтения файлов Excel без установленного Excel и делает это быстро, файл 68МБ загружается в таблицу значений ~1 секунду. Компонента поддерживает чтение двух форматов: Excel 2007+ и Excel 97-2003 Формат файла определяется автоматически по сигнатуре (первые 8 байт файла), а не по расширению. Позволяет открывать XLS и XLSX файлы и получать содержимое листов в виде ТаблицыЗначений или JSON-массива.
03.07.2026 2383 skyadmin 31
Разработка внешних компонент Разработчик 1С 8.3 Бесплатно (free)
В современных корпоративных решениях на платформе 1С:Предприятие 8.3 всё чаще возникает потребность в визуальном моделировании и автоматизации бизнес-процессов с использованием нотации BPMN 2.0. Стандартные средства платформы не предоставляют полноценного редактора BPMN, однако интеграция открытой библиотеки bpmn-js позволяет реализовать интерактивное моделирование бизнес-процессов непосредственно в 1С. В статье рассмотрены архитектура решения, пошаговая инструкция по сборке библиотеки из исходников для WebKit, а также примеры программного взаимодействия между 1С и JavaScript.
03.04.2026 4275 SultanovStas 8
Разработка внешних компонент Разработчик 1С 8.3 Россия Бесплатно (free)
Создать NativeAPI-компоненту для Python-скриптов? Это просто!
20.10.2025 11019 IlyaKuznetsov 10
Разработка внешних компонент Системный администратор Разработчик Стажер Бесплатно (free)
Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!
14.01.2025 8222 bayselonarrend 17
Разработка внешних компонент Разработчик 1С:Предприятие 8 Россия Бесплатно (free)
В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.
04.12.2024 13808 kovalevdmv 29
Каким образом ее публиковать в системе? через 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;
ПоказатьПопробуйте в каталог с компонентой поместить .bat или .cmd файл, содержащий вызов: regsvr32.exe CtrlCont.dll
и уже его запускать от имени администратора. По крайней мере запустить файл проще, чем писать в командной строке.
ТипПоляФормы (обязательный)
Тип: Число.
Тип элемента формы, в который будет вставлен элемент управления.
Возможные значения:
0 - поле диаграммы (Диаграмма, ДиаграммаГанта, Дендрограмма)
1 - поле форматированого документа, поле HTML документа.
Поиск, соответственно, и производится по дочерним окнам формы с указанными классами.
Чтобы компонента могла правильно разместить элемент управления в поле формы,
следует размещать на форме только одно поле с указанным типом, иначе элемент
управления будет размещен в произвольном поле с подходящим типом,
не занятом другим элементом управления.
А по поводу технологии создания своих элементов управления, если Вы, конечно, имеете ввиду внешнюю компоненту, которой, собственно и является ActiveX контейнер, есть масса информации на дисках ИТС. С описанием и примерами.
Использование вашего контейнера позволит использовать любые ActiveX , которые зарекомендовали себя в обычных приложениях ?
Меня интересует Перехватчик клавишь , которым я пользовался на 8.1 . Подключить его в ваш контейнер не удалось .
Имеется ли у вас пример работы с перехватчиком клавишь , подобно данной публикации ? Мне нужно получать событие нажатия клавиши Enter , когда я пишу что-нибудь в Форматированном документе .
Использование вашего контейнера позволит использовать любые ActiveX , которые зарекомендовали себя в обычных приложениях ?
Я тестировал контейнер на ActiveX объектах как сторонних производителей, так и разработанных мной. Все работали.
Меня интересует Перехватчик клавишь , которым я пользовался на 8.1 . Подключить его в ваш контейнер не удалось .
Если Перехватчик - это ActiveX объект, то должен был подключиться.
Имеется ли у вас пример работы с перехватчиком клавишь , подобно данной публикации ? Мне нужно получать событие нажатия клавиши Enter , когда я пишу что-нибудь в Форматированном документе .
В принципе, реализовать такой Перехватчик вполне возможно (я даже писал ВК с похожим функционалом для 1С 7.7). Но вот привязать его к какому-то конкретному элементу на управляемой форме будет достаточно проблематично.
У меня следующая проблема. Мне нужно подключить ActiveX компоненту по работе со считывателем смарт-карт (Сайт компоненты - .
Подключаю ее вот таким образом:
SCardX_Easy = Контейнер1.УстановитьActiveX("SCardXEasy.SCardX_Easy", 1);Компонента подключается, располагается на форме и я ее вижу как СomОбъект.
Далее мне нужно заполнить некоторые свойства компоненты. При этом в компоненте происходят некоторые манипуляции(отключение от ридера, что конкретно происходит внутри - не знаю
После выполнения следующего кода
SCardX_Easy.SmartCardService = 11с прерывает отладку, дальнейший код не выполняется и 1с вываливается с ошибкой платформы при любом действии.
В неуправляемой форме подобной ошибки не возникает, правда там не СomОбъект создается, а ActiveX родным методом подключается.
Спасибо, вас и за контейнер и за ответы! На этот раз мне проще было переписать обработку под толстый клиент, но в дальнейшем надеюсь пригодится.
Если регистрировать в реестре через 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")можете подсказать в чем может быть причина.?
Спасибо.
Точно версию платформы не помню, но не ниже 8.3.6.2076. Причём тестировал на разных OS. Нестабильности не заметил. Вы как давно файл скачивали?
Добрый день!
Спасибо, прошу прощения за задержку с ответом.
Обработку прикладываю. Для установки компоненты AcniveX достаточно поставить демо версию системы Zulu:
(в самом внизу страницы ссылка, под скачать)
После установки, в обработке в процедуре ОбработчикОжиданияОткрытияФормы() нужно поправить путь к zmp файлу (это необходимо для Active X объекта). По умолчанию , если установите ZUlu по этому пути, сразу все должно работать:
C:\Program Files (x86)\Zulu 7.0\
Как воспроизвести:
Вариант 1: После открытия обработки и отображения карты "ткнутся" на любой объект карты - 1С закрывается. Воспроизводится почти всегда
Вариант 2: После открытия обработки и отображения карты , ввести ИДОбъекта (поле сверху слева)= 29. Повыбирать на карте объекты (закрываться не будет). Закрыть обработку, повторить сначала. Раза с 3-его 1С вылетает.
Пробовал на последнем релизе 2237 и 2041. На 32битных 64битных ОС.
Добрый день!
Да на в обычном приложении все работает замечательно.
Прикладываю обработку для обычного приложения, с внедренным Active X типовым способом.
Подключение карты в процедуре ПриОткрытии также сделано по умолчанию:C:\Program Files (x86)\Zulu 7.0\
Спасибо
Если в процедуре ВыборОбъекта() заменить фрагмент кода
ИДОбъекта = ЭлементУправления1.CurrentID; // именно в этом месте платформа "падает"
на
ИДОбъекта = Число(ЭлементУправления1.CurrentID);
программа перестаёт "падать". Видимо, платформа не распознаёт тип значения CurrentID, хотя в отладчике тип указывается как число.
Причём обратное преобразование
ЭлементУправления1.CurrentID = ИДОбъекта;
происходит вполне корректно. Вот такая загадка платформы 8.3...
Добрый день!
Применили Ваши рекомендации
"Вариант 1: После открытия обработки и отображения карты "ткнутся" на любой объект карты - 1С закрывается. Воспроизводится почти всегда " - "исправился"
но если открыть обработку (с подгрузкой карты) закрыть, открыть заново, закрыть, открыть - "Падение 1С"
Т.е. стабильно с 3 раза "падает 1С".
Получили ответ от разработчиков Zulu (они воспроизвели у себя ситуацию):
В сценарии работы формы получается так, что при закрытии формы элемент MapCtrl высвобождается раньше, чем объект connection point на IPropertyNotifySink, который форма-контейнер у него запросила. Стандартный сценарий подразумевает, что сначала высвобождаются запрошенные объекты у элемента, а потом уже сам элемент. Если элемент вставляется на форму через «прослойку», то тогда в этом коде нужно убедиться, что все connection point закрыты, прежде чем элемент будет высвобожден.
Обнаружил все же недочет, в рамках сеанса 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
SetActiveX : Неудачная попытка создания
элемента управления
MSDataGridLib.DataGrid.1.
SetActiveX : Неудачная попытка создания
элемента управления
MSChart20Lib.MSChart.2.
SetActiveX : Неудачная попытка создания
элемента управления
MSCAL.Calendar.7.
Попробуйте вставить любой другой известный Вам элемент управления.
проблема решена - у Excel не было ActiveX контрола. Excel.Application - контролом не является.
Установил "Надстройка Office 2003: веб-компоненты Office" (в ней есть нашелся контрол: "OWC11.Spreadsheet.11").
Заработало.
Советую, кстати, простую утилиту, которая показывает все установленные компоненты, их ProgID и являются они контролами или нет
Хотя, можно было догадаться: Excel.Application - это объект OLEAutomation, не из той оперы, как говорится.
А похожая утилита входит в поставку MS Visual Studio. Но всё равно за ссылку спасибо.
А каким образом на форму добавляются сами контролы? И можно ли таким образом добавить на форму контролы из библиотеки Windows Forms типа ListBox и TextBox
. Естественно, надо будет знать количество и типы параметров, которые должен будет принимать вызываемый обработчик события.
В любом случае спасибо за разъяснения
А вот здесь подсказать ничего не могу - не тестировал.
Хочу использовать Вашу разработку в нашем коммерческом продукте.
Ещё не скачивал, но судя по описанию, это то что мне надо. Раньше у нас всё было через HTML реализовано. Хотелось бы обсудить с Вами возможности, ограничения и условия.
С уважением, Александр. тел. 977-460-27-87
cobrax@pisem.net
весьма заинтересован с Вами связаться :-) ( с версии 14.ххх при установитьActiveX начинает возвращать НЕОПРЕДЕЛЕНО :-()
ActiveXКонтейнер.epf
На одном компьютере компонента установилась без проблем и выполняет свою функцию отлично.
Попробовали установить на втором, на третьем - бесполезно.
Она не появляется в списке компонент (смотрим через axhelper.exe), то есть AddIn.ControlContainer.1 не появляется в реестре.
Установщик требует повышение прав, разрешение получает, установка проходит успешно, но регистрации не происходит. Пытаюсь зарегистрировать через regsvr32 CtrlCont.dll (под полными правами, через файловые менеджеры, через командную строку) - выдается ошибка.
Пробовали переустанавливать, заходить под разными пользователями.
Скачал программу с
Проанализировал CtrlCont.dll, анализ показал, что проблема в файлах atl100.dll, mfc100.dll и msvcr100.dll
Установка Microsoft Visual C++ Redistributable не помогла, просто с рабочей машины из каталога SYSWOW64 скинул файлы в каталог с компонентой, и регистрация сработала.
mfc100.dll - это microsoft visual c++ 2012 -
msvcr100.dll - Microsoft Visual C++ 2010 Redistributable Package -
осталось только скачать пакетики и установить
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 292918
Создание 20.07.14 18:39
Обновление 25.12.25 10:57
Просмотры 51346
Загрузки 138
Рейтинг
35
Комментарии 85
Код открыт Нет
Рубрики Разработка внешних компонент
Кому Разработчик
Тип файла Архив с данными
Платформа 1С 8.3
Конфигурация 1С:Библиотека стандартных подсистем
Операционная система Windows
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)