Open idleGH opened 2 years ago
@idleGH Никаких внешних зависимостей у компоненты нет. Подключение компоненты выполняется стандартным образом, как и любые другие внешние NativeAPI компоненты. Вы подключаете на клиенте или на сервере? Если на клиенте, то в асинхронном режиме? Может быть на веб клиенте? Какая платформа используется: Linux, Windows, MacOS, Android?
Спасибо за ответ! Утро вечера мудренее! Вопрос был более банален (на тостом). Описал подключение в статье: https://zen.yandex.ru/media/id/5c3b43cb27f43a00acb0e485/podkliuchenie-regex1caddin-k-1s-s-kartinkami-62107450b0186b70eb604c4c Поправьте, если где накосячил!
Спасибо за ответ! Утро вечера мудренее! Вопрос был более банален (на тостом). Описал подключение в статье: https://zen.yandex.ru/media/id/5c3b43cb27f43a00acb0e485/podkliuchenie-regex1caddin-k-1s-s-kartinkami-62107450b0186b70eb604c4c Поправьте, если где накосячил!
Клево :-) Только шаг с распаковкой *.dll в директорию 1с лишний, достаточно в общий макет "RegEx" загрузить соответствующий zip архив с компонентами: RegEx1CAddin_14.zip - для windows и linux RegEx1CAddin_Android_14.zip - для андроид RegEx1CAddin_Browsers_14.zip - для веб браузера Chrome под Windows RegExMac64_14.so - для MacOS. Но для MacOS не нужно загружать в общий макет, платформа этого не поддерживает, поэтмоу в данном случае нужно загружать из внешнего файла, с помощью метода ПодключитьВнешнююКомпоненту
Если требуется поддержка под все платформы сразу, необходимо все эти файлы объединить в один zip архив (ну кроме MacOS опять же) и дописать расположенный внутри файл MANIFEST.XML
Проблема и была в том, что пока файлы не перенёс ничего не хотело работать (права доступа под win проверил). Пол ночи бился над этим об стену. В результате сделал и родил статью! За поддержку спасибо!
Кидаете архив в общие макеты , можно весь зип и в модуле формы пишем код связываем команду из моего кода, просто немогу кинуть обработку, отсюда копирнете,сори за тупой редактор так форматирует то что я тут пишу)))
/////////////////////////////////////////////////////////////////////////////// &НаКлиенте Процедура ПроверитьДанныеВывестиСообщение(Команда) ПроверитьДанные(); КонецПроцедуры
&НаКлиенте Функция ПроверитьДанные()
//Получим внешнюю компоненту из общих макетов
Рег = КомпонентаРег();
Если Рег = Неопределено Тогда
возврат Неопределено;
КонецЕсли;
Попытка
Рег.НайтиСовпадения("Hello world", "([A-Za-z]+)\s+([a-z]+)", Истина);
Исключение
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода Рег компоненты Regex.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
Сообщить(Рег.Количество()); // 1 - всего один результат
Сообщить(Рег.КоличествоВложенныхГрупп()); // 2 - две подгруппы (submatches)
Пока Рег.Следующий() Цикл
Сообщить(Рег.ТекущееЗначение); // Hello world
Сообщить(Рег.ПолучитьПодгруппу(0)); // Hello
Сообщить(Рег.ПолучитьПодгруппу(1)); // world
КонецЦикла;
Сообщить(Рег.Количество());
Сообщить(Рег.Совпадает("Hello world", "([A-Za-z]+)\s+([a-z]+)"));
Сообщить(Рег.Заменить("Hello world", "([A-Za-z]+)\s+([a-z]+)", "Текст для замены"));
КонецФункции
&НаКлиенте Функция КомпонентаРег()
КомпонентаДвоичныеДанные = ПолучитьКомпонентуРег();
АдресМакета = ПоместитьВоВременноеХранилище(КомпонентаДвоичныеДанные);
Если ПодключитьВнешнююКомпоненту(АдресМакета, "Component", ТипВнешнейКомпоненты.Native) Тогда
ВнешняяКомпонента = Новый("AddIn.Component.RegEx");
Иначе
УстановитьВнешнююКомпоненту(АдресМакета);
Если ПодключитьВнешнююКомпоненту(АдресМакета, "Component", ТипВнешнейКомпоненты.Native) Тогда
ВнешняяКомпонента = Новый("AddIn.Component.RegEx");
Иначе
Сообщить(ОписаниеОшибки());
ВнешняяКомпонента = Неопределено;
КонецЕсли;
КонецЕсли;
Возврат ВнешняяКомпонента;
КонецФункции
&НаСервере Функция ПолучитьКомпонентуРег() Экспорт Возврат ПолучитьОбщийМакет("RegEx"); КонецФункции ///////////////////////////////////////////////////////////////////////////////
Подскажите, как установить данный компонент? Имеет ли он зависимости? 5 часов бьюсь. Спасибо!