В статье я расскажу о том как подключить модуль (компоненту) RegEx1CAddin к 1с без регистраций в regsrv32 и подобных!
Вначале расскажу о проблеме, почему у меня возникла такая задача.
Мне необходимо было получить значения через регулярные выражения, но стандартные процедуры работы с регулярными выражениями вызванные через \\Новый COMОбъект("VBScript.RegExp")\\ не имели в составе работу с такими позиционными проверками как Lookaround (?<=) и Lookbehind (?=). При вызове функции происходила ошибка исключения 0x800A1399.
Пример паттерна: "(?<='DISCOUNT_VALUE':')[0-9]*(?=')";
После этого встал вопрос о решении данной проблемы. И как выяснилось проблема была в неполноценности используемого COM модуля VBScript.RegExp.
Теперь о решении!
Нам поможет товарищ alexkmbk с модулем RegEx1CAddin.
https://github.com/alexkmbk/RegEx1CAddin
В описании всё просто и по функционалу не вызывает проблем, но вот с установкой (подключением) был затык. А именно "Предполагается что архив с компонентами был загружен в общий макет "RegEx". Так как же его подключить?! И теперь давайте по пунктам:
Шаг 1: Скачиваем компилированные файлы (я буду далее писать про win (WinServ2019)).
Копилированные файлы здесь: https://github.com/alexkmbk/RegEx1CAddin/releases/tag/14.2 (проверяйте обновления ссылка может устареть!)
Шаг 2: Распаковываем архив под win. В нём будут следующие файлы:
Шаг 3: Копируем файлы *.dll в директорию 1с.
У меня путь был следующим, но у вас может отличаться в зависимости от выбранной папки при установке.
C:\Program Files (x86)\1cv8\8.3.18.1208\bin\dmf\native\
далее соответственно RegExWin32_14_2.dll копируем в x86, и RegExWin64_14_2.dll в x64.
Шаг 4: Подключаем общий макет.
Создаем макет в Общие->Общие макеты. Далее выбираем Внешняя компоновка и задаём имя "RegEx". Указываем путь к скопированному x86 файлу.
Шаг 5: Пишем код... (далее к программистам!)
ПодключитьВнешнююКомпоненту("ОбщийМакет.RegEx", "Component", ТипВнешнейКомпоненты.Native);
RegExpLocal = Новый("AddIn.Component.RegEx");
Использованные в статье источники:
https://proglib.io/p/learn-regex - по RegEx
https://github.com/alexkmbk/RegEx1CAddin - Описание модуля
https://github.com/alexkmbk/RegEx1CAddin/releases/tag/14.2 - Компилированная версия модуля RegEx1CAddin