DynamicWrapperX — это ActiveX компонент (СОМ-сервер), созданный по мотивам DynamicWrapper, как попытка более полной реализации идеи. Он предоставляет возможность в скриптах на JScript и VBScript регистрировать в качестве методов объекта и затем вызывать функции, экспортируемые dll-библиотеками, в частности функции Windows API. Версия 1 работает под Windows 98. С версии 2 также возможна регистрация функции по её адресу в памяти и регистрация машинного кода функции, представленного в виде хекс-строки. Этот компонент не является модификацией оригинального кода DynamicWrapper, он написан с нуля на языке ассемблера GoAsm. Версия 2.2 тестировалась под Windows XP SP3, Windows 7 SP2, Windows 8.1, Windows 10.
Файлы
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Распространяется с согласия автора абсолютно бесплатно.
Лицензия: freeware.
Корректно работает в том числе под 64-разрядной Windows 10.
Версия 2.2 тестировалась под Windows XP SP3, Windows 7 SP2, Windows 8.1, Windows 10.
Версия 1.0 работает под Windows 98.
Нововведения в версии 1.0.0.0 по отношению к DynamicWrapper:
Добавлена возможность регистрации компонента в системе для текущего пользователя. Это может пригодиться, если у пользователя нет прав администратора.
Расширен набор типов входных параметров и возвращаемых значений.
Добавлены выходные параметры.
Унифицирована работа со строками в JScript и VBScript.
Реализован обратный вызов (callback), т.е. возможность для функций API в свою очередь вызывать функции скрипта. Последнее нужно для использования таких API-функций, как EnumWindows.
Под Windows 98 отпала необходимость создавать отдельный объект для каждой используемой функции.
Добавлены методы NumGet, NumPut, StrPtr, StrGet, Space.
Изменения в версии 2 по отношению к версии 1:
Компонент не тестировался под Windows 98 и официально её не поддерживает.
Доступны два варианта: x86 и x64.
Изменён CLSID компонента.
При установке и удалении проверяется наличие 1-й версии; дальнейшее зависит от результатов проверки (см. раздел Регистрация в системе).
Расширен набор типов параметров и возвращаемых значений: добавлены типы m (Int64), q (UInt64), v (VARIANT).
Количество callback-функций теперь неограничено.
Расширены возможности метода Register (регистрация функции по ординалу, регистрация под другим именем, добавлен флаговый параметр "f=").
В методах StrPtr, StrGet, StrPut вместо типа строки можно прямо указать её кодировку.
Изменения в версии 2.1 по отношению к версии 2.0:
Добавлено: методы LastError, MemZero, MemCopy, MemRead, MemWrite.
Добавлено: необязательный параметр Offset для StrGet и StrPut.
Добавлено: возможность использования имён кодировок — "utf-8" и т.п. — в StrPtr, StrGet и StrPut.
Изменено: необязательный параметр Offset в NumGet и NumPut может опускаться из середины списка параметров.
версия 2.1.1.0 собрана без сжатия компрессором Mpress для избежания ложных срабатываний некоторых антивирусов.
в версии 2.1.1.1 исправлена ошибка в методе LastError, вызывавшая исключение при его вызове с аргументом 1, если описание для кода ошибки не было найдено.
В версию 2.2 добавлен флаговый параметр в метод RegisterCallback для указания соглашения вызова callback-функции.
В прикрепленных файлах версия 32-разрядная, 64-разрядная и мануал по установке и использованию от разработчика на английском и русском языках.
Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)
Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) .
Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит.
Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).
Внешняя обработка проверяет выгрузку конфигурации, расширений и внешних обработок и находит места, где код руками делает то, что платформа умеет штатно: регулярки через COM, пауза пустым циклом, свой хеш и Base64, распаковка архивов программой, буфер обмена через HTML-поле. По каждой находке пишет, доступна ли замена на месте или мешает тонкий клиент.
Нативная внешняя компонента для 1С 8 для чтения файлов Excel без установленного Excel и делает это быстро, файл 68МБ загружается в таблицу значений ~1 секунду.
Компонента поддерживает чтение двух форматов: Excel 2007+ и Excel 97-2003
Формат файла определяется автоматически по сигнатуре (первые 8 байт файла), а не по расширению.
Позволяет открывать XLS и XLSX файлы и получать содержимое листов в виде ТаблицыЗначений или JSON-массива.
В современных корпоративных решениях на платформе 1С:Предприятие 8.3 всё чаще возникает потребность в визуальном моделировании и автоматизации бизнес-процессов с использованием нотации BPMN 2.0. Стандартные средства платформы не предоставляют полноценного редактора BPMN, однако интеграция открытой библиотеки bpmn-js позволяет реализовать интерактивное моделирование бизнес-процессов непосредственно в 1С.
В статье рассмотрены архитектура решения, пошаговая инструкция по сборке библиотеки из исходников для WebKit, а также примеры программного взаимодействия между 1С и JavaScript.
В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.
(12) А Дефендер все, навсегда будет ругаться на эту тулзу?
Может это ошибка - все таки тулза подписана, да и инструменты Рассиновича для винды (кажется такая фамилия) тоже были достаточно "хактулзными" - но ничего, не ругается на них..
PS .. и странно - 32-битный ДинамикВраппер не определяется как хактулз..
(16) Проблема с x64 компонентой, клиенты используем и те и эти..
.. но версия компонента не от клиента, а от разрядности ОС зависит
(по моему так, не?).
(17) "(по моему так, не?). " не, не так, как раз от клиента.
Теперь по сути вопроса. У меня defender не ругается ни на ту, ни на другую версии, может это связано с установленным AVG.
Предлагаю провести следующий эксперимент: сделать копию Dll, взять winhex, найти там CLSID и исправить его в двух местах. Сохранить и проверить дефендером, будет ли ругань.
Добрый день.
Пытаюсь использовать эту компоненту для того, чтобы подключить в скрипт стороннюю библиотеку (не стандартную виндовую, которые описаны в хелпе). В параметрах метода Register передаю полный путь к библиотеки вида «C:\Program Files (x86)\MyProg Ver 831\bin\MyFile.dll». В результате получаю ошибку «Не удалось найти или загрузить DLL». Вопрос: так все-таки не удалось найти или загрузить? Т.е. может оно пути с пробелами не любит или путь нужно как-то хитро писать?
(21) сообщите автору об ошибке, быть может поможет разобраться в чем причина: ошибки в dll или что то не так на уровне ОС с правами. Поддержку работы с буфером обмена обещали на