mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-03-29 21:57:16 +02:00
RC5 для Linux
This commit is contained in:
parent
6a99135061
commit
1d3a97a9b1
@ -106,6 +106,9 @@
|
|||||||
КаталогиМодулей.Добавить(ОбъединитьПути(Путь, "src", "Модули"));
|
КаталогиМодулей.Добавить(ОбъединитьПути(Путь, "src", "Модули"));
|
||||||
КаталогиМодулей.Добавить(ОбъединитьПути(Путь, "src", "Modules"));
|
КаталогиМодулей.Добавить(ОбъединитьПути(Путь, "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)", ИмяКласса);
|
ШаблонОшибки = НСтр("ru = 'Тип не зарегистрирован (%1)';en = 'Type is not registered (%1)'");
|
||||||
КлассУжеЕсть = СтрНайти(СообщениеОшибки, ИскомаяОшибка) = 0;
|
ИскомаяОшибка = СтрШаблон(ШаблонОшибки, ИмяКласса);
|
||||||
КонецПопытки;
|
КлассУжеЕсть = СтрНайти(СообщениеОшибки, ИскомаяОшибка) = 0;
|
||||||
|
КонецПопытки;
|
||||||
Если Не КлассУжеЕсть Тогда
|
Если Не КлассУжеЕсть Тогда
|
||||||
|
|
||||||
Вывести("Добавляю класс, т.к. он не найден - " + ИмяКласса);
|
Вывести("Добавляю класс, т.к. он не найден - " + ИмяКласса);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user