Что же это такое? Это простая COM компонента, которая транслирует свои команды в указанную Native компоненту, что позволяет обойти ограничение использования на старых платформах 1С.
Как использовать?
1. Регистрируете компоненту командой regsvr32.
2. Указываете путь к файлу с native компонентой и ее наименование через команду SetDriverName(ПутьККомпоненте, НаименованиеКомпоненты) или УстановитьИмяДрайвера
Пример кода 1С для платформы 8.1:
ПодключитьВнешнююКомпоненту("AddIn.UniversalNativeWrapper");
Драйвер = Новый ("AddIn.UniversalNativeWrapper");
Если Драйвер.УстановитьИмяДрайвера("E:\Yandex.Disk\YandexDisk\SHTRIHMKKT_NATIVE_32_SMDrvFR1C3.dll", "SMDrvFR1C3") Тогда
Ревизия = Драйвер.ПолучитьРевизиюИнтерфейса();
КонецЕсли;
Также данное решение выложена на GitHUB. Все желающие могут поучаствовать в разработке.
Идейный вдохновитель: Оболочка для работы с последними драйверами ККМ АТОЛ
На данный момент есть следующие проблемы:
1. Имеется небольшая утечка памяти, нужно доработать механизм удаления объектов из памяти.
2. Не получается обработать ошибку "Нарушение прав доступа при обращении к памяти", которая может возникнуть на стороне native компоненты. Ошибка приводит к вылету 1С. Операторами try и _try не получается отловить.