diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl"
new file mode 100644
index 000000000..4a2737004
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl"
@@ -0,0 +1,114 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Функция СкомпилирватьВнешнуюОбработку(ТекстМодуляОбъект = "", Знач ТекстМодуляФормы = "") Экспорт
+
+ // Для сборки используется утилита v8unpack - https://github.com/e8tools/v8unpack
+
+ ИдентификаторМодуляОбъекта = "00ab4620-8498-4b18-a4f8-18b53138fcb5.0";
+ ИдентификаторФормы = "a10cd1fd-c4ba-437c-9925-b7354192a1ea.0";
+
+ РабочийКаталог = ЮТФайлы.ОбъединитьПути(КаталогВременныхФайлов(), "yaxunit-v8unpack");
+ ПодготовитьРабочийКаталог(РабочийКаталог);
+
+ КаталогСборки = ЮТФайлы.ОбъединитьПути(РабочийКаталог, "build");
+ КаталогФайловОбработки = ЮТФайлы.ОбъединитьПути(КаталогСборки, "unpack");
+
+ УдалитьФайлы(КаталогСборки);
+ СоздатьКаталог(КаталогСборки);
+
+ РаспаковатьОбработку(РабочийКаталог);
+
+ ЮТФайлы.СкопироватьКаталог(ЮТФайлы.ОбъединитьПути(РабочийКаталог, "unpack"), КаталогФайловОбработки);
+
+ // Модуль объекта
+ ИмяФайлаМодуляОбъекта = ЮТФайлы.ОбъединитьПути(КаталогФайловОбработки, ИдентификаторМодуляОбъекта, "text");
+ ЮТФайлы.ЗаписатьТекстВФайла(ИмяФайлаМодуляОбъекта, ТекстМодуляОбъект);
+
+ // Модуль формы
+ ИмяФайлаФормы = ЮТФайлы.ОбъединитьПути(КаталогФайловОбработки, ИдентификаторФормы);
+ ДанныеФормы = ЮТФайлы.ДанныеТекстовогоФайла(ИмяФайлаФормы);
+ ТекстМодуляФормы = СтрЗаменить(ТекстМодуляФормы, """", """""");
+ ДанныеФормы = СтрЗаменить(ДанныеФормы, "MODULE_PLACEHOLDER", ТекстМодуляФормы);
+ ЮТФайлы.ЗаписатьТекстВФайла(ИмяФайлаФормы, ДанныеФормы);
+
+ СобратьОбработку(РабочийКаталог);
+
+ Возврат ЮТФайлы.ОбъединитьПути(КаталогСборки, "out.epf");
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Процедура ПодготовитьРабочийКаталог(РабочийКаталог)
+
+ Если ЮТФайлы.Существует(РабочийКаталог) Тогда
+ Возврат;
+ КонецЕсли;
+
+ СоздатьКаталог(РабочийКаталог);
+ Данные = ПолучитьОбщийМакет("ЮТV8UnpackWS");
+ Архив = Новый ЧтениеZipФайла(Данные.ОткрытьПотокДляЧтения());
+ Архив.ИзвлечьВсе(РабочийКаталог);
+ Архив.Закрыть();
+
+КонецПроцедуры
+
+Процедура РаспаковатьОбработку(РабочийКаталог)
+
+ Если ЮТФайлы.Существует(ЮТФайлы.ОбъединитьПути(РабочийКаталог, "unpack")) Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если ЮТОкружение.ЭтоWindows() Тогда
+ Команда = "v8unpack.exe -P template_managment.epf unpack";
+ Иначе
+ Команда = "/bin/bash unpack-epf.sh > build/unpack.log";
+ КонецЕсли;
+
+ КодВозврата = Неопределено;
+ ЗапуститьПриложение(Команда, РабочийКаталог, Истина, КодВозврата);
+
+ Если КодВозврата <> 0 Тогда
+ ВызватьИсключение СтрШаблон("Не удалось распаковать шаблон обработки. Команда: `%1`", Команда);
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура СобратьОбработку(РабочийКаталог)
+
+ Если ЮТОкружение.ЭтоWindows() Тогда
+ Команда = "v8unpack.exe -B build\unpack build\out.epf";
+ Иначе
+ Команда = "/bin/bash build-epf.sh > build/build.log";
+ КонецЕсли;
+
+ КодВозврата = Неопределено;
+ ЗапуститьПриложение(Команда, РабочийКаталог, Истина, КодВозврата);
+
+ Если КодВозврата <> 0 Тогда
+ ВызватьИсключение СтрШаблон("Не удалось собрать обработку. Команда: `%1`", Команда);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
new file mode 100644
index 000000000..981dbfd03
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
@@ -0,0 +1,10 @@
+
+
+ ЮТВнешниеОбработкиСлужебныйСервер
+
+ ru
+ Внешние обработки служебный сервер
+
+ true
+ true
+
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl"
index 4d771bec1..7fe47a631 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl"
@@ -160,16 +160,8 @@
Функция ДанныеТекстовогоФайла(ИмяФайла) Экспорт
-#Если НЕ ВебКлиент Тогда
- Чтение = Новый ЧтениеТекста;
- Чтение.Открыть(ИмяФайла, "UTF-8");
- Текст = Чтение.Прочитать();
- Чтение.Закрыть();
-
- Возврат Текст;
-#Иначе
- ВызватьИсключение "Чтение данных текстовых файлов в веб-клиенте не поддерживается";
-#КонецЕсли
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ДанныеТекстовогоФайла", "ЮТФайлы.ДанныеТекстовогоФайла", "24.12");
+ Возврат ЮТФайлы.ДанныеТекстовогоФайла(ИмяФайла);
КонецФункции
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl"
index 72bb6a893..c056c53e5 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl"
@@ -85,6 +85,39 @@
КонецФункции
+// Проверяет тип текущей операционной системы
+//
+// Возвращаемое значение:
+// Булево
+Функция ЭтоWindows() Экспорт
+
+ Информация = Новый СистемнаяИнформация();
+ Возврат Информация.ТипПлатформы = ТипПлатформы.Windows_x86 Или Информация.ТипПлатформы = ТипПлатформы.Windows_x86_64;
+
+КонецФункции
+
+// Проверяет тип текущей операционной системы
+//
+// Возвращаемое значение:
+// Булево
+Функция ЭтоLinux() Экспорт
+
+ Информация = Новый СистемнаяИнформация();
+ Возврат Информация.ТипПлатформы = ТипПлатформы.Linux_x86 Или Информация.ТипПлатформы = ТипПлатформы.Linux_x86_64;
+
+КонецФункции
+
+// Проверяет тип текущей операционной системы
+//
+// Возвращаемое значение:
+// Булево
+Функция ЭтоMac() Экспорт
+
+ Информация = Новый СистемнаяИнформация();
+ Возврат Информация.ТипПлатформы = ТипПлатформы.MacOS_x86 Или Информация.ТипПлатформы = ТипПлатформы.MacOS_x86_64;
+
+КонецФункции
+
// Возвращает код языка интерфейса.
//
// Возвращаемое значение:
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index c43bdd294..a62fae8f2 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -190,7 +190,7 @@
Попытка
- Текст = ЮТОбщий.ДанныеТекстовогоФайла(ПутьКФайлу);
+ Текст = ЮТФайлы.ДанныеТекстовогоФайла(ПутьКФайлу);
Если ЗначениеЗаполнено(Текст) Тогда
ДанныеФайла = ЮТОбщий.ЗначениеИзJSON(Текст);
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl"
index fc7f3c007..6016168fa 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl"
@@ -148,6 +148,26 @@
КонецПроцедуры
+Процедура СкопироватьКаталог(КаталогИсточник, КаталогПриемник) Экспорт
+
+ Если НЕ Существует(КаталогПриемник) Тогда
+ СоздатьКаталог(КаталогПриемник);
+ КонецЕсли;
+
+ Для Каждого Файл Из НайтиФайлы(КаталогИсточник, "*") Цикл
+
+ Если СтрСравнить(Файл.ПолноеИмя, КаталогИсточник) = 0 Тогда
+ Продолжить;
+ ИначеЕсли Файл.ЭтоКаталог() Тогда
+ СкопироватьКаталог(Файл.ПолноеИмя, ОбъединитьПути(КаталогПриемник, Файл.Имя));
+ Иначе
+ КопироватьФайл(Файл.ПолноеИмя, ОбъединитьПути(КаталогПриемник, Файл.Имя));
+ КонецЕсли;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
Процедура СоздатьКаталогРекурсивно(Путь) Экспорт
Файл = Новый Файл(Путь);
@@ -174,6 +194,34 @@
КонецПроцедуры
+Функция ДанныеТекстовогоФайла(ИмяФайла) Экспорт
+
+#Если НЕ ВебКлиент Тогда
+ Чтение = Новый ЧтениеТекста;
+ Чтение.Открыть(ИмяФайла, "UTF-8");
+ Текст = Чтение.Прочитать();
+ Чтение.Закрыть();
+
+ Возврат Текст;
+#Иначе
+ ВызватьИсключение "Чтение данных текстовых файлов в веб-клиенте не поддерживается";
+#КонецЕсли
+
+КонецФункции
+
+Процедура ЗаписатьТекстВФайла(ИмяФайла, Данные) Экспорт
+
+#Если НЕ ВебКлиент Тогда
+ Запись = Новый ЗаписьТекста(ИмяФайла, "UTF-8");
+ Запись.Записать(Данные);
+ Запись.Закрыть();
+
+#Иначе
+ ВызватьИсключение "Запись данных текстовых файлов в веб-клиенте не поддерживается";
+#КонецЕсли
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242V8UnpackWS/Template.bin" "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242V8UnpackWS/Template.bin"
new file mode 100644
index 000000000..4119dc3a9
Binary files /dev/null and "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242V8UnpackWS/Template.bin" differ
diff --git "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242V8UnpackWS/\320\256\320\242V8UnpackWS.mdo" "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242V8UnpackWS/\320\256\320\242V8UnpackWS.mdo"
new file mode 100644
index 000000000..aa5c5ab6a
--- /dev/null
+++ "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242V8UnpackWS/\320\256\320\242V8UnpackWS.mdo"
@@ -0,0 +1,10 @@
+
+
+ ЮТV8UnpackWS
+
+ ru
+ v8unpack рабочий каталог
+
+ Содержит исполняемые файлы, скрипты и шаблоны обработок
+ BinaryData
+
diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo
index 6ce6f36df..ccdaa039f 100644
--- a/exts/yaxunit/src/Configuration/Configuration.mdo
+++ b/exts/yaxunit/src/Configuration/Configuration.mdo
@@ -55,6 +55,7 @@
CommonTemplate.ЮТ_СловарьПодражателя_Люди_МужскиеОтчества_ru
CommonTemplate.ЮТ_СловарьПодражателя_Люди_МужскиеФамилии_ru
CommonTemplate.ЮТRegEx1CAddin
+ CommonTemplate.ЮТV8UnpackWS
CommonTemplate.ЮТYaxUnitAddIn
CommonTemplate.ЮТИнформацияОбОшибке
CommonTemplate.ЮТОписаниеМетаданных
@@ -64,6 +65,7 @@
CommonModule.МокитоПроверки
CommonModule.МокитоСлужебный
CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент
+ CommonModule.ЮТВнешниеОбработкиСлужебныйСервер
CommonModule.ЮТДымовыеТесты
CommonModule.ЮТДымовыеТестыСлужебныйВызовСервера
CommonModule.ЮТДымовыеТестыСлужебныйКлиентСервер
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl"
new file mode 100644
index 000000000..81fa3c836
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl"
@@ -0,0 +1,53 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Процедура ИсполняемыеСценарии() Экспорт
+
+ ЮТТесты
+ .ДобавитьТест("СкомпилирватьВнешнуюОбработку")
+ ;
+
+КонецПроцедуры
+
+Процедура СкомпилирватьВнешнуюОбработку() Экспорт
+
+ Значение = ЮТест.Данные().СлучайнаяСтрока();
+ Алгоритм = СтрШаблон("Перем Реквизит Экспорт;
+ |Реквизит = ""%1"";", Значение);
+ ИмяФайлаОбработки = ЮТВнешниеОбработкиСлужебныйСервер.СкомпилирватьВнешнуюОбработку(Алгоритм);
+
+ ЮТест.ОжидаетЧто(ИмяФайлаОбработки)
+ .Заполнено();
+ ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ИмяФайлаОбработки), "Не существует файл созданной обработки")
+ .ЭтоИстина();
+
+ Обработка = ВнешниеОбработки.Создать(ИмяФайлаОбработки);
+
+ ЮТест.ОжидаетЧто(Обработка)
+ .Свойство("Реквизит")
+ .Равно(Значение);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
new file mode 100644
index 000000000..48933558b
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\222\320\275\320\265\321\210\320\275\320\270\320\265\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
@@ -0,0 +1,6 @@
+
+
+ ОМ_ЮТВнешниеОбработкиСлужебныйСервер
+ true
+ true
+
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index b3bad67c6..2e78f9da6 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -63,7 +63,7 @@
ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ПолноеИмяФайла), "Файл каталога проекта не существует")
.ЭтоИстина();
- Данные = ЮТОбщий.ДанныеТекстовогоФайла(ПолноеИмяФайла);
+ Данные = ЮТФайлы.ДанныеТекстовогоФайла(ПолноеИмяФайла);
ЮТест.ОжидаетЧто(Данные, "Содержимое файла")
.Содержит("ConfigDumpInfo.xml");
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
index 29d8613ac..0804c8544 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
@@ -104,7 +104,7 @@
КонецФункции
Процедура ПроверитьРезультатВыполнения(ИмяФайлаРезультата, ОжидаемыйРезультат)
- РезультатВыполнения = СокрЛП(ЮТОбщий.ДанныеТекстовогоФайла(ИмяФайлаРезультата));
+ РезультатВыполнения = СокрЛП(ЮТФайлы.ДанныеТекстовогоФайла(ИмяФайлаРезультата));
ЮТест.ОжидаетЧто(РезультатВыполнения)
.ИмеетТип("Строка")
.Равно(ОжидаемыйРезультат)
diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo
index 31d75a8a2..81e89359d 100644
--- a/tests/src/Configuration/Configuration.mdo
+++ b/tests/src/Configuration/Configuration.mdo
@@ -38,6 +38,7 @@
CommonModule.ОМ_МокитоОбучение
CommonModule.ОМ_МокитоСлужебный
CommonModule.ОМ_ОшибкаЗагрузкиСценариев
+ CommonModule.ОМ_ЮТВнешниеОбработкиСлужебныйСервер
CommonModule.ОМ_ЮТест
CommonModule.ОМ_ЮТестПереопределяемый
CommonModule.ОМ_ЮТЗависимостиСлужебный
diff --git a/tools/build-template.sh b/tools/build-template.sh
new file mode 100755
index 000000000..05b99ee49
--- /dev/null
+++ b/tools/build-template.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+CURRENT_PATH=$(pwd)
+SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
+
+cd ${SCRIPTPATH}/v8unpack
+ls -lna
+zip -r -9 ../v8unpack.zip ./
+mv ../v8unpack.zip ../../exts/yaxunit/src/CommonTemplates/ЮТV8UnpackLinux/Template.bin
+cd ${CURRENT_PATH}
\ No newline at end of file
diff --git a/tools/v8unpack/build-epf.sh b/tools/v8unpack/build-epf.sh
new file mode 100644
index 000000000..08e455ead
--- /dev/null
+++ b/tools/v8unpack/build-epf.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+export LC_ALL=C
+
+v8unpack -B build/unpack build/out.epf
diff --git a/tools/v8unpack/template_managment.epf b/tools/v8unpack/template_managment.epf
new file mode 100644
index 000000000..116e28a0b
Binary files /dev/null and b/tools/v8unpack/template_managment.epf differ
diff --git a/tools/v8unpack/unpack-epf.sh b/tools/v8unpack/unpack-epf.sh
new file mode 100644
index 000000000..03ece85cd
--- /dev/null
+++ b/tools/v8unpack/unpack-epf.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+export LC_ALL=C
+
+v8unpack -P template_managment.epf unpack
\ No newline at end of file
diff --git a/tools/v8unpack/v8unpack b/tools/v8unpack/v8unpack
new file mode 100755
index 000000000..2901afc69
Binary files /dev/null and b/tools/v8unpack/v8unpack differ
diff --git a/tools/v8unpack/v8unpack.exe b/tools/v8unpack/v8unpack.exe
new file mode 100644
index 000000000..e10d33bc1
Binary files /dev/null and b/tools/v8unpack/v8unpack.exe differ