1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-11-21 17:56:56 +02:00

RC5 для Linux

This commit is contained in:
Anton 2024-10-27 20:57:58 +03:00
parent 92a7268eea
commit 9a90c3a2bc
323 changed files with 978 additions and 210 deletions

View File

@ -106,6 +106,9 @@
КаталогиМодулей.Добавить(ОбъединитьПути(Путь, "src", "Модули"));
КаталогиМодулей.Добавить(ОбъединитьПути(Путь, "src", "Modules"));
КаталогиВК = Новый Массив;
КаталогиВК.Добавить(ОбъединитьПути(Путь, "Components"));
КаталогиВК.Добавить(ОбъединитьПути(Путь, "Компоненты"));
Для Каждого мКаталог Из КаталогиКлассов Цикл
@ -118,6 +121,12 @@
ОбработатьКаталогМодулей(мКаталог, СтандартнаяОбработка, Отказ);
КонецЦикла;
Для Каждого мКаталог Из КаталогиВК Цикл
ОбработатьКаталогВК(мКаталог, СтандартнаяОбработка, Отказ);
КонецЦикла;
КонецПроцедуры
@ -161,6 +170,75 @@
КонецПроцедуры
// По соглашению ВК должны лежать в подпапках, названных, как значения перечисления ТипПлатформы.
// Имя файла, являющегося внешней компонентой должно иметь префикс 1script_
// Components
// net4 (фреймворк .net48
// 1script_barcode.dll
// dotnet (.net современных версий, он же netcore)
// 1script_barcode.dll
// NativeApi
// Windows_x86
// 1script_barcode.dll
// Windows_x86_64
// 1script_barcode.dll
// Linux_x86_64
// 1script_barcode.so
// остальные не поддерживаются (ЖВПР)
//
Процедура ОбработатьКаталогВК(Знач Путь, СтандартнаяОбработка, Отказ)
СИ = Новый СистемнаяИнформация();
МажорнаяВерсия = Лев(СИ.Версия,1);
Если МажорнаяВерсия = "1" Тогда
ОбработатьБиблиотекиCLR(ОбъединитьПути(Путь, "net4"));
ИначеЕсли МажорнаяВерсия = "2" Тогда
ОбработатьБиблиотекиCLR(ОбъединитьПути(Путь, "dotnet"));
Иначе
Вывести("Неизвестная мажорная версия системы: " + МажорнаяВерсия);
КонецЕсли;
ОбработатьКомпонентыNativeApi(Путь);
КонецПроцедуры
Процедура ОбработатьБиблиотекиCLR(Путь)
КандидатыВКомпоненты = НайтиФайлы(Путь, "1script_*.dll");
Для Каждого Кандидат Из КандидатыВКомпоненты Цикл
Если Не Кандидат.ЭтоФайл() Тогда
Продолжить;
КонецЕсли;
Вывести("Загружаю файл " + Кандидат.Имя);
ЗагрузитьБиблиотеку(Кандидат.ПолноеИмя);
КонецЦикла;
КонецПроцедуры
Процедура ОбработатьКомпонентыNativeApi(Путь)
СИ = Новый СистемнаяИнформация;
ИмяПодкаталога = ОбъединитьПути(Путь, Строка(СИ.ТипПлатформы));
Вывести("Ищу внешние компоненты в каталоге " + Путь);
#Если Windows Тогда
Расширение = ".dll";
#Иначе
Расширение = ".so";
#КонецЕсли
КандидатыВКомпоненты = НайтиФайлы(ИмяПодкаталога, "1script_*"+Расширение);
Для Каждого Кандидат Из КандидатыВКомпоненты Цикл
Если Не Кандидат.ЭтоФайл() Тогда
Продолжить;
КонецЕсли;
Вывести("Загружаю файл " + Кандидат.Имя);
ПодключитьВнешнююКомпоненту(Кандидат.ПолноеИмя, Кандидат.Имя, ТипВнешнейКомпоненты.Native);
КонецЦикла;
КонецПроцедуры
Процедура ДобавитьКлассЕслиРанееНеДобавляли(ПутьФайла, ИмяКласса)
Вывести("Добавляю класс, если ранее не добавляли " + ИмяКласса);
Если ВыдаватьОшибкуПриЗагрузкеУжеСуществующихКлассовМодулей Тогда
@ -171,13 +249,14 @@
КлассУжеЕсть = Ложь;
Попытка
Объект = Новый(ИмяКласса);
КлассУжеЕсть = Истина;
Исключение
СообщениеОшибки = ОписаниеОшибки();
ИскомаяОшибка = СтрШаблон("Конструктор не найден (%1)", ИмяКласса);
КлассУжеЕсть = СтрНайти(СообщениеОшибки, ИскомаяОшибка) = 0;
КонецПопытки;
ИзвестныйТип = Тип(ИмяКласса);
КлассУжеЕсть = Истина;
Исключение
СообщениеОшибки = ОписаниеОшибки();
ШаблонОшибки = НСтр("ru = 'Тип не зарегистрирован (%1)';en = 'Type is not registered (%1)'");
ИскомаяОшибка = СтрШаблон(ШаблонОшибки, ИмяКласса);
КлассУжеЕсть = СтрНайти(СообщениеОшибки, ИскомаяОшибка) = 0;
КонецПопытки;
Если Не КлассУжеЕсть Тогда
Вывести("Добавляю класс, т.к. он не найден - " + ИмяКласса);

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More