From 925bced1426ad03baf7b6ed9a3f7d02a1923a3ec Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 12 Nov 2024 00:32:49 +0300 Subject: [PATCH 1/3] feat: compile/decompile on linux --- compile.sh | 7 +++++ decompile.sh | 5 ++++ tools/onescript/Compile.os | 60 +------------------------------------- 3 files changed, 13 insertions(+), 59 deletions(-) create mode 100755 compile.sh create mode 100755 decompile.sh diff --git a/compile.sh b/compile.sh new file mode 100755 index 0000000000..9068cf1345 --- /dev/null +++ b/compile.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +cd "$(dirname "$0")" + +oscript ./lib/packages.os download +oscript ./tools/onescript/ZipTemplates.os +oscript ./tools/onescript/Compile.os ./ diff --git a/decompile.sh b/decompile.sh new file mode 100755 index 0000000000..75bc9bf14b --- /dev/null +++ b/decompile.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +cd "$(dirname "$0")" + +oscript ./tools/onescript/Decompile.os ./ CheckDif diff --git a/tools/onescript/Compile.os b/tools/onescript/Compile.os index 93d3b7d995..aa796185e8 100644 --- a/tools/onescript/Compile.os +++ b/tools/onescript/Compile.os @@ -13,65 +13,6 @@ Sleep(5000); КонецПроцедуры -// Перемещаят найденные по маскам файлы с сохранением пути. -// -// Параметры: -// КаталогКуда - Строка - Путь к каталогу в который переносятся файлы; -// КаталогиОткуда - Массив - Пути к каталогам в которых осуществляется поиск файлов; -// МассивМасок - Массив - Маски, по которым осуществляется поиск файлов. -// -// Взято из https://infostart.ru/public/537028/ -Процедура ПереместитьФайлыВКаталог(КаталогКуда, КаталогиОткуда, МассивМасок) - - Для Каждого КаталогПоиска Из КаталогиОткуда Цикл - КаталогПоискаОбъект = Новый Файл(КаталогПоиска); - Если НЕ КаталогПоискаОбъект.Существует() Тогда - Лог.Ошибка(НСтр("ru='Каталог не найден.';en='Folder not found.'")); - Продолжить; - КонецЕсли; - - Для Каждого Маска Из МассивМасок Цикл - - МассивФайлов = НайтиФайлы(КаталогПоиска, Маска, Истина); - Для Каждого НайденныйФайл Из МассивФайлов Цикл - - НовыйПуть = СтрЗаменить(НайденныйФайл.Путь, КаталогПоиска, КаталогКуда); - НовоеИмя = НайденныйФайл.Имя; - - Если НЕ ОбеспечитьКаталог(НовыйПуть) Тогда - Продолжить; - КонецЕсли; - - Если НайденныйФайл.ЭтоКаталог() Тогда - Продолжить; - КонецЕсли; - - - ИмяФайлаДляПеремещения = ОбъединитьПути(НовыйПуть, НовоеИмя); - УдалитьФайлы(ИмяФайлаДляПеремещения); - - Попытка - ПереместитьФайл(НайденныйФайл.ПолноеИмя,ИмяФайлаДляПеремещения); - Исключение - Лог.Ошибка(СтрШаблон(НСтр("ru='Не удалось переместить файл: -|%1';en='Failed to move file: -|%1'"), ОписаниеОшибки())); - Продолжить; - КонецПопытки; - - ФайлНаДиске = Новый Файл(ОбъединитьПути(НовыйПуть, НовоеИмя)); - Если НЕ ФайлНаДиске.Существует() Тогда - Лог.Ошибка(НСтр("ru='Не удалось корректно переместить файл.';en='Failed to correctly move the file.'")); - Продолжить; - КонецЕсли; - КонецЦикла; - - КонецЦикла; - - КонецЦикла; - -КонецПроцедуры - // Проверяет наличия каталога и в случае его отсутствия создает новый. // // Параметры: @@ -406,6 +347,7 @@ Лог = Логирование.ПолучитьЛог("vb.compile.log"); Лог.УстановитьУровень(УровниЛога.Отладка); +Лог.Информация("Сбора артефактов"); МинимальнаяВерсияПлатформы = "8.3.17"; ОшибкаОтсутствияМинимальнойВерсииПлатформы = "!!!Необходимо установить платформу " + МинимальнаяВерсияПлатформы; From 686f9eddcfabb492b3f321683dd9f3bb4e908d92 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 12 Nov 2024 02:47:06 +0300 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA?= =?UTF-8?q?=D0=B0=20single=20on=20linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/onescript/MakeVASingle.os | 294 ++++++++++++++++++++------------ 1 file changed, 181 insertions(+), 113 deletions(-) diff --git a/tools/onescript/MakeVASingle.os b/tools/onescript/MakeVASingle.os index 182b0b394b..88a538542d 100644 --- a/tools/onescript/MakeVASingle.os +++ b/tools/onescript/MakeVASingle.os @@ -420,9 +420,9 @@ МассивФайлов = НайтиФайлы(КаталогПоиска, Маска, Истина); Для Каждого НайденныйФайл Из МассивФайлов Цикл - НовыйПуть = СтрЗаменить(НайденныйФайл.Путь, КаталогПоиска, КаталогКуда); - НовоеИмя = НайденныйФайл.Имя; + // Сообщить(НайденныйФайл.Путь + " --> " + НовыйПуть); + НовоеИмя = НайденныйФайл.Имя; Если НЕ ОбеспечитьКаталог(НовыйПуть) Тогда Продолжить; @@ -436,7 +436,7 @@ УдалитьФайлы(ИмяФайлаДляПеремещения); Попытка - КопироватьФайл(НайденныйФайл.ПолноеИмя,ИмяФайлаДляПеремещения); + КопироватьФайл(НайденныйФайл.ПолноеИмя, ИмяФайлаДляПеремещения); Исключение Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось скопировать файл: |%1'"), ОписаниеОшибки())); @@ -448,24 +448,23 @@ Лог.Ошибка(НСтр("ru = 'Не удалось корректно скопировать файл.'")); Продолжить; КонецЕсли; - КонецЦикла; + КонецЦикла; - КонецЦикла; + КонецЦикла; - КонецЦикла; + КонецЦикла; КонецПроцедуры -Процедура СкопироватьФайлыVA(ПутьКVA,ПутьКBin) +Процедура СкопироватьФайлыVA(ПутьКVA, ПутьКBin) ОчиститьКаталог(ПутьКBin); - МассивМасок = Новый Массив; МассивМасок.Добавить("*"); КаталогиОткуда = Новый Массив; - КаталогиОткуда.Добавить(ПутьКVA + "\VanessaAutomation"); - СкопироватьФайлыВКаталог(ПутьКBin + "\VanessaAutomation",КаталогиОткуда, МассивМасок); + КаталогиОткуда.Добавить(ОбъединитьПути(ПутьКVA, "VanessaAutomation")); + СкопироватьФайлыВКаталог(ОбъединитьПути(ПутьКBin, "VanessaAutomation"), КаталогиОткуда, МассивМасок); - КопироватьФайл(ПутьКVA + "\VanessaAutomation.xml",ПутьКBin + "\VanessaAutomation.xml"); + КопироватьФайл(ОбъединитьПути(ПутьКVA, "VanessaAutomation.xml"), ОбъединитьПути(ПутьКBin, "VanessaAutomation.xml")); КонецПроцедуры Функция ЭтоXMLВнешнейОбработки(ИмяФайла) @@ -524,7 +523,7 @@ Возврат ЭтоXMLМакета; КонецФункции -Процедура СкопироватьФайлыФормы(КаталогФормы,ФормыVA,ИмяФормы,ДопИмя) +Процедура СкопироватьФайлыФормы(КаталогФормы, ФормыVA, ИмяФормы, ДопИмя) //Сообщить("ФормыVA="+ФормыVA); //Сообщить("КаталогФормы="+КаталогФормы); //Сообщить("ИмяФормы="+ИмяФормы); @@ -534,9 +533,9 @@ КаталогиОткуда = Новый Массив; КаталогиОткуда.Добавить(КаталогФормы); - СкопироватьФайлыВКаталог(ФормыVA + "\" + ИмяФормы,КаталогиОткуда, МассивМасок); + СкопироватьФайлыВКаталог(ОбъединитьПути(ФормыVA, ИмяФормы),КаталогиОткуда, МассивМасок); - ИмяФайлаForm = ФормыVA + "\" + ИмяФормы + "\Ext\Form.xml"; + ИмяФайлаForm = ОбъединитьПути(ФормыVA, ИмяФормы, "Ext", "Form.xml"); Файл = Новый Файл(ИмяФайлаForm); Если Не Файл.Существует() Тогда @@ -592,9 +591,9 @@ КаталогиОткуда = Новый Массив; КаталогиОткуда.Добавить(КаталогМакета); - СкопироватьФайлыВКаталог(МакетыVA + "\" + ИмяМакета,КаталогиОткуда, МассивМасок); + СкопироватьФайлыВКаталог(ОбъединитьПути(МакетыVA, ИмяМакета), КаталогиОткуда, МассивМасок); - ИмяФайлаForm = МакетыVA + "\" + ИмяМакета + "\Ext\Form.xml"; + ИмяФайлаForm = ОбъединитьПути(МакетыVA, ИмяМакета, "Ext", "Form.xml"); Файл = Новый Файл(ИмяФайлаForm); Если Не Файл.Существует() Тогда @@ -655,24 +654,24 @@ МассивИменФорм.Добавить(ИмяФормы); - ПутьКФорме = ФайлXMLФормы.Путь + ФайлXMLФормы.ИмяБезРасширения + "\Forms\УправляемаяФорма"; + ПутьКФорме = ОбъединитьПути(ФайлXMLФормы.Путь, ФайлXMLФормы.ИмяБезРасширения, "Forms", "УправляемаяФорма"); РеальноеИсходноеИмяФормы = "УправляемаяФорма"; Файл = Новый Файл(ПутьКФорме); Если НЕ Файл.Существует() Тогда - ПутьКФорме = ФайлXMLФормы.Путь + ФайлXMLФормы.ИмяБезРасширения + "\Forms\Форма"; + ПутьКФорме = ОбъединитьПути(ФайлXMLФормы.Путь, ФайлXMLФормы.ИмяБезРасширения, "Forms", "Форма"); РеальноеИсходноеИмяФормы = "Форма"; КонецЕсли; - СкопироватьФайлыФормы(ПутьКФорме,ВременныйКаталогVA + "\VanessaAutomation\Forms",ИмяФормы,ДопИмя); + СкопироватьФайлыФормы(ПутьКФорме, ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation", "Forms"), ИмяФормы, ДопИмя); - НовыйФайлФормы = ВременныйКаталогVA + "\VanessaAutomation\Forms\" + ИмяФормы + ".xml"; - КопироватьФайл(ФайлXMLФормы.Путь + ФайлXMLФормы.ИмяБезРасширения + "\Forms\" + РеальноеИсходноеИмяФормы + ".xml",НовыйФайлФормы); - ЗаменитьВФайлеФормыИмяФормы(НовыйФайлФормы,ИмяФормы,НомерФормы); + НовыйФайлФормы = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation", "Forms", ИмяФормы + ".xml"); + КопироватьФайл(ОбъединитьПути(ФайлXMLФормы.Путь, ФайлXMLФормы.ИмяБезРасширения, "Forms", РеальноеИсходноеИмяФормы + ".xml"), НовыйФайлФормы); + ЗаменитьВФайлеФормыИмяФормы(НовыйФайлФормы, ИмяФормы, НомерФормы); - XML_VA = ВременныйКаталогVA + "\VanessaAutomation.xml"; + XML_VA = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation.xml"); Текст = Новый ЧтениеТекста; - Текст.Открыть(XML_VA,"UTF-8"); + Текст.Открыть(XML_VA, "UTF-8"); Массив = Новый Массив; Пока Истина Цикл @@ -727,17 +726,17 @@ ИмяМакета = ФайлИмяОбработки.Имя + "_" + ИмяМакета; КонецЕсли; - СкопироватьФайлыМакета(ФайлXMLМакета.Путь + ФайлXMLМакета.ИмяБезРасширения,ВременныйКаталогVA + "\VanessaAutomation\Templates",ИмяМакета,ДопИмя); + СкопироватьФайлыМакета(ФайлXMLМакета.Путь + ФайлXMLМакета.ИмяБезРасширения, ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation", "Templates"), ИмяМакета, ДопИмя); - НовыйФайлМакета = ВременныйКаталогVA + "\VanessaAutomation\Templates\" + ИмяМакета + ".xml"; - КопироватьФайл(ФайлXMLМакета.ПолноеИмя,НовыйФайлМакета); - ЗаменитьВФайлеМакетаИмяМакета(НовыйФайлМакета,ИмяМакета); + НовыйФайлМакета = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation", "Templates", ИмяМакета + ".xml"); + КопироватьФайл(ФайлXMLМакета.ПолноеИмя, НовыйФайлМакета); + ЗаменитьВФайлеМакетаИмяМакета(НовыйФайлМакета, ИмяМакета); - XML_VA = ВременныйКаталогVA + "\VanessaAutomation.xml"; - Сообщить("XML_VA="+XML_VA); + XML_VA = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation.xml"); + Сообщить("XML_VA=" + XML_VA); Текст = Новый ЧтениеТекста; - Текст.Открыть(XML_VA,"UTF-8"); + Текст.Открыть(XML_VA, "UTF-8"); Массив = Новый Массив; Пока Истина Цикл @@ -857,8 +856,8 @@ ПереместитьФайл(ВременныйФайл,НовыйФайлМакета); КонецПроцедуры -Процедура ВставитьКодВОсновнуюФормуVA(ВременныйКаталогVA,МассивИменФорм) - ПутьКФайлуКодаОсновнойФормы = ВременныйКаталогVA + "\VanessaAutomation\Forms\УправляемаяФорма\Ext\Form\Module.bsl"; +Процедура ВставитьКодВОсновнуюФормуVA(ВременныйКаталогVA, МассивИменФорм) + ПутьКФайлуКодаОсновнойФормы = ПутьКМодулюФормы(ВременныйКаталогVA, "УправляемаяФорма"); Текст = Новый ЧтениеТекста; Текст.Открыть(ПутьКФайлуКодаОсновнойФормы,"UTF-8"); @@ -894,8 +893,8 @@ ПереместитьФайл(ВременныйФайл,ПутьКФайлуКодаОсновнойФормы); КонецПроцедуры -Процедура ВставитьКодСоставаБиблиотекВVA(ВременныйКаталогVA,МассивИменФорм) - ПутьКФайлуКодаОсновнойФормы = ВременныйКаталогVA + "\VanessaAutomation\Ext\ObjectModule.bsl"; +Процедура ВставитьКодСоставаБиблиотекВVA(ВременныйКаталогVA, МассивИменФорм) + ПутьКФайлуКодаОсновнойФормы = МодульОбъекта(ВременныйКаталогVA, "VanessaAutomation"); Текст = Новый ЧтениеТекста; @@ -930,7 +929,7 @@ КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("xml"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл ЗТ.ЗаписатьСтроку(Стр); КонецЦикла; @@ -946,8 +945,8 @@ МассивИменФорм = Новый Массив; НомерФормы = 0; - КаталогПлагинов = ПутьКVA + "\plugins"; - Файлы = НайтиФайлы(КаталогПлагинов,"*.xml",Истина); + КаталогПлагинов = ОбъединитьПути(ПутьКVA, "plugins"); + Файлы = НайтиФайлы(КаталогПлагинов, "*.xml", Истина); Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLВнешнейОбработки(Файл.ПолноеИмя) Тогда Продолжить; @@ -956,11 +955,11 @@ Сообщить("Найден файл обработки: " + Файл.ПолноеИмя); НомерФормы = НомерФормы + 1; - ВставитьФормуВVA(Файл,"Плагин",МассивИменФорм,ВременныйКаталогVA,НомерФормы,ДопИмя); + ВставитьФормуВVA(Файл, "Плагин", МассивИменФорм, ВременныйКаталогVA, НомерФормы, ДопИмя); КонецЦикла; - КаталогЛокализации = ПутьКVA + "\locales"; - Файлы = НайтиФайлы(КаталогЛокализации,"*.xml",Истина); + КаталогЛокализации = ОбъединитьПути(ПутьКVA, "locales"); + Файлы = НайтиФайлы(КаталогЛокализации, "*.xml", Истина); Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLВнешнейОбработки(Файл.ПолноеИмя) Тогда Продолжить; @@ -972,8 +971,8 @@ ВставитьФормуВVA(Файл,"Локализация",МассивИменФорм,ВременныйКаталогVA,НомерФормы,ДопИмя); КонецЦикла; - КаталогЛокализации = ПутьКVA + "\lib\Video"; - Файлы = НайтиФайлы(КаталогЛокализации,"*.xml",Истина); + КаталогЛокализации = ОбъединитьПути(ПутьКVA, "lib", "Video"); + Файлы = НайтиФайлы(КаталогЛокализации, "*.xml", Истина); Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLВнешнейОбработки(Файл.ПолноеИмя) Тогда Продолжить; @@ -985,8 +984,8 @@ ВставитьФормуВVA(Файл,"Video",МассивИменФорм,ВременныйКаталогVA,НомерФормы,ДопИмя); КонецЦикла; - КаталогLib = ПутьКVA + "\lib\CompareFiles"; - Файлы = НайтиФайлы(КаталогLib,"*.xml",Истина); + КаталогLib = ОбъединитьПути(ПутьКVA, "lib", "CompareFiles"); + Файлы = НайтиФайлы(КаталогLib, "*.xml", Истина); Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLВнешнейОбработки(Файл.ПолноеИмя) Тогда Продолжить; @@ -1015,8 +1014,8 @@ КонецЦикла; //макеты локализации - КаталогЛокализации = ПутьКVA + "\locales"; - Файлы = НайтиФайлы(КаталогЛокализации,"*.xml",Истина); + КаталогЛокализации = ОбъединитьПути(ПутьКVA, "locales"); + Файлы = НайтиФайлы(КаталогЛокализации, "*.xml", Истина); Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLМакета(Файл.ПолноеИмя) Тогда Продолжить; @@ -1028,8 +1027,8 @@ КонецЦикла; //макеты обработок - КаталогЛокализации = ПутьКVA + "\features\Libraries"; - Файлы = НайтиФайлы(КаталогЛокализации,"*.xml",Истина); + КаталогЛокализации = ОбъединитьПути(ПутьКVA, "features", "Libraries"); + Файлы = НайтиФайлы(КаталогЛокализации, "*.xml", Истина); Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLМакета(Файл.ПолноеИмя) Тогда Продолжить; @@ -1045,13 +1044,17 @@ ВставитьФичаРидер(ПутьКVA,ВременныйКаталогVA); - ВставитьМодульПлагина(ПутьКVA,ВременныйКаталогVA,"ЗапросыИзБД",ПутьКVA + "\plugins\ЗапросыИзБД\Ext\ObjectModule.bsl"); + Заполнитель = "<Шаблон>"; + ПутьКПлагинам = ОбъединитьПути(ПутьКVA, "plugins"); + ШаблонПути = МодульОбъекта(ПутьКПлагинам, Заполнитель); + + ВставитьМодульПлагина(ПутьКVA, ВременныйКаталогVA, "ЗапросыИзБД", СтрЗаменить(ШаблонПути, Заполнитель, "ЗапросыИзБД")); - ВставитьМодульПлагина(ПутьКVA,ВременныйКаталогVA,"СериализаторMXL",ПутьКVA + "\plugins\СериализаторMXL\Ext\ObjectModule.bsl"); - ВставитьРеквизитыОбработкиВVA(ВременныйКаталогVA,ПутьКVA + "\plugins\СериализаторMXL.xml","СериализаторMXL",ДопИмя); + ВставитьМодульПлагина(ПутьКVA, ВременныйКаталогVA, "СериализаторMXL", СтрЗаменить(ШаблонПути, Заполнитель, "СериализаторMXL")); + ВставитьРеквизитыОбработкиВVA(ВременныйКаталогVA, ОбъединитьПути(ПутьКПлагинам, "СериализаторMXL.xml"), "СериализаторMXL", ДопИмя); - ВставитьМодульПлагина(ПутьКVA,ВременныйКаталогVA,"УтвержденияBDD",ПутьКVA + "\plugins\УтвержденияBDD\Ext\ObjectModule.bsl"); - ВставитьРеквизитыОбработкиВVA(ВременныйКаталогVA,ПутьКVA + "\plugins\УтвержденияBDD.xml","УтвержденияBDD",ДопИмя); + ВставитьМодульПлагина(ПутьКVA, ВременныйКаталогVA, "УтвержденияBDD", СтрЗаменить(ШаблонПути, Заполнитель, "УтвержденияBDD")); + ВставитьРеквизитыОбработкиВVA(ВременныйКаталогVA, ОбъединитьПути(ПутьКПлагинам, "УтвержденияBDD.xml"), "УтвержденияBDD", ДопИмя); ЗаменитьИмяОсновнойОбработки(ВременныйКаталогVA,ДопИмя); @@ -1096,7 +1099,7 @@ Процедура ЗаменитьИмяОсновнойОбработки(ВременныйКаталогVA,ДопИмя) //Замена в xml НовыйМассив = Новый Массив; - XMlОсновнойОбработки = ВременныйКаталогVA + "\VanessaAutomation.xml"; + XMlОсновнойОбработки = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation.xml"); Текст = Новый ЧтениеТекста; Текст.Открыть(XMlОсновнойОбработки,"UTF-8"); @@ -1139,7 +1142,7 @@ //модуль основной формы НовыйМассив = Новый Массив; - ФайлМодуляФормы = ВременныйКаталогVA + "\VanessaAutomation\Forms\УправляемаяФорма\Ext\Form\Module.bsl"; + ФайлМодуляФормы = ПутьКМодулюФормы(ВременныйКаталогVA, "УправляемаяФорма"); Текст = Новый ЧтениеТекста; Текст.Открыть(ФайлМодуляФормы,"UTF-8"); @@ -1159,7 +1162,7 @@ ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); Для Каждого Стр Из НовыйМассив Цикл Если Найти(Стр,"ВнешняяОбработка.VanessaAutomation") > 0 Тогда - Стр = СтрЗаменить(Стр,"ВнешняяОбработка.VanessaAutomation.","ВнешняяОбработка.VanessaAutomation" + ДопИмя + "."); + Стр = СтрЗаменить(Стр,"ВнешняяОбработка.VanessaAutomation.", "ВнешняяОбработка.VanessaAutomation" + ДопИмя + "."); КонецЕсли; ЗТ.ЗаписатьСтроку(Стр); @@ -1172,7 +1175,8 @@ Процедура ВставитьЭкспортныеФичиВМакеты(ВременныйКаталогVA,КаталогБиблиотеки) НовыйМассив = Новый Массив; - ТекстовыйМакетДляЗаписи = ВременныйКаталогVA + "\VanessaAutomation\Templates\ЭкспортныеСценарии\Ext\Template.txt"; + + ТекстовыйМакетДляЗаписи = ФайлДанныеМакета(ВременныйКаталогVA, "VanessaAutomation", "ЭкспортныеСценарии"); Текст = Новый ЧтениеТекста; Текст.Открыть(ТекстовыйМакетДляЗаписи,"UTF-8"); @@ -1268,7 +1272,7 @@ КонецЦикла; Текст.Закрыть(); - ПутьКXML_VA = ВременныйКаталогVA + "\VanessaAutomation.xml"; + ПутьКXML_VA = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation.xml"); Текст = Новый ЧтениеТекста; Текст.Открыть(ПутьКXML_VA,"UTF-8"); @@ -1406,8 +1410,8 @@ КонецЦикла; Текст.Закрыть(); - МодульДляВставки = ВременныйКаталогVA + "\VanessaAutomation\Ext\ObjectModule.bsl"; - Сообщить("МодульДляВставки="+МодульДляВставки); + МодульДляВставки = МодульОбъекта(ВременныйКаталогVA, "VanessaAutomation"); + Сообщить("МодульДляВставки=" + МодульДляВставки); Текст = Новый ЧтениеТекста; Текст.Открыть(МодульДляВставки,"UTF-8"); @@ -1521,10 +1525,10 @@ ПереместитьФайл(ВременныйФайл,МодульДляВставки); КонецПроцедуры -Процедура ВставитьФичаРидер(ПутьКVA,ВременныйКаталогVA) +Процедура ВставитьФичаРидер(ПутьКVA, ВременныйКаталогVA) ИмяОбработкиДляВставки = "FeatureReader"; - МодульОбработкиVA = ПутьКVA + "\lib\FeatureReader\FeatureReader\Ext\ObjectModule.bsl"; + МодульОбработкиVA = МодульОбъекта(ОбъединитьПути(ПутьКVA, "lib", "FeatureReader"), "FeatureReader"); Текст = Новый ЧтениеТекста; Текст.Открыть(МодульОбработкиVA,"UTF-8"); @@ -1539,8 +1543,8 @@ КонецЦикла; Текст.Закрыть(); - МодульДляВставки = ВременныйКаталогVA + "\VanessaAutomation\Ext\ObjectModule.bsl"; - Сообщить("МодульДляВставки="+МодульДляВставки); + МодульДляВставки = МодульОбъекта(ВременныйКаталогVA, "VanessaAutomation"); + Сообщить("МодульДляВставки=" + МодульДляВставки); Текст = Новый ЧтениеТекста; Текст.Открыть(МодульДляВставки,"UTF-8"); @@ -1661,22 +1665,24 @@ Процедура СобратьVA_Single(ПутьКVA, ВременныйКаталогVA, ВерсияПлатформы, ДопИмя, КаталогБазы) //сборка epf - ПереместитьФайл(ВременныйКаталогVA + "\VanessaAutomation.xml",ВременныйКаталогVA + "\VanessaAutomation" + ДопИмя + ".xml"); + ПереместитьФайл(ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation.xml"), ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation" + ДопИмя + ".xml")); - КаталогКуда = ВременныйКаталогVA + "\VanessaAutomation" + ДопИмя; + КаталогКуда = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation" + ДопИмя); СоздатьКаталог(КаталогКуда); + ВременныйКаталогИсходников = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation"); + КаталогиОткуда = Новый Массив; - КаталогиОткуда.Добавить(ВременныйКаталогVA + "\VanessaAutomation"); + КаталогиОткуда.Добавить(ВременныйКаталогИсходников); МассивМасок = Новый Массив; МассивМасок.Добавить("*"); ПереместитьФайлыВКаталог(КаталогКуда, КаталогиОткуда, МассивМасок); - ОчиститьКаталог(ВременныйКаталогVA + "\VanessaAutomation"); - УдалитьФайлы(ВременныйКаталогVA + "\VanessaAutomation"); + ОчиститьКаталог(ВременныйКаталогИсходников); + УдалитьФайлы(ВременныйКаталогИсходников); - ИмяФайлаКорневойXml = ВременныйКаталогVA + "\VanessaAutomation" + ДопИмя + ".xml"; - ИмяОбработки = ВременныйКаталогVA + "\vanessa-automation-" + ДопИмя +".epf"; + ИмяФайлаКорневойXml = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation" + ДопИмя + ".xml"); + ИмяОбработки = ОбъединитьПути(ВременныйКаталогVA, "vanessa-automation-" + ДопИмя + ".epf"); УдалитьФайлы(ИмяОбработки); ПараметрыЗапуска = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска(); @@ -1704,7 +1710,7 @@ ВременныйJson = ПолучитьИмяВременногоФайла("json"); ИмяФайлаКеш = ПолучитьИмяВременногоФайла("txt"); ИмяФайлаКеш = СтрЗаменить(ИмяФайлаКеш,"\","/"); - КаталогTemplateEpfUF = ПутьКVA + "\lib\TemplateEpfUF"; + КаталогTemplateEpfUF = ОбъединитьПути(ПутьКVA, "lib", "TemplateEpfUF"); КаталогTemplateEpfUF = СтрЗаменить(КаталогTemplateEpfUF,"\","/"); ЗаписьJson.ОткрытьФайл(ВременныйJson); @@ -1716,7 +1722,7 @@ ЗаписьJSON.ЗаписатьКонецОбъекта(); ЗаписьJson.Закрыть(); - СтрокаКоманды = """" + ВерсияПлатформы + "\1cv8c"" Enterprise /F""" + КаталогБазы + """ /Execute """ + ИмяОбработки + """ /C""GetStepsCache;ClearCacheSteps;VBParams=" + ВременныйJson + """"; + СтрокаКоманды = """" + ВерсияПлатформы + """ Enterprise /F""" + КаталогБазы + """ /Execute """ + ИмяОбработки + """ /C""GetStepsCache;ClearCacheSteps;VBParams=" + ВременныйJson + """"; Сообщить(СтрокаКоманды); retCode = -1; @@ -1732,7 +1738,7 @@ Текст.Открыть(ИмяФайлаКеш,"UTF-8"); Стр = Текст.Прочитать(); - ЗТ = Новый ЗаписьТекста(КаталогКуда + "\Templates\МакетСлужебныйКеш\Ext\Template.txt","UTF-8",,Ложь); + ЗТ = Новый ЗаписьТекста(ФайлДанныеМакета(КаталогКуда, , "МакетСлужебныйКеш"), "UTF-8", , Ложь); ЗТ.Записать(Стр); ЗТ.Закрыть(); @@ -1754,15 +1760,16 @@ КонецПопытки; //сборка каталога Distrib - КаталогDistrib = ВременныйКаталогVA + "\DistribVanessaAutomation" + ДопИмя; + КаталогDistrib = ОбъединитьПути(ВременныйКаталогVA, "DistribVanessaAutomation" + ДопИмя); СоздатьКаталог(КаталогDistrib); - НовоеИмяEpf = КаталогDistrib + "\vanessa-automation-" + ДопИмя +".epf"; + НовоеИмяEpf = ОбъединитьПути(КаталогDistrib, "vanessa-automation-" + ДопИмя +".epf"); ПереместитьФайл(ИмяОбработки,НовоеИмяEpf); - УдалитьФайлы(ВременныйКаталогVA + "\VanessaAutomation" + ДопИмя + ".xml"); - ОчиститьКаталог(ВременныйКаталогVA + "\VanessaAutomation"+ДопИмя); - УдалитьФайлы(ВременныйКаталогVA + "\VanessaAutomation"+ДопИмя); + ВременныйКаталогИсходников = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation" + ДопИмя); + УдалитьФайлы(ВременныйКаталогИсходников + ".xml"); + ОчиститьКаталог(ВременныйКаталогИсходников); + УдалитьФайлы(ВременныйКаталогИсходников); МассивМасок = Новый Массив; МассивМасок.Добавить("*.epf"); @@ -1784,65 +1791,67 @@ КаталогиОткуда.Добавить(ПутьКVA); СкопироватьФайлыВКаталог(КаталогDistrib,КаталогиОткуда, МассивМасок); //удалим лишние epf и epf библиотек - Файлы = НайтиФайлы(КаталогDistrib,"*.epf",Истина); + Файлы = НайтиФайлы(КаталогDistrib, "*.epf", Истина); + Разделитель = ПолучитьРазделительПути(); + Для Каждого Файл Из Файлы Цикл - Если Найти(Файл.ПолноеИмя,"vanessa-automation.epf") Тогда + Если Найти(Файл.ПолноеИмя, "vanessa-automation.epf") Тогда УдалитьФайлы(Файл.ПолноеИмя); - ИначеЕсли Найти(Файл.ПолноеИмя,"features\Libraries") Тогда + ИначеЕсли Найти(Файл.ПолноеИмя, ОбъединитьПути("features", "Libraries")) Тогда УдалитьФайлы(Файл.ПолноеИмя); - ИначеЕсли Найти(Файл.ПолноеИмя,"\lib\") Тогда + ИначеЕсли Найти(Файл.ПолноеИмя, Разделитель + "lib" + Разделитель) Тогда УдалитьФайлы(Файл.ПолноеИмя); - ИначеЕсли Найти(Файл.ПолноеИмя,"\locales\") Тогда + ИначеЕсли Найти(Файл.ПолноеИмя, Разделитель + "locales" + Разделитель) Тогда УдалитьФайлы(Файл.ПолноеИмя); - ИначеЕсли Найти(Файл.ПолноеИмя,"\plugins\") Тогда + ИначеЕсли Найти(Файл.ПолноеИмя, Разделитель + "plugins" + Разделитель) Тогда УдалитьФайлы(Файл.ПолноеИмя); КонецЕсли; КонецЦикла; - ОбновитьРидми(КаталогDistrib + "\README.md"); + ОбновитьРидми(ОбъединитьПути(КаталогDistrib, "README.md")); //копируем \tools\Sikuli КаталогиОткуда = Новый Массив; - КаталогиОткуда.Добавить(ПутьКVA + "\tools\Sikuli"); + КаталогиОткуда.Добавить(ОбъединитьПути(ПутьКVA, "tools", "Sikuli")); МассивМасок = Новый Массив; МассивМасок.Добавить("*"); - СкопироватьФайлыВКаталог(КаталогDistrib + "\tools\Sikuli",КаталогиОткуда,МассивМасок); + СкопироватьФайлыВКаталог(ОбъединитьПути(КаталогDistrib, "tools", "Sikuli"), КаталогиОткуда, МассивМасок); //копируем lib\CF КаталогиОткуда = Новый Массив; - КаталогиОткуда.Добавить(ПутьКVA + "\lib\CF"); + КаталогиОткуда.Добавить(ОбъединитьПути(ПутьКVA, "lib", "CF")); МассивМасок = Новый Массив; МассивМасок.Добавить("*"); - СкопироватьФайлыВКаталог(КаталогDistrib + "\lib\CF",КаталогиОткуда,МассивМасок); + СкопироватьФайлыВКаталог(ОбъединитьПути(КаталогDistrib, "lib", "CF"), КаталогиОткуда, МассивМасок); //копируем lib\VA_Chrome КаталогиОткуда = Новый Массив; - КаталогиОткуда.Добавить(ПутьКVA + "\lib\VA_Chrome"); + КаталогиОткуда.Добавить(ОбъединитьПути(ПутьКVA, "lib", "VA_Chrome")); МассивМасок = Новый Массив; МассивМасок.Добавить("*"); - СкопироватьФайлыВКаталог(КаталогDistrib + "\lib\VA_Chrome",КаталогиОткуда,МассивМасок); + СкопироватьФайлыВКаталог(ОбъединитьПути(КаталогDistrib, "lib", "VA_Chrome"), КаталогиОткуда, МассивМасок); //копируем lib\VAExtension КаталогиОткуда = Новый Массив; - КаталогиОткуда.Добавить(ПутьКVA + "\lib\VAExtension"); + КаталогиОткуда.Добавить(ОбъединитьПути(ПутьКVA, "lib", "VAExtension")); МассивМасок = Новый Массив; МассивМасок.Добавить("*"); - СкопироватьФайлыВКаталог(КаталогDistrib + "\lib\VAExtension",КаталогиОткуда,МассивМасок); + СкопироватьФайлыВКаталог(ОбъединитьПути(КаталогDistrib, "lib", "VAExtension"), КаталогиОткуда, МассивМасок); //копируем картинки tools\VideoTools КаталогиОткуда = Новый Массив; - КаталогиОткуда.Добавить(ПутьКVA + "\tools\VideoTools"); + КаталогиОткуда.Добавить(ОбъединитьПути(ПутьКVA, "tools", "VideoTools")); МассивМасок = Новый Массив; МассивМасок.Добавить("*.png"); - СкопироватьФайлыВКаталог(КаталогDistrib + "\tools\VideoTools",КаталогиОткуда,МассивМасок); + СкопироватьФайлыВКаталог(ОбъединитьПути(КаталогDistrib, "tools", "VideoTools"), КаталогиОткуда, МассивМасок); //замена в json имени обработки - Файлы = НайтиФайлы(КаталогDistrib,"*.json",Истина); + Файлы = НайтиФайлы(КаталогDistrib, "*.json", Истина); Для Каждого Файл Из Файлы Цикл МассивСтрок = Новый Массив; Текст = Новый ЧтениеТекста; - Текст.Открыть(Файл.ПолноеИмя,"UTF-8"); + Текст.Открыть(Файл.ПолноеИмя, "UTF-8"); Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); @@ -1850,11 +1859,11 @@ Прервать; КонецЕсли; - Если Найти(Стр,"VBParams82OF.json") > 0 Тогда + Если Найти(Стр, "VBParams82OF.json") > 0 Тогда Продолжить; - ИначеЕсли Найти(Стр,"VBParams836OF.json") > 0 Тогда + ИначеЕсли Найти(Стр, "VBParams836OF.json") > 0 Тогда Продолжить; - ИначеЕсли Найти(Стр,"Web.json") > 0 Тогда + ИначеЕсли Найти(Стр, "Web.json") > 0 Тогда Продолжить; КонецЕсли; @@ -1865,7 +1874,7 @@ ВременныйJson = ПолучитьИмяВременногоФайла("json"); ЗТ = Новый ЗаписьТекста(ВременныйJson,"UTF-8",,Истина); Для Каждого Стр Из МассивСтрок Цикл - Стр = СтрЗаменить(Стр,"vanessa-automation.epf","vanessa-automation-" + ДопИмя + ".epf"); + Стр = СтрЗаменить(Стр, "vanessa-automation.epf", "vanessa-automation-" + ДопИмя + ".epf"); ЗТ.ЗаписатьСтроку(Стр); КонецЦикла; ЗТ.Закрыть(); @@ -1935,15 +1944,65 @@ КонецПроцедуры Процедура СоздатьОбработкуСингл(ПутьКVA, ПутьКBin, БиблиотекиДляВстраивания, ВерсияПлатформы, ПутьКБазе) - ВременныйКаталогVA = ПутьКBin + "\Temp"; - СкопироватьФайлыVA(ПутьКVA,ВременныйКаталогVA); + ВременныйКаталогVA = ОбъединитьПути(ПутьКBin, "Temp"); + + СкопироватьФайлыVA(ПутьКVA, ВременныйКаталогVA); - ВставитьФормыОбработокВVA(ПутьКVA,ВременныйКаталогVA,БиблиотекиДляВстраивания,"single"); + ВставитьФормыОбработокВVA(ПутьКVA, ВременныйКаталогVA, БиблиотекиДляВстраивания, "single"); СобратьVA_Single(ПутьКVA,ВременныйКаталогVA,ВерсияПлатформы,"single",ПутьКБазе); + КонецПроцедуры +Функция ПутьКМодулюФормы(ВременныйКаталогVA, ИмяФормы) + + ПутьКФайламФормы = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation", "Forms", ИмяФормы); + Возврат ОбъединитьПути(ПутьКФайламФормы, "Ext", "Form", "Module.bsl"); + +КонецФункции + +Функция МодульОбъекта(ПутьККаталогу, ИмяОбработки) + + Возврат ОбъединитьПути(ПутьККаталогу, ИмяОбработки, "Ext", "ObjectModule.bsl"); + +КонецФункции + +Функция ФайлДанныеМакета(Каталог, ИмяОбработки = Неопределено, ИмяМакета, Расширение = "txt") + + Если ИмяОбработки <> Неопределено Тогда + ФайлыМакета = ОбъединитьПути(Каталог, ИмяОбработки, "Templates", ИмяМакета); + Иначе + ФайлыМакета = ОбъединитьПути(Каталог, "Templates", ИмяМакета); + КонецЕсли; + + Возврат ОбъединитьПути(ФайлыМакета, "Ext", "Template." + Расширение); + +КонецФункции + +Функция АбсолютныйПуть(Путь) + + Файл = Новый Файл(Путь); + Возврат Файл.ПолноеИмя; + +КонецФункции + +Функция ИзвлечьВерсиюПлатформы(ПутьККаталогуBin) + + ФайлBin = Новый Файл(ПутьККаталогуBin); // Путь к каталогу bin платформы + + Если НЕ ФайлBin.Существует() И ФайлBin.Путь = "" Тогда + ВерсияПлатформы = ПутьККаталогуBin; + Иначе + ФайлНаОдинКаталогВыше = Новый Файл(ФайлBin.Путь); + ВерсияПлатформы = ФайлНаОдинКаталогВыше.Имя; + КонецЕсли; + + Возврат ВерсияПлатформы; + +КонецФункции + + Лог = Логирование.ПолучитьЛог("vb.compile.log"); Лог.УстановитьУровень(УровниЛога.Отладка); @@ -1953,17 +2012,26 @@ Лог.Ошибка("Скрипт принимает пять параметров!"); Иначе УправлениеКонфигуратором = Новый УправлениеКонфигуратором(); - ФайлBin = Новый Файл(АргументыКоманднойСтроки[3]);//Путь к каталогу bin платформы - ФайлНаОдинКаталогВыше = Новый Файл(ФайлBin.Путь); - ВерсияПлатформы = ФайлНаОдинКаталогВыше.Имя; + ВерсияПлатформы = ИзвлечьВерсиюПлатформы(АргументыКоманднойСтроки[3]); Сообщить("Для пакетного запуска конфигуратора установлена платформа: " + ВерсияПлатформы); - путьКПлатформе = УправлениеКонфигуратором.ПолучитьПутьКВерсииПлатформы(ВерсияПлатформы); - УправлениеКонфигуратором.ПутьКПлатформе1С(путьКПлатформе); + ПутьКПлатформе = УправлениеКонфигуратором.ПолучитьПутьКВерсииПлатформы(ВерсияПлатформы); + УправлениеКонфигуратором.ПутьКПлатформе1С(ПутьКПлатформе); КаталогБазы = ПолучитьИмяВременногоФайла(); УправлениеКонфигуратором.СоздатьФайловуюБазу(КаталогБазы); - УправлениеКонфигуратором.УстановитьКонтекст("/F""" + КаталогБазы + """","",""); + УправлениеКонфигуратором.УстановитьКонтекст("/F""" + КаталогБазы + """", "", ""); + + + ПутьКИсходникамVanessaAutomation = АбсолютныйПуть(АргументыКоманднойСтроки[0]); + КаталогСборки = АбсолютныйПуть(АргументыКоманднойСтроки[1]); + КаталогиБиблиотек = АбсолютныйПуть(АргументыКоманднойСтроки[2]); + КаталогФайловойБазы = АбсолютныйПуть(АргументыКоманднойСтроки[4]); + + СоздатьОбработкуСингл(ПутьКИсходникамVanessaAutomation, + КаталогСборки, + КаталогиБиблиотек, + ПутьКПлатформе, + КаталогФайловойБазы); - СоздатьОбработкуСингл(АргументыКоманднойСтроки[0],АргументыКоманднойСтроки[1],АргументыКоманднойСтроки[2],АргументыКоманднойСтроки[3],АргументыКоманднойСтроки[4]); КонецЕсли; Сообщить("////////////////////"); From 368c938725702ecbcc833adea267a4d964e80e21 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 12 Nov 2024 14:56:37 +0300 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20single=20on=20l?= =?UTF-8?q?inux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/onescript/MakeVASingle.os | 1166 ++++++++++++++++--------------- 1 file changed, 596 insertions(+), 570 deletions(-) diff --git a/tools/onescript/MakeVASingle.os b/tools/onescript/MakeVASingle.os index 88a538542d..38c774b48d 100644 --- a/tools/onescript/MakeVASingle.os +++ b/tools/onescript/MakeVASingle.os @@ -5,13 +5,13 @@ Перем УправлениеКонфигуратором; Функция ДатуКСтроке(Дат) - Возврат Формат(Дат,"ДФ=yyyy.MM.dd.HH.mm.ss"); -КонецФункции + Возврат Формат(Дат, "ДФ=yyyy.MM.dd.HH.mm.ss"); +КонецФункции Процедура СообщениеПередИсключением(ТекстСообщения) Лог.Информация(ТекстСообщения); Sleep(5000); -КонецПроцедуры +КонецПроцедуры // Перемещаят найденные по маскам файлы с сохранением пути. // @@ -22,8 +22,8 @@ // // Взято из https://infostart.ru/public/537028/ Процедура ПереместитьФайлыВКаталог(КаталогКуда, КаталогиОткуда, МассивМасок) - - Для Каждого КаталогПоиска Из КаталогиОткуда Цикл + + Для Каждого КаталогПоиска Из КаталогиОткуда Цикл КаталогПоискаОбъект = Новый Файл(КаталогПоиска); Если НЕ КаталогПоискаОбъект.Существует() Тогда Лог.Ошибка(НСтр("ru = 'Каталог не найден.'")); @@ -31,44 +31,44 @@ КонецЕсли; Для Каждого Маска Из МассивМасок Цикл - - МассивФайлов = НайтиФайлы(КаталогПоиска, Маска, Истина); + + МассивФайлов = НайтиФайлы(КаталогПоиска, Маска, Истина); Для Каждого НайденныйФайл Из МассивФайлов Цикл НовыйПуть = СтрЗаменить(НайденныйФайл.Путь, КаталогПоиска, КаталогКуда); - НовоеИмя = НайденныйФайл.Имя; + НовоеИмя = НайденныйФайл.Имя; - Если НЕ ОбеспечитьКаталог(НовыйПуть) Тогда - Продолжить; + Если НЕ ОбеспечитьКаталог(НовыйПуть) Тогда + Продолжить; КонецЕсли; Если НайденныйФайл.ЭтоКаталог() Тогда Продолжить; - КонецЕсли; + КонецЕсли; ИмяФайлаДляПеремещения = ОбъединитьПути(НовыйПуть, НовоеИмя); УдалитьФайлы(ИмяФайлаДляПеремещения); Попытка - ПереместитьФайл(НайденныйФайл.ПолноеИмя,ИмяФайлаДляПеремещения); + ПереместитьФайл(НайденныйФайл.ПолноеИмя, ИмяФайлаДляПеремещения); Исключение Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось переместить файл: - |%1'"), ОписаниеОшибки())); + |%1'"), ОписаниеОшибки())); Продолжить; КонецПопытки; - + ФайлНаДиске = Новый Файл(ОбъединитьПути(НовыйПуть, НовоеИмя)); - Если НЕ ФайлНаДиске.Существует() Тогда + Если НЕ ФайлНаДиске.Существует() Тогда Лог.Ошибка(НСтр("ru = 'Не удалось корректно переместить файл.'")); Продолжить; - КонецЕсли; - КонецЦикла; + КонецЕсли; + КонецЦикла; + + КонецЦикла; - КонецЦикла; - - КонецЦикла; - + КонецЦикла; + КонецПроцедуры // Проверяет наличия каталога и в случае его отсутствия создает новый. @@ -83,15 +83,15 @@ Функция ОбеспечитьКаталог(Знач Каталог) Файл = Новый Файл(Каталог); - Если Не Файл.Существует() Тогда - Попытка + Если НЕ Файл.Существует() Тогда + Попытка СоздатьКаталог(Каталог); Исключение Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось создать каталог %1. - |%2'"), Каталог, ИнформацияОбОшибке())); + |%2'"), Каталог, ИнформацияОбОшибке())); Возврат Ложь; КонецПопытки; - ИначеЕсли Не Файл.ЭтоКаталог() Тогда + ИначеЕсли НЕ Файл.ЭтоКаталог() Тогда Лог.Ошибка(СтрШаблон(НСтр("ru = 'Каталог %1 не является каталогом.'"), Каталог)); Возврат Ложь; КонецЕсли; @@ -100,34 +100,34 @@ КонецФункции -Функция ПроверитьЧтоВсеФайлыИсходниковСоответствуютИхВерсиям(МассивВерсий,Знач ИмяКаталога) - ПромКаталог = СтрЗаменить(ИмяКаталога,"/","\"); - Если Прав(ПромКаталог,1) <> "\" Тогда +Функция ПроверитьЧтоВсеФайлыИсходниковСоответствуютИхВерсиям(МассивВерсий, Знач ИмяКаталога) + ПромКаталог = СтрЗаменить(ИмяКаталога, "/", "\"); + Если Прав(ПромКаталог, 1) <> "\" Тогда ИмяКаталога = ИмяКаталога + ПолучитьРазделительПути(); - КонецЕсли; + КонецЕсли; //Сообщить("ИмяКаталога="+ИмяКаталога); МассивФайлов = Новый Массив; МассивДляПоиска = Новый Массив; - Файлы = НайтиФайлы(ИмяКаталога,"*",Истина); + Файлы = НайтиФайлы(ИмяКаталога, "*", Истина); Для Каждого Файл Из Файлы Цикл Если Файл.ЭтоКаталог() Тогда Продолжить; - КонецЕсли; + КонецЕсли; Если ЭтоСлужебныйФайл(Файл.Имя) Тогда Продолжить; - КонецЕсли; + КонецЕсли; МассивФайлов.Добавить(Файл); - Стр = Сред(Файл.ПолноеИмя,СтрДлина(ИмяКаталога)); - Стр = СтрЗаменить(Стр,"/","\"); + Стр = Сред(Файл.ПолноеИмя, СтрДлина(ИмяКаталога)); + Стр = СтрЗаменить(Стр, "/", "\"); //Сообщить("СтрокаДляПоиска="+Стр); МассивДляПоиска.Добавить(Стр); - КонецЦикла; + КонецЦикла; //Сообщить("МассивФайлов.Количество()="+МассивФайлов.Количество()); //Сообщить("МассивВерсий.Количество()="+МассивВерсий.Количество()); @@ -137,35 +137,35 @@ //значит в исходниках появился новый файл или исчез Возврат Ложь; - КонецЕсли; + КонецЕсли; Для Каждого СтрокаВерсии Из МассивВерсий Цикл - Поз = Найти(СтрокаВерсии,"|"); - Версия = Лев(СтрокаВерсии,Поз-1); - ЧастьПути = Сред(СтрокаВерсии,Поз+1); + Поз = Найти(СтрокаВерсии, "|"); + Версия = Лев(СтрокаВерсии, Поз - 1); + ЧастьПути = Сред(СтрокаВерсии, Поз + 1); - ЧастьПути = СтрЗаменить(ЧастьПути,"/","\"); + ЧастьПути = СтрЗаменить(ЧастьПути, "/", "\"); ИдФайла = МассивДляПоиска.Найти(ЧастьПути); Если ИдФайла = Неопределено Тогда Лог.Информация("Не найден файл версии: " + ЧастьПути); Возврат Ложь; - КонецЕсли; + КонецЕсли; Файл = МассивФайлов[ИдФайла]; ТекущаяВерсияСтрокой = ДатуКСтроке(Файл.ПолучитьВремяИзменения()); Если ТекущаяВерсияСтрокой <> Версия Тогда Лог.Информация("Изменилась версия у файла: " + ЧастьПути); Возврат Ложь; - КонецЕсли; - КонецЦикла; + КонецЕсли; + КонецЦикла; Возврат Истина; КонецФункции -Процедура ЗагрузитьОбработкуИлиОтчетИзXML(ИмяФайла_filename,ИмяОбработкиИлиОтчета) +Процедура ЗагрузитьОбработкуИлиОтчетИзXML(ИмяФайла_filename, ИмяОбработкиИлиОтчета) Файл_filename = Новый Файл(ИмяФайла_filename); @@ -180,19 +180,19 @@ ИмяФайлаКорневойXml = ФайлКаталогГдеЛежит_filename.Путь + ИмяФайлаXML; ФайлКорневойXML = Новый Файл(ИмяФайлаКорневойXml); - Если Не ФайлКорневойXML.Существует() Тогда + Если НЕ ФайлКорневойXML.Существует() Тогда ТекстСообщения = "Файл " + ИмяФайлаКорневойXml + " не существует."; СообщениеПередИсключением(ТекстСообщения); ВызватьИсключение ТекстСообщения; - КонецЕсли; + КонецЕсли; ИмяФайлаОбработкиИлиОтчета = ФайлКорневойXML.Путь + ИмяОбработкиИлиОтчета; - Если Прав(НРег(ИмяФайлаОбработкиИлиОтчета),4) = ".epf" Тогда + Если Прав(НРег(ИмяФайлаОбработкиИлиОтчета), 4) = ".epf" Тогда ИмяФайлаВременныйОбработкаИлиОтчет = ПолучитьИмяВременногоФайла("epf"); - Иначе + Иначе ИмяФайлаВременныйОбработкаИлиОтчет = ПолучитьИмяВременногоФайла("erf"); - КонецЕсли; + КонецЕсли; ФайлОбработкаИлиОтчет = Новый Файл(ИмяФайлаОбработкиИлиОтчета); Если ФайлОбработкаИлиОтчет.Существует() Тогда @@ -202,37 +202,37 @@ Массив = Новый Массив; Текст = Новый ЧтениеТекста; - Текст.Открыть(ИмяФайлаВерсии,"UTF-8"); + Текст.Открыть(ИмяФайлаВерсии, "UTF-8"); Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; Массив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); Если Массив.Количество() < 1 Тогда ТекстСообщения = "Не получилось прочитать файл версии: " + ИмяФайлаВерсии; СообщениеПередИсключением(ТекстСообщения); ВызватьИсключение ТекстСообщения; - КонецЕсли; + КонецЕсли; - ВерсияСтрокой = Массив[0]; - Поз = Найти(ВерсияСтрокой,"|"); - ВерсияСтрокой = Лев(ВерсияСтрокой,Поз-1); + ВерсияСтрокой = Массив[0]; + Поз = Найти(ВерсияСтрокой, "|"); + ВерсияСтрокой = Лев(ВерсияСтрокой, Поз - 1); ТекущаяВерсияСтрокой = ДатуКСтроке(ФайлОбработкаИлиОтчет.ПолучитьВремяИзменения()); Если НРег(ВерсияСтрокой) = НРег(ТекущаяВерсияСтрокой) Тогда Массив.Удалить(0); - Если ПроверитьЧтоВсеФайлыИсходниковСоответствуютИхВерсиям(Массив,ФайлОбработкаИлиОтчет.Путь + ИмяКаталога_filename) Тогда + Если ПроверитьЧтоВсеФайлыИсходниковСоответствуютИхВерсиям(Массив, ФайлОбработкаИлиОтчет.Путь + ИмяКаталога_filename) Тогда Лог.Информация("" + ИмяОбработкиИлиОтчета + " уже собран."); Возврат; - КонецЕсли; + КонецЕсли; - КонецЕсли; + КонецЕсли; Если ТекущаяВерсияСтрокой > ВерсияСтрокой Тогда Лог.Ошибка("Файл <" + ИмяФайлаОбработкиИлиОтчета + "> имеет версию новее чем в исходниках. Удалите " + ФайлОбработкаИлиОтчет.Имя + ", если хотите пересобрать его."); @@ -242,16 +242,16 @@ ТекстСообщения = "Обработка прервана."; СообщениеПередИсключением(ТекстСообщения); ВызватьИсключение ТекстСообщения; - КонецЕсли; + КонецЕсли; - КонецЕсли; - КонецЕсли; + КонецЕсли; + КонецЕсли; ПараметрыЗапуска = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска(); - ПараметрыЗапуска.Добавить("/LoadExternalDataProcessorOrReportFromFiles """ + ИмяФайлаКорневойXml + """ """ + ИмяФайлаВременныйОбработкаИлиОтчет + """"); + ПараметрыЗапуска.Добавить("/LoadExternalDataProcessorOrReportFromFiles """ + ИмяФайлаКорневойXml + """ """ + ИмяФайлаВременныйОбработкаИлиОтчет + """"); ИмяФайлаOut = ПолучитьИмяВременногоФайла("txt"); - ПараметрыЗапуска.Добавить("/Out """ + ИмяФайлаOut + """"); + ПараметрыЗапуска.Добавить("/Out """ + ИмяФайлаOut + """"); Попытка УправлениеКонфигуратором.ВыполнитьКоманду(ПараметрыЗапуска); @@ -265,26 +265,26 @@ КонецПопытки; УдалитьФайлы(ИмяФайлаОбработкиИлиОтчета); - ПереместитьФайл(ИмяФайлаВременныйОбработкаИлиОтчет,ИмяФайлаОбработкиИлиОтчета); + ПереместитьФайл(ИмяФайлаВременныйОбработкаИлиОтчет, ИмяФайлаОбработкиИлиОтчета); ФайлОбработкаИлиОтчет = Новый Файл(ИмяФайлаОбработкиИлиОтчета); ВремяИзменения = ДатуКСтроке(ФайлОбработкаИлиОтчет.ПолучитьВремяИзменения()); //запишем версию файла - ЗаписатьВерсиюОбработкиИлиОтчета(ФайлОбработкаИлиОтчет,ИмяКаталога_filename,ИмяОбработкиИлиОтчета); + ЗаписатьВерсиюОбработкиИлиОтчета(ФайлОбработкаИлиОтчет, ИмяКаталога_filename, ИмяОбработкиИлиОтчета); Лог.Информация("" + ИмяОбработкиИлиОтчета + " собран."); -КонецПроцедуры +КонецПроцедуры Функция ЭтоСлужебныйФайл(ИмяФайла) Если Нрег(ИмяФайла) = "filename" Тогда Возврат Истина; ИначеЕсли Нрег(ИмяФайла) = "fileversion" Тогда Возврат Истина; - КонецЕсли; + КонецЕсли; Возврат Ложь; -КонецФункции +КонецФункции Функция ПолучитьВерсииФайловВКаталоге(Каталог) //Сообщить("КаталогПолучитьВерсииФайловВКаталоге="+Каталог); @@ -295,51 +295,51 @@ ТаблицаФайлов.Колонки.Добавить("ЭтоКаталог"); ТаблицаФайлов.Колонки.Добавить("ВремяИзменения"); - Файлы = НайтиФайлы(Каталог,"*",Истина); + Файлы = НайтиФайлы(Каталог, "*", Истина); Для Каждого Файл Из Файлы Цикл Если ЭтоСлужебныйФайл(Файл.Имя) Тогда Продолжить; - КонецЕсли; + КонецЕсли; СтрокаТаблицаФайлов = ТаблицаФайлов.Добавить(); - СтрокаТаблицаФайлов.ПолноеИмя = Файл.ПолноеИмя; + СтрокаТаблицаФайлов.ПолноеИмя = Файл.ПолноеИмя; СтрокаТаблицаФайлов.ЭтоКаталог = Файл.ЭтоКаталог(); - СтрокаТаблицаФайлов.ЧастьПути = Сред(Файл.ПолноеИмя,СтрДлина(Каталог)); + СтрокаТаблицаФайлов.ЧастьПути = Сред(Файл.ПолноеИмя, СтрДлина(Каталог)); //Сообщить("СтрокаТаблицаФайлов.ЧастьПути="+СтрокаТаблицаФайлов.ЧастьПути); Если СтрокаТаблицаФайлов.ЭтоКаталог Тогда Продолжить; - КонецЕсли; + КонецЕсли; СтрокаТаблицаФайлов.ВремяИзменения = ДатуКСтроке(Файл.ПолучитьВремяИзменения()); - КонецЦикла; + КонецЦикла; - Возврат ТаблицаФайлов; -КонецФункции + Возврат ТаблицаФайлов; +КонецФункции -Процедура ЗаписатьВерсиюОбработкиИлиОтчета(ФайлОбработкаИлиОтчет,ИмяКаталогаОбработки,ИмяОбработкиИлиОтчета) - ИмяФайлаВерсии = ФайлОбработкаИлиОтчет.Путь + ПолучитьРазделительПути()+ ИмяКаталогаОбработки + ПолучитьРазделительПути() + "fileversion"; +Процедура ЗаписатьВерсиюОбработкиИлиОтчета(ФайлОбработкаИлиОтчет, ИмяКаталогаОбработки, ИмяОбработкиИлиОтчета) + ИмяФайлаВерсии = ФайлОбработкаИлиОтчет.Путь + ПолучитьРазделительПути() + ИмяКаталогаОбработки + ПолучитьРазделительПути() + "fileversion"; //Сообщить("ИмяФайлаВерсии="+ИмяФайлаВерсии); УдалитьФайлы(ИмяФайлаВерсии); ВремяИзменения = ДатуКСтроке(ФайлОбработкаИлиОтчет.ПолучитьВремяИзменения()); ВерсииФайлов = ПолучитьВерсииФайловВКаталоге(ФайлОбработкаИлиОтчет.Путь + ИмяКаталогаОбработки + ПолучитьРазделительПути()); - ЗТ = Новый ЗаписьТекста(ИмяФайлаВерсии,"UTF-8",,Истина); - ЗТ.ЗаписатьСтроку(ВремяИзменения + "|" + ИмяОбработкиИлиОтчета); + ЗТ = Новый ЗаписьТекста(ИмяФайлаВерсии, "UTF-8", , Истина); + ЗТ.ЗаписатьСтроку(ВремяИзменения + "|" + ИмяОбработкиИлиОтчета); Для Каждого СтрокаВерсииФайлов Из ВерсииФайлов Цикл Если СтрокаВерсииФайлов.ЭтоКаталог Тогда Продолжить; - КонецЕсли; + КонецЕсли; Стр = "" + СтрокаВерсииФайлов.ВремяИзменения + "|" + СтрокаВерсииФайлов.ЧастьПути; - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); -КонецПроцедуры +КонецПроцедуры Процедура СобратьОбработкуИлиОтчетВКаталогеИПодКаталогах(Путь) Файл = Новый Файл(Путь); @@ -347,9 +347,9 @@ ТекстСообщения = "Каталог <" + Путь + "> не существует."; СообщениеПередИсключением(ТекстСообщения); ВызватьИсключение ТекстСообщения; - КонецЕсли; + КонецЕсли; - Файлы = НайтиФайлы(Путь,"filename.*",Истина); + Файлы = НайтиФайлы(Путь, "filename.*", Истина); КоличествоФайлов = Файлы.Количество(); @@ -358,79 +358,84 @@ НомерФайла = НомерФайла + 1; Текст = Новый ЧтениеТекста; - Текст.Открыть(Файл.ПолноеИмя,"UTF-8"); + Текст.Открыть(Файл.ПолноеИмя, "UTF-8"); ИмяОбработкиИлиОтчета = ""; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; ИмяОбработкиИлиОтчета = Стр; - КонецЦикла; + КонецЦикла; Текст.Закрыть(); Если ИмяОбработкиИлиОтчета = "" Тогда ТекстСообщения = "В файле " + Файл.ПолноеИмя + " не найдено имя собираемого файла."; СообщениеПередИсключением(ТекстСообщения); ВызватьИсключение ТекстСообщения; - КонецЕсли; + КонецЕсли; Лог.Информация("Файл " + НомерФайла + " из " + КоличествоФайлов + ": " + ИмяОбработкиИлиОтчета); - ЗагрузитьОбработкуИлиОтчетИзXML(Файл.ПолноеИмя,ИмяОбработкиИлиОтчета); - КонецЦикла; + ЗагрузитьОбработкуИлиОтчетИзXML(Файл.ПолноеИмя, ИмяОбработкиИлиОтчета); + КонецЦикла; -КонецПроцедуры +КонецПроцедуры Процедура ОчиститьКаталог(Путь) - Файлы = НайтиФайлы(Путь,"*",Истина); + Файлы = НайтиФайлы(Путь, "*", Истина); Для Каждого Файл Из Файлы Цикл Попытка УдалитьФайлы(Файл.ПолноеИмя); Исключение КонецПопытки; - КонецЦикла; + КонецЦикла; - Файлы = НайтиФайлы(Путь,"*",Истина); + Файлы = НайтиФайлы(Путь, "*", Истина); Для Каждого Файл Из Файлы Цикл Попытка УдалитьФайлы(Файл.ПолноеИмя); Исключение КонецПопытки; - КонецЦикла; + КонецЦикла; - Файлы = НайтиФайлы(Путь,"*",Истина); + Файлы = НайтиФайлы(Путь, "*", Истина); Если Файлы.Количество() > 0 Тогда ВызватьИсключение "Не получилось очистить каталог <" + Путь + ">"; - КонецЕсли; -КонецПроцедуры + КонецЕсли; +КонецПроцедуры -Процедура СкопироватьФайлыВКаталог(КаталогКуда, КаталогиОткуда, МассивМасок) - - Для Каждого КаталогПоиска Из КаталогиОткуда Цикл +Процедура СкопироватьФайлыВКаталог(Знач КаталогКуда, Знач КаталогиОткуда, МассивМасок) + + КаталогКуда = АбсолютныйПуть(КаталогКуда); + + Для Каждого КаталогПоиска Из КаталогиОткуда Цикл + КаталогПоискаОбъект = Новый Файл(КаталогПоиска); Если НЕ КаталогПоискаОбъект.Существует() Тогда Лог.Ошибка(НСтр("ru = 'Каталог не найден.'")); Продолжить; КонецЕсли; - Для Каждого Маска Из МассивМасок Цикл + КаталогПоиска = АбсолютныйПуть(КаталогПоиска); - МассивФайлов = НайтиФайлы(КаталогПоиска, Маска, Истина); + Для Каждого Маска Из МассивМасок Цикл + + МассивФайлов = НайтиФайлы(КаталогПоиска, Маска, Истина); Для Каждого НайденныйФайл Из МассивФайлов Цикл НовыйПуть = СтрЗаменить(НайденныйФайл.Путь, КаталогПоиска, КаталогКуда); // Сообщить(НайденныйФайл.Путь + " --> " + НовыйПуть); НовоеИмя = НайденныйФайл.Имя; - Если НЕ ОбеспечитьКаталог(НовыйПуть) Тогда - Продолжить; + Если НЕ ОбеспечитьКаталог(НовыйПуть) Тогда + Продолжить; КонецЕсли; Если НайденныйФайл.ЭтоКаталог() Тогда Продолжить; - КонецЕсли; + КонецЕсли; ИмяФайлаДляПеремещения = ОбъединитьПути(НовыйПуть, НовоеИмя); УдалитьФайлы(ИмяФайлаДляПеремещения); @@ -439,21 +444,21 @@ КопироватьФайл(НайденныйФайл.ПолноеИмя, ИмяФайлаДляПеремещения); Исключение Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось скопировать файл: - |%1'"), ОписаниеОшибки())); + |%1'"), ОписаниеОшибки())); Продолжить; КонецПопытки; - + ФайлНаДиске = Новый Файл(ОбъединитьПути(НовыйПуть, НовоеИмя)); - Если НЕ ФайлНаДиске.Существует() Тогда + Если НЕ ФайлНаДиске.Существует() Тогда Лог.Ошибка(НСтр("ru = 'Не удалось корректно скопировать файл.'")); Продолжить; - КонецЕсли; + КонецЕсли; КонецЦикла; - + КонецЦикла; - - КонецЦикла; - + + КонецЦикла; + КонецПроцедуры Процедура СкопироватьФайлыVA(ПутьКVA, ПутьКBin) @@ -465,11 +470,11 @@ СкопироватьФайлыВКаталог(ОбъединитьПути(ПутьКBin, "VanessaAutomation"), КаталогиОткуда, МассивМасок); КопироватьФайл(ОбъединитьПути(ПутьКVA, "VanessaAutomation.xml"), ОбъединитьПути(ПутьКBin, "VanessaAutomation.xml")); -КонецПроцедуры +КонецПроцедуры Функция ЭтоXMLВнешнейОбработки(ИмяФайла) Текст = Новый ЧтениеТекста; - Текст.Открыть(ИмяФайла,"UTF-8"); + Текст.Открыть(ИмяФайла, "UTF-8"); ЭтоВнешняяОбработка = Ложь; @@ -478,27 +483,27 @@ Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; НомерСтроки = НомерСтроки + 1; Если НомерСтроки = 3 Тогда - Если Найти(Стр," 0 Тогда + Если Найти(Стр, " 0 Тогда ЭтоВнешняяОбработка = Истина; Прервать; - КонецЕсли; - КонецЕсли; + КонецЕсли; + КонецЕсли; - КонецЦикла; + КонецЦикла; Текст.Закрыть(); Возврат ЭтоВнешняяОбработка; -КонецФункции +КонецФункции Функция ЭтоXMLМакета(ИмяФайла) Текст = Новый ЧтениеТекста; - Текст.Открыть(ИмяФайла,"UTF-8"); + Текст.Открыть(ИмяФайла, "UTF-8"); ЭтоXMLМакета = Ложь; @@ -507,21 +512,21 @@ Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; НомерСтроки = НомерСтроки + 1; - Если Найти(Стр,"SpreadsheetDocument") > 0 Тогда + Если Найти(Стр, "SpreadsheetDocument") > 0 Тогда ЭтоXMLМакета = Истина; Прервать; - КонецЕсли; + КонецЕсли; - КонецЦикла; + КонецЦикла; Текст.Закрыть(); Возврат ЭтоXMLМакета; -КонецФункции +КонецФункции Процедура СкопироватьФайлыФормы(КаталогФормы, ФормыVA, ИмяФормы, ДопИмя) //Сообщить("ФормыVA="+ФормыVA); @@ -533,58 +538,58 @@ КаталогиОткуда = Новый Массив; КаталогиОткуда.Добавить(КаталогФормы); - СкопироватьФайлыВКаталог(ОбъединитьПути(ФормыVA, ИмяФормы),КаталогиОткуда, МассивМасок); + СкопироватьФайлыВКаталог(ОбъединитьПути(ФормыVA, ИмяФормы), КаталогиОткуда, МассивМасок); - ИмяФайлаForm = ОбъединитьПути(ФормыVA, ИмяФормы, "Ext", "Form.xml"); + ИмяФайлаForm = ОбъединитьПути(ФормыVA, ИмяФормы, "Ext", "Form.xml"); Файл = Новый Файл(ИмяФайлаForm); - Если Не Файл.Существует() Тогда + Если НЕ Файл.Существует() Тогда //значит это обычная форма, а не управляемая Возврат; - КонецЕсли; + КонецЕсли; Текст = Новый ЧтениеТекста; - Текст.Открыть(ИмяФайлаForm,"UTF-8"); + Текст.Открыть(ИмяФайлаForm, "UTF-8"); Массив = Новый Массив; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; Массив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); НовыйМассив = Новый Массив; - Для Ккк = 0 По Массив.Количество()-1 Цикл + Для Ккк = 0 По Массив.Количество() - 1 Цикл Стр = Массив.Получить(Ккк); - Если Найти(Стр,"cfg:ExternalDataProcessorObject.") > 0 Тогда + Если Найти(Стр, "cfg:ExternalDataProcessorObject.") > 0 Тогда НовыйМассив.Добавить(" cfg:ExternalDataProcessorObject.VanessaAutomation" + ДопИмя + ""); Продолжить; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("xml"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(ИмяФайлаForm); - ПереместитьФайл(ВременныйФайл,ИмяФайлаForm); + ПереместитьФайл(ВременныйФайл, ИмяФайлаForm); -КонецПроцедуры +КонецПроцедуры -Процедура СкопироватьФайлыМакета(КаталогМакета,МакетыVA,ИмяМакета,ДопИмя) - Сообщить("МакетыVA="+МакетыVA); - Сообщить("КаталогМакета="+КаталогМакета); - Сообщить("ИмяМакета="+ИмяМакета); +Процедура СкопироватьФайлыМакета(КаталогМакета, МакетыVA, ИмяМакета, ДопИмя) + Сообщить("МакетыVA=" + МакетыVA); + Сообщить("КаталогМакета=" + КаталогМакета); + Сообщить("ИмяМакета=" + ИмяМакета); МассивМасок = Новый Массив; МассивМасок.Добавить("*"); @@ -593,62 +598,62 @@ КаталогиОткуда.Добавить(КаталогМакета); СкопироватьФайлыВКаталог(ОбъединитьПути(МакетыVA, ИмяМакета), КаталогиОткуда, МассивМасок); - ИмяФайлаForm = ОбъединитьПути(МакетыVA, ИмяМакета, "Ext", "Form.xml"); + ИмяФайлаForm = ОбъединитьПути(МакетыVA, ИмяМакета, "Ext", "Form.xml"); Файл = Новый Файл(ИмяФайлаForm); - Если Не Файл.Существует() Тогда + Если НЕ Файл.Существует() Тогда //значит это обычная форма, а не управляемая Возврат; - КонецЕсли; + КонецЕсли; Текст = Новый ЧтениеТекста; - Текст.Открыть(ИмяФайлаForm,"UTF-8"); + Текст.Открыть(ИмяФайлаForm, "UTF-8"); Массив = Новый Массив; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; Массив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); НовыйМассив = Новый Массив; - Для Ккк = 0 По Массив.Количество()-1 Цикл + Для Ккк = 0 По Массив.Количество() - 1 Цикл Стр = Массив.Получить(Ккк); - Если Найти(Стр,"cfg:ExternalDataProcessorObject.") > 0 Тогда + Если Найти(Стр, "cfg:ExternalDataProcessorObject.") > 0 Тогда НовыйМассив.Добавить(" cfg:ExternalDataProcessorObject.VanessaAutomation" + ДопИмя + ""); Продолжить; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("xml"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(ИмяФайлаForm); - ПереместитьФайл(ВременныйФайл,ИмяФайлаForm); + ПереместитьФайл(ВременныйФайл, ИмяФайлаForm); -КонецПроцедуры +КонецПроцедуры -Процедура ВставитьФормуВVA(ФайлXMLФормы,Префикс,МассивИменФорм,ВременныйКаталогVA,НомерФормы,ДопИмя) - МассивСтрок = СтрРазделить(ФайлXMLФормы.ИмяБезРасширения," "); +Процедура ВставитьФормуВVA(ФайлXMLФормы, Префикс, МассивИменФорм, ВременныйКаталогVA, НомерФормы, ДопИмя) + МассивСтрок = СтрРазделить(ФайлXMLФормы.ИмяБезРасширения, " "); Если МассивСтрок.Количество() = 1 Тогда ИмяФормы = МассивСтрок[0]; - Иначе + Иначе ИмяФормы = ""; Для Каждого Стр Из МассивСтрок Цикл - ИмяФормы = ИмяФормы + Врег(Лев(Стр,1)) + Сред(Стр,2); - КонецЦикла; - КонецЕсли; + ИмяФормы = ИмяФормы + Врег(Лев(Стр, 1)) + Сред(Стр, 2); + КонецЦикла; + КонецЕсли; ИмяФормы = Префикс + "_" + ИмяФормы; @@ -660,7 +665,7 @@ Если НЕ Файл.Существует() Тогда ПутьКФорме = ОбъединитьПути(ФайлXMLФормы.Путь, ФайлXMLФормы.ИмяБезРасширения, "Forms", "Форма"); РеальноеИсходноеИмяФормы = "Форма"; - КонецЕсли; + КонецЕсли; СкопироватьФайлыФормы(ПутьКФорме, ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation", "Forms"), ИмяФормы, ДопИмя); @@ -678,53 +683,53 @@ Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; Массив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); НовыйМассив = Новый Массив; - Для Ккк = 0 По Массив.Количество()-1 Цикл + Для Ккк = 0 По Массив.Количество() - 1 Цикл Стр = Массив.Получить(Ккк); - Если Найти(Стр,"") > 0 Тогда + Если Найти(Стр, "") > 0 Тогда НовыйМассив.Добавить("
" + ИмяФормы + "
"); - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("xml"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(XML_VA); - ПереместитьФайл(ВременныйФайл,XML_VA); + ПереместитьФайл(ВременныйФайл, XML_VA); -КонецПроцедуры +КонецПроцедуры -Процедура ВставитьМакетыВVA(ФайлXMLМакета,Префикс,ВременныйКаталогVA,ДопИмя) - МассивСтрок = СтрРазделить(ФайлXMLМакета.ИмяБезРасширения," "); +Процедура ВставитьМакетыВVA(ФайлXMLМакета, Префикс, ВременныйКаталогVA, ДопИмя) + МассивСтрок = СтрРазделить(ФайлXMLМакета.ИмяБезРасширения, " "); Если МассивСтрок.Количество() = 1 Тогда ИмяМакета = МассивСтрок[0]; - Иначе + Иначе ИмяМакета = ""; Для Каждого Стр Из МассивСтрок Цикл - ИмяМакета = ИмяМакета + Врег(Лев(Стр,1)) + Сред(Стр,2); - КонецЦикла; - КонецЕсли; + ИмяМакета = ИмяМакета + Врег(Лев(Стр, 1)) + Сред(Стр, 2); + КонецЦикла; + КонецЕсли; - ФайлTemplates = Новый Файл(ФайлXMLМакета.Путь); - ФайлИмяОбработки = Новый Файл(ФайлTemplates.Путь); + ФайлTemplates = Новый Файл(ФайлXMLМакета.Путь); + ФайлИмяОбработки = Новый Файл(ФайлTemplates.Путь); Если ЗначениеЗаполнено(Префикс) Тогда ИмяМакета = Префикс + "_" + ФайлИмяОбработки.Имя + "_" + ИмяМакета; - Иначе + Иначе ИмяМакета = ФайлИмяОбработки.Имя + "_" + ИмяМакета; - КонецЕсли; + КонецЕсли; СкопироватьФайлыМакета(ФайлXMLМакета.Путь + ФайлXMLМакета.ИмяБезРасширения, ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation", "Templates"), ИмяМакета, ДопИмя); @@ -743,204 +748,204 @@ Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; Массив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); НовыйМассив = Новый Массив; - Для Ккк = 0 По Массив.Количество()-1 Цикл + Для Ккк = 0 По Массив.Количество() - 1 Цикл Стр = Массив.Получить(Ккк); - Если Найти(Стр,"") > 0 Тогда + Если Найти(Стр, "") > 0 Тогда НовыйМассив.Добавить(" "); - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("xml"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(XML_VA); - ПереместитьФайл(ВременныйФайл,XML_VA); -КонецПроцедуры + ПереместитьФайл(ВременныйФайл, XML_VA); +КонецПроцедуры -Процедура ЗаменитьВФайлеФормыИмяФормы(НовыйФайлФормы,ИмяФормы,НомерФормы) +Процедура ЗаменитьВФайлеФормыИмяФормы(НовыйФайлФормы, ИмяФормы, НомерФормы) Текст = Новый ЧтениеТекста; - Текст.Открыть(НовыйФайлФормы,"UTF-8"); + Текст.Открыть(НовыйФайлФормы, "UTF-8"); Массив = Новый Массив; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; Массив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); СтрокаНомерФормы = Строка(НомерФормы); Пока СтрДлина(СтрокаНомерФормы) < 4 Цикл СтрокаНомерФормы = "0" + СтрокаНомерФормы; - КонецЦикла; + КонецЦикла; НовыйМассив = Новый Массив; - Для Ккк = 0 По Массив.Количество()-1 Цикл + Для Ккк = 0 По Массив.Количество() - 1 Цикл Стр = Массив.Получить(Ккк); - Если Найти(Стр,"") > 0 Тогда + Если Найти(Стр, "") > 0 Тогда НовыйМассив.Добавить(" " + ИмяФормы + ""); Продолжить; - ИначеЕсли Найти(Стр,"
0 Тогда + ИначеЕсли Найти(Стр, " 0 Тогда НовыйМассив.Добавить(" "); Продолжить; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("xml"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(НовыйФайлФормы); - ПереместитьФайл(ВременныйФайл,НовыйФайлФормы); -КонецПроцедуры + ПереместитьФайл(ВременныйФайл, НовыйФайлФормы); +КонецПроцедуры -Процедура ЗаменитьВФайлеМакетаИмяМакета(НовыйФайлМакета,ИмяМакета) +Процедура ЗаменитьВФайлеМакетаИмяМакета(НовыйФайлМакета, ИмяМакета) Текст = Новый ЧтениеТекста; - Текст.Открыть(НовыйФайлМакета,"UTF-8"); + Текст.Открыть(НовыйФайлМакета, "UTF-8"); Массив = Новый Массив; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; Массив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); НовыйМассив = Новый Массив; - Для Ккк = 0 По Массив.Количество()-1 Цикл + Для Ккк = 0 По Массив.Количество() - 1 Цикл Стр = Массив.Получить(Ккк); - Если Найти(Стр,"") > 0 Тогда + Если Найти(Стр, "") > 0 Тогда НовыйМассив.Добавить(" " + ИмяМакета + ""); Продолжить; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("xml"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(НовыйФайлМакета); - ПереместитьФайл(ВременныйФайл,НовыйФайлМакета); -КонецПроцедуры + ПереместитьФайл(ВременныйФайл, НовыйФайлМакета); +КонецПроцедуры Процедура ВставитьКодВОсновнуюФормуVA(ВременныйКаталогVA, МассивИменФорм) ПутьКФайлуКодаОсновнойФормы = ПутьКМодулюФормы(ВременныйКаталогVA, "УправляемаяФорма"); Текст = Новый ЧтениеТекста; - Текст.Открыть(ПутьКФайлуКодаОсновнойФормы,"UTF-8"); + Текст.Открыть(ПутьКФайлуКодаОсновнойФормы, "UTF-8"); Массив = Новый Массив; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; Массив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); НовыйМассив = Новый Массив; - Для Ккк = 0 По Массив.Количество()-1 Цикл + Для Ккк = 0 По Массив.Количество() - 1 Цикл Стр = Массив.Получить(Ккк); - Стр = СтрЗаменить(Стр,"Объект.ВерсияПоставки = ""standart"";","Объект.ВерсияПоставки = ""single"";"); + Стр = СтрЗаменить(Стр, "Объект.ВерсияПоставки = ""standart"";", "Объект.ВерсияПоставки = ""single"";"); НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("xml"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(ПутьКФайлуКодаОсновнойФормы); - ПереместитьФайл(ВременныйФайл,ПутьКФайлуКодаОсновнойФормы); -КонецПроцедуры + ПереместитьФайл(ВременныйФайл, ПутьКФайлуКодаОсновнойФормы); +КонецПроцедуры Процедура ВставитьКодСоставаБиблиотекВVA(ВременныйКаталогVA, МассивИменФорм) ПутьКФайлуКодаОсновнойФормы = МодульОбъекта(ВременныйКаталогVA, "VanessaAutomation"); Текст = Новый ЧтениеТекста; - Текст.Открыть(ПутьКФайлуКодаОсновнойФормы,"UTF-8"); + Текст.Открыть(ПутьКФайлуКодаОсновнойФормы, "UTF-8"); Массив = Новый Массив; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; Массив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); НовыйМассив = Новый Массив; - Для Ккк = 0 По Массив.Количество()-1 Цикл + Для Ккк = 0 По Массив.Количество() - 1 Цикл Стр = Массив.Получить(Ккк); НовыйМассив.Добавить(Стр); - Если Найти(Стр,"Тут надо добавить имена форм, которые являются встроенными библиотеками") > 0 Тогда + Если Найти(Стр, "Тут надо добавить имена форм, которые являются встроенными библиотеками") > 0 Тогда Для Каждого ИмяФормы Из МассивИменФорм Цикл - Если Лев(ИмяФормы,5) <> "Тест_" Тогда + Если Лев(ИмяФормы, 5) <> "Тест_" Тогда Продолжить; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(" Спс.Добавить(""ВнешняяОбработка.VanessaAutomationsingle.Форма." + ИмяФормы + """);"); - КонецЦикла; - КонецЕсли; - КонецЦикла; + КонецЦикла; + КонецЕсли; + КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("xml"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(ПутьКФайлуКодаОсновнойФормы); - ПереместитьФайл(ВременныйФайл,ПутьКФайлуКодаОсновнойФормы); -КонецПроцедуры + ПереместитьФайл(ВременныйФайл, ПутьКФайлуКодаОсновнойФормы); +КонецПроцедуры -Процедура ВставитьФормыОбработокВVA(ПутьКVA,ВременныйКаталогVA,БиблиотекиДляВстраивания,ДопИмя) - МассивПутейБиблиотеки = СтрРазделить(БиблиотекиДляВстраивания,";"); +Процедура ВставитьФормыОбработокВVA(ПутьКVA, ВременныйКаталогVA, БиблиотекиДляВстраивания, ДопИмя) + МассивПутейБиблиотеки = СтрРазделить(БиблиотекиДляВстраивания, ";"); МассивИменФорм = Новый Массив; @@ -950,67 +955,67 @@ Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLВнешнейОбработки(Файл.ПолноеИмя) Тогда Продолжить; - КонецЕсли; + КонецЕсли; Сообщить("Найден файл обработки: " + Файл.ПолноеИмя); НомерФормы = НомерФормы + 1; ВставитьФормуВVA(Файл, "Плагин", МассивИменФорм, ВременныйКаталогVA, НомерФормы, ДопИмя); - КонецЦикла; + КонецЦикла; КаталогЛокализации = ОбъединитьПути(ПутьКVA, "locales"); Файлы = НайтиФайлы(КаталогЛокализации, "*.xml", Истина); Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLВнешнейОбработки(Файл.ПолноеИмя) Тогда Продолжить; - КонецЕсли; + КонецЕсли; Сообщить("Найден файл обработки: " + Файл.ПолноеИмя); НомерФормы = НомерФормы + 1; - ВставитьФормуВVA(Файл,"Локализация",МассивИменФорм,ВременныйКаталогVA,НомерФормы,ДопИмя); - КонецЦикла; + ВставитьФормуВVA(Файл, "Локализация", МассивИменФорм, ВременныйКаталогVA, НомерФормы, ДопИмя); + КонецЦикла; КаталогЛокализации = ОбъединитьПути(ПутьКVA, "lib", "Video"); Файлы = НайтиФайлы(КаталогЛокализации, "*.xml", Истина); Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLВнешнейОбработки(Файл.ПолноеИмя) Тогда Продолжить; - КонецЕсли; + КонецЕсли; Сообщить("Найден файл обработки: " + Файл.ПолноеИмя); НомерФормы = НомерФормы + 1; - ВставитьФормуВVA(Файл,"Video",МассивИменФорм,ВременныйКаталогVA,НомерФормы,ДопИмя); - КонецЦикла; + ВставитьФормуВVA(Файл, "Video", МассивИменФорм, ВременныйКаталогVA, НомерФормы, ДопИмя); + КонецЦикла; КаталогLib = ОбъединитьПути(ПутьКVA, "lib", "CompareFiles"); Файлы = НайтиФайлы(КаталогLib, "*.xml", Истина); Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLВнешнейОбработки(Файл.ПолноеИмя) Тогда Продолжить; - КонецЕсли; + КонецЕсли; Сообщить("Найден файл обработки: " + Файл.ПолноеИмя); НомерФормы = НомерФормы + 1; - ВставитьФормуВVA(Файл,"Служебные",МассивИменФорм,ВременныйКаталогVA,НомерФормы,ДопИмя); - КонецЦикла; + ВставитьФормуВVA(Файл, "Служебные", МассивИменФорм, ВременныйКаталогVA, НомерФормы, ДопИмя); + КонецЦикла; Для Каждого КаталогБиблиотеки Из МассивПутейБиблиотеки Цикл - Файлы = НайтиФайлы(КаталогБиблиотеки,"*.xml",Истина); + Файлы = НайтиФайлы(КаталогБиблиотеки, "*.xml", Истина); Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLВнешнейОбработки(Файл.ПолноеИмя) Тогда Продолжить; - КонецЕсли; + КонецЕсли; Сообщить("Найден файл обработки: " + Файл.ПолноеИмя); НомерФормы = НомерФормы + 1; - ВставитьФормуВVA(Файл,"Тест",МассивИменФорм,ВременныйКаталогVA,НомерФормы,ДопИмя); - КонецЦикла; + ВставитьФормуВVA(Файл, "Тест", МассивИменФорм, ВременныйКаталогVA, НомерФормы, ДопИмя); + КонецЦикла; - ВставитьЭкспортныеФичиВМакеты(ВременныйКаталогVA,КаталогБиблиотеки); + ВставитьЭкспортныеФичиВМакеты(ВременныйКаталогVA, КаталогБиблиотеки); КонецЦикла; //макеты локализации @@ -1019,12 +1024,12 @@ Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLМакета(Файл.ПолноеИмя) Тогда Продолжить; - КонецЕсли; + КонецЕсли; Сообщить("Нашел файл макета: " + Файл.ПолноеИмя); - ВставитьМакетыВVA(Файл,"Локализация",ВременныйКаталогVA,ДопИмя); - КонецЦикла; + ВставитьМакетыВVA(Файл, "Локализация", ВременныйКаталогVA, ДопИмя); + КонецЦикла; //макеты обработок КаталогЛокализации = ОбъединитьПути(ПутьКVA, "features", "Libraries"); @@ -1032,22 +1037,22 @@ Для Каждого Файл Из Файлы Цикл Если НЕ ЭтоXMLМакета(Файл.ПолноеИмя) Тогда Продолжить; - КонецЕсли; + КонецЕсли; Сообщить("Нашел файл макета: " + Файл.ПолноеИмя); - ВставитьМакетыВVA(Файл,"МакетОбработки",ВременныйКаталогVA,ДопИмя); - КонецЦикла; + ВставитьМакетыВVA(Файл, "МакетОбработки", ВременныйКаталогVA, ДопИмя); + КонецЦикла; - ВставитьКодСоставаБиблиотекВVA(ВременныйКаталогVA,МассивИменФорм); - ВставитьКодВОсновнуюФормуVA(ВременныйКаталогVA,МассивИменФорм); + ВставитьКодСоставаБиблиотекВVA(ВременныйКаталогVA, МассивИменФорм); + ВставитьКодВОсновнуюФормуVA(ВременныйКаталогVA, МассивИменФорм); - ВставитьФичаРидер(ПутьКVA,ВременныйКаталогVA); + ВставитьФичаРидер(ПутьКVA, ВременныйКаталогVA); Заполнитель = "<Шаблон>"; ПутьКПлагинам = ОбъединитьПути(ПутьКVA, "plugins"); ШаблонПути = МодульОбъекта(ПутьКПлагинам, Заполнитель); - + ВставитьМодульПлагина(ПутьКVA, ВременныйКаталогVA, "ЗапросыИзБД", СтрЗаменить(ШаблонПути, Заполнитель, "ЗапросыИзБД")); ВставитьМодульПлагина(ПутьКVA, ВременныйКаталогVA, "СериализаторMXL", СтрЗаменить(ШаблонПути, Заполнитель, "СериализаторMXL")); @@ -1056,81 +1061,81 @@ ВставитьМодульПлагина(ПутьКVA, ВременныйКаталогVA, "УтвержденияBDD", СтрЗаменить(ШаблонПути, Заполнитель, "УтвержденияBDD")); ВставитьРеквизитыОбработкиВVA(ВременныйКаталогVA, ОбъединитьПути(ПутьКПлагинам, "УтвержденияBDD.xml"), "УтвержденияBDD", ДопИмя); - ЗаменитьИмяОсновнойОбработки(ВременныйКаталогVA,ДопИмя); + ЗаменитьИмяОсновнойОбработки(ВременныйКаталогVA, ДопИмя); - ЗаменитьВФормахИмяОбработки(ВременныйКаталогVA,ДопИмя); -КонецПроцедуры + ЗаменитьВФормахИмяОбработки(ВременныйКаталогVA, ДопИмя); +КонецПроцедуры -Процедура ЗаменитьВФормахИмяОбработки(ВременныйКаталогVA,ДопИмя) - Файлы = НайтиФайлы(ВременныйКаталогVA,"Form.xml",Истина); +Процедура ЗаменитьВФормахИмяОбработки(ВременныйКаталогVA, ДопИмя) + Файлы = НайтиФайлы(ВременныйКаталогVA, "Form.xml", Истина); Для Каждого Файл Из Файлы Цикл НовыйМассив = Новый Массив; XMlФормы = Файл.ПолноеИмя; Текст = Новый ЧтениеТекста; - Текст.Открыть(XMlФормы,"UTF-8"); + Текст.Открыть(XMlФормы, "UTF-8"); Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); ВременныйФайл = ПолучитьИмяВременногоФайла("xml"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - Если Найти(Стр,"cfg:ExternalDataProcessorObject.VanessaAutomation") > 0 Тогда - Стр = СтрЗаменить(Стр,"cfg:ExternalDataProcessorObject.VanessaAutomation","cfg:ExternalDataProcessorObject.VanessaAutomation" + ДопИмя + ""); - КонецЕсли; + Если Найти(Стр, "cfg:ExternalDataProcessorObject.VanessaAutomation") > 0 Тогда + Стр = СтрЗаменить(Стр, "cfg:ExternalDataProcessorObject.VanessaAutomation", "cfg:ExternalDataProcessorObject.VanessaAutomation" + ДопИмя + ""); + КонецЕсли; - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(XMlФормы); - ПереместитьФайл(ВременныйФайл,XMlФормы); - КонецЦикла; -КонецПроцедуры + ПереместитьФайл(ВременныйФайл, XMlФормы); + КонецЦикла; +КонецПроцедуры -Процедура ЗаменитьИмяОсновнойОбработки(ВременныйКаталогVA,ДопИмя) +Процедура ЗаменитьИмяОсновнойОбработки(ВременныйКаталогVA, ДопИмя) //Замена в xml НовыйМассив = Новый Массив; XMlОсновнойОбработки = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation.xml"); Текст = Новый ЧтениеТекста; - Текст.Открыть(XMlОсновнойОбработки,"UTF-8"); + Текст.Открыть(XMlОсновнойОбработки, "UTF-8"); Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); ВременныйФайл = ПолучитьИмяВременногоФайла("xml"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - Если Найти(Стр,"VanessaAutomation") > 0 Тогда - Стр = СтрЗаменить(Стр,"VanessaAutomation","VanessaAutomation" + ДопИмя); - ИначеЕсли Найти(Стр,"Vanessa Automation") > 0 Тогда - Стр = СтрЗаменить(Стр,"Vanessa Automation","Vanessa Automation " + ДопИмя); - ИначеЕсли Найти(Стр,".VanessaAutomation") > 0 Тогда - Стр = СтрЗаменить(Стр,".VanessaAutomation",".VanessaAutomation" + ДопИмя); - КонецЕсли; - - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + Если Найти(Стр, "VanessaAutomation") > 0 Тогда + Стр = СтрЗаменить(Стр, "VanessaAutomation", "VanessaAutomation" + ДопИмя); + ИначеЕсли Найти(Стр, "Vanessa Automation") > 0 Тогда + Стр = СтрЗаменить(Стр, "Vanessa Automation", "Vanessa Automation " + ДопИмя); + ИначеЕсли Найти(Стр, ".VanessaAutomation") > 0 Тогда + Стр = СтрЗаменить(Стр, ".VanessaAutomation", ".VanessaAutomation" + ДопИмя); + КонецЕсли; + + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(XMlОсновнойОбработки); - ПереместитьФайл(ВременныйФайл,XMlОсновнойОбработки); + ПереместитьФайл(ВременныйФайл, XMlОсновнойОбработки); @@ -1145,223 +1150,223 @@ ФайлМодуляФормы = ПутьКМодулюФормы(ВременныйКаталогVA, "УправляемаяФорма"); Текст = Новый ЧтениеТекста; - Текст.Открыть(ФайлМодуляФормы,"UTF-8"); + Текст.Открыть(ФайлМодуляФормы, "UTF-8"); Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); ВременныйФайл = ПолучитьИмяВременногоФайла("xml"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - Если Найти(Стр,"ВнешняяОбработка.VanessaAutomation") > 0 Тогда - Стр = СтрЗаменить(Стр,"ВнешняяОбработка.VanessaAutomation.", "ВнешняяОбработка.VanessaAutomation" + ДопИмя + "."); - КонецЕсли; + Если Найти(Стр, "ВнешняяОбработка.VanessaAutomation") > 0 Тогда + Стр = СтрЗаменить(Стр, "ВнешняяОбработка.VanessaAutomation.", "ВнешняяОбработка.VanessaAutomation" + ДопИмя + "."); + КонецЕсли; - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(ФайлМодуляФормы); - ПереместитьФайл(ВременныйФайл,ФайлМодуляФормы); -КонецПроцедуры + ПереместитьФайл(ВременныйФайл, ФайлМодуляФормы); +КонецПроцедуры -Процедура ВставитьЭкспортныеФичиВМакеты(ВременныйКаталогVA,КаталогБиблиотеки) +Процедура ВставитьЭкспортныеФичиВМакеты(ВременныйКаталогVA, КаталогБиблиотеки) НовыйМассив = Новый Массив; - + ТекстовыйМакетДляЗаписи = ФайлДанныеМакета(ВременныйКаталогVA, "VanessaAutomation", "ЭкспортныеСценарии"); Текст = Новый ЧтениеТекста; - Текст.Открыть(ТекстовыйМакетДляЗаписи,"UTF-8"); + Текст.Открыть(ТекстовыйМакетДляЗаписи, "UTF-8"); Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); КаталогДляПоиска = КаталогБиблиотеки; - Файлы = НайтиФайлы(КаталогДляПоиска,"*.feature",Истина); + Файлы = НайтиФайлы(КаталогДляПоиска, "*.feature", Истина); Для Каждого Файл Из Файлы Цикл //надо найти макеты @ExternalUse МассивФичи = Новый Массив; Текст = Новый ЧтениеТекста; - Текст.Открыть(Файл.ПолноеИмя,"UTF-8"); + Текст.Открыть(Файл.ПолноеИмя, "UTF-8"); НашлиСтрокуТега = Ложь; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; - Если Найти(Стр,"@ExternalUse") > 0 Тогда + Если Найти(Стр, "@ExternalUse") > 0 Тогда НашлиСтрокуТега = Истина; - КонецЕсли; + КонецЕсли; МассивФичи.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); - Если Не НашлиСтрокуТега Тогда + Если НЕ НашлиСтрокуТега Тогда Продолжить; - КонецЕсли; + КонецЕсли; Сообщить("Нашел фичу ExternalUse: " + Файл.ПолноеИмя); НашлиОбъявлениеСценария = Ложь; - Для Ккк = 0 По МассивФичи.Количество()-1 Цикл + Для Ккк = 0 По МассивФичи.Количество() - 1 Цикл Стр = МассивФичи.Получить(Ккк); - Если Найти(Стр,"@ТипШага:") > 0 ИЛИ Найти(НРег(Стр),НРег("Сценарий:")) > 0 Тогда + Если Найти(Стр, "@ТипШага:") > 0 ИЛИ Найти(НРег(Стр), НРег("Сценарий:")) > 0 Тогда НашлиОбъявлениеСценария = Истина; НовыйМассив.Добавить(Стр); Продолжить; - КонецЕсли; + КонецЕсли; - Если Не НашлиОбъявлениеСценария Тогда + Если НЕ НашлиОбъявлениеСценария Тогда Продолжить; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; НовыйМассив.Добавить(""); НовыйМассив.Добавить(""); - КонецЦикла; + КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("txt"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Ложь); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Ложь); Для Каждого Стр Из НовыйМассив Цикл - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(ТекстовыйМакетДляЗаписи); - ПереместитьФайл(ВременныйФайл,ТекстовыйМакетДляЗаписи); -КонецПроцедуры + ПереместитьФайл(ВременныйФайл, ТекстовыйМакетДляЗаписи); +КонецПроцедуры -Процедура ВставитьРеквизитыОбработкиВVA(ВременныйКаталогVA,ОсновнойXMLОбработки,ИмяОбработки,ДопИмя); +Процедура ВставитьРеквизитыОбработкиВVA(ВременныйКаталогVA, ОсновнойXMLОбработки, ИмяОбработки, ДопИмя); Текст = Новый ЧтениеТекста; - Текст.Открыть(ОсновнойXMLОбработки,"UTF-8"); + Текст.Открыть(ОсновнойXMLОбработки, "UTF-8"); МассивИсходнойОбработки = Новый Массив; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; МассивИсходнойОбработки.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); ПутьКXML_VA = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation.xml"); Текст = Новый ЧтениеТекста; - Текст.Открыть(ПутьКXML_VA,"UTF-8"); + Текст.Открыть(ПутьКXML_VA, "UTF-8"); МассивVA = Новый Массив; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; МассивVA.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); МассивСекцияАтрибутов = Новый Массив; НашлиСекциюChildObjects = Ложь; - Для Ккк = 0 По МассивИсходнойОбработки.Количество()-1 Цикл + Для Ккк = 0 По МассивИсходнойОбработки.Количество() - 1 Цикл Стр = МассивИсходнойОбработки.Получить(Ккк); - Если Найти(Стр,"") > 0 Тогда + Если Найти(Стр, "") > 0 Тогда НашлиСекциюChildObjects = Истина; Продолжить; - ИначеЕсли Найти(Стр,"") > 0 Тогда + ИначеЕсли Найти(Стр, "") > 0 Тогда Продолжить; - ИначеЕсли Найти(Стр,"") > 0 Тогда + ИначеЕсли Найти(Стр, "") > 0 Тогда Прервать; - ИначеЕсли Найти(Стр," 0 Тогда + ИначеЕсли Найти(Стр, " 0 Тогда Прервать; - КонецЕсли; + КонецЕсли; - Если Не НашлиСекциюChildObjects Тогда + Если НЕ НашлиСекциюChildObjects Тогда Продолжить; - КонецЕсли; + КонецЕсли; МассивСекцияАтрибутов.Добавить(Стр); - КонецЦикла; - + КонецЦикла; + МассивСекцияТаблиц = Новый Массив; НашлиСекциюТаблиц = Ложь; - Для Ккк = 0 По МассивИсходнойОбработки.Количество()-1 Цикл + Для Ккк = 0 По МассивИсходнойОбработки.Количество() - 1 Цикл Стр = МассивИсходнойОбработки.Получить(Ккк); - Если Найти(Стр," 0 Тогда + Если Найти(Стр, " 0 Тогда НашлиСекциюТаблиц = Истина; МассивСекцияТаблиц.Добавить(Стр); Продолжить; - ИначеЕсли Найти(Стр,"") > 0 Тогда + ИначеЕсли Найти(Стр, "") > 0 Тогда Прервать; - КонецЕсли; + КонецЕсли; - Если Не НашлиСекциюТаблиц Тогда + Если НЕ НашлиСекциюТаблиц Тогда Продолжить; - КонецЕсли; + КонецЕсли; - Стр = СтрЗаменить(Стр,"""DataProcessorTabularSection." + ИмяОбработки,"""DataProcessorTabularSection.VanessaAutomation" + ДопИмя); - Стр = СтрЗаменить(Стр,"""DataProcessorTabularSectionRow." + ИмяОбработки,"""DataProcessorTabularSectionRow.VanessaAutomation" + ДопИмя); + Стр = СтрЗаменить(Стр, """DataProcessorTabularSection." + ИмяОбработки, """DataProcessorTabularSection.VanessaAutomation" + ДопИмя); + Стр = СтрЗаменить(Стр, """DataProcessorTabularSectionRow." + ИмяОбработки, """DataProcessorTabularSectionRow.VanessaAutomation" + ДопИмя); МассивСекцияТаблиц.Добавить(Стр); - КонецЦикла; - + КонецЦикла; + БылаВставкаАтрибутов = Ложь; БылаВставкаТаблиц = Ложь; НовыйМассив = Новый Массив; - Для Ккк = 0 По МассивVA.Количество()-1 Цикл + Для Ккк = 0 По МассивVA.Количество() - 1 Цикл Стр = МассивVA.Получить(Ккк); НашлиСекциюАтрибута = Ложь; - Если Найти(Стр,"") > 0 и Не БылаВставкаАтрибутов Тогда + Если Найти(Стр, "") > 0 И НЕ БылаВставкаАтрибутов Тогда НовыйМассив.Добавить(Стр); БылаВставкаАтрибутов = Истина; //делаем вставку реквизитов - Для Ррр = 0 По МассивСекцияАтрибутов.Количество()-1 Цикл + Для Ррр = 0 По МассивСекцияАтрибутов.Количество() - 1 Цикл СтрокаСекции = МассивСекцияАтрибутов.Получить(Ррр); - Если Найти(СтрокаСекции," 0 Тогда + Если Найти(СтрокаСекции, " 0 Тогда НашлиСекциюАтрибута = Истина; НовыйМассив.Добавить(СтрокаСекции); //Сообщить(СтрокаСекции); Продолжить; - ИначеЕсли Найти(СтрокаСекции,"") > 0 Тогда + ИначеЕсли Найти(СтрокаСекции, "") > 0 Тогда НашлиСекциюАтрибута = Ложь; НовыйМассив.Добавить(СтрокаСекции); //Сообщить(СтрокаСекции); Продолжить; - КонецЕсли; + КонецЕсли; Если НЕ НашлиСекциюАтрибута Тогда Продолжить; - КонецЕсли; + КонецЕсли; //Сообщить(СтрокаСекции); @@ -1369,52 +1374,52 @@ КонецЦикла; Продолжить; - ИначеЕсли Найти(Стр,"") > 0 и Не БылаВставкаТаблиц Тогда + ИначеЕсли Найти(Стр, "") > 0 И НЕ БылаВставкаТаблиц Тогда БылаВставкаТаблиц = Истина; - Для Ррр = 0 По МассивСекцияТаблиц.Количество()-1 Цикл + Для Ррр = 0 По МассивСекцияТаблиц.Количество() - 1 Цикл СтрокаСекции = МассивСекцияТаблиц.Получить(Ррр); //Сообщить(СтрокаСекции); НовыйМассив.Добавить(СтрокаСекции); КонецЦикла; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("bsl"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(ПутьКXML_VA); - ПереместитьФайл(ВременныйФайл,ПутьКXML_VA); + ПереместитьФайл(ВременныйФайл, ПутьКXML_VA); -КонецПроцедуры +КонецПроцедуры -Процедура ВставитьМодульПлагина(ПутьКVA,ВременныйКаталогVA,ИмяОбработкиДляВставки,МодульОбработкиVA) +Процедура ВставитьМодульПлагина(ПутьКVA, ВременныйКаталогVA, ИмяОбработкиДляВставки, МодульОбработкиVA) Текст = Новый ЧтениеТекста; - Текст.Открыть(МодульОбработкиVA,"UTF-8"); + Текст.Открыть(МодульОбработкиVA, "UTF-8"); МассивИсходнойОбработки = Новый Массив; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; МассивИсходнойОбработки.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); МодульДляВставки = МодульОбъекта(ВременныйКаталогVA, "VanessaAutomation"); Сообщить("МодульДляВставки=" + МодульДляВставки); Текст = Новый ЧтениеТекста; - Текст.Открыть(МодульДляВставки,"UTF-8"); + Текст.Открыть(МодульДляВставки, "UTF-8"); НадоПродолжить = Ложь; Массив = Новый Массив; @@ -1422,256 +1427,257 @@ Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; - Если Найти(Стр,"#Область ОбщиеПроцедурыИФункции") > 0 Тогда + Если Найти(Стр, "#Область ОбщиеПроцедурыИФункции") > 0 Тогда НадоПродолжить = Истина; - ИначеЕсли Найти(Стр,"#Область ОбщееОписаниеПеременных") > 0 Тогда + ИначеЕсли Найти(Стр, "#Область ОбщееОписаниеПеременных") > 0 Тогда НадоПродолжить = Истина; - КонецЕсли; + КонецЕсли; Если НадоПродолжить Тогда - Если Найти(Стр,"#КонецОбласти") > 0 Тогда + Если Найти(Стр, "#КонецОбласти") > 0 Тогда НадоПродолжить = Ложь; - КонецЕсли; + КонецЕсли; Продолжить; - КонецЕсли; + КонецЕсли; Массив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); НовыйМассив = Новый Массив; - Для Ккк = 0 По Массив.Количество()-1 Цикл + Для Ккк = 0 По Массив.Количество() - 1 Цикл Стр = Массив.Получить(Ккк); - Если Найти(Стр,"#КонецОбласти ОписаниеПеременных") > 0 Тогда + Если Найти(Стр, "#КонецОбласти ОписаниеПеременных") > 0 Тогда //добавляем часть с переменными из модуля НовыйМассив.Добавить("#Область Переменные" + ИмяОбработкиДляВставки); Для Каждого СтрВставка Из МассивИсходнойОбработки Цикл - Если Найти(СтрВставка,"#КонецОбласти ОписаниеПеременных") > 0 Тогда + Если Найти(СтрВставка, "#КонецОбласти ОписаниеПеременных") > 0 Тогда //Для Каждого Элем Из МассивПеременных Цикл // НовыйМассив.Добавить(Элем); - //КонецЦикла; + //КонецЦикла; Прервать; - ИначеЕсли Найти(СтрВставка,"#Область ОписаниеПеременных") > 0 Тогда + ИначеЕсли Найти(СтрВставка, "#Область ОписаниеПеременных") > 0 Тогда Продолжить; - ИначеЕсли Найти(СтрВставка,"Перем ТекстСообщенийПользователю;") > 0 Тогда + ИначеЕсли Найти(СтрВставка, "Перем ТекстСообщенийПользователю;") > 0 Тогда Продолжить; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(СтрВставка); - КонецЦикла; - КонецЕсли; + КонецЦикла; + КонецЕсли; - Если Найти(Стр,"#КонецОбласти ПроцедурыИФункции") > 0 Тогда + Если Найти(Стр, "#КонецОбласти ПроцедурыИФункции") > 0 Тогда //добавляем часть с процедурами и функциями НадоПродолжить = Истина; НовыйМассив.Добавить("#Область ПроцедурыИФункции" + ИмяОбработкиДляВставки); Для Каждого СтрВставка Из МассивИсходнойОбработки Цикл - Если Найти(СтрВставка,"#КонецОбласти ПроцедурыИФункции") > 0 Тогда + Если Найти(СтрВставка, "#КонецОбласти ПроцедурыИФункции") > 0 Тогда Прервать; - ИначеЕсли Найти(СтрВставка,"#Область ПроцедурыИФункции") > 0 Тогда + ИначеЕсли Найти(СтрВставка, "#Область ПроцедурыИФункции") > 0 Тогда НадоПродолжить = Ложь; Продолжить; - КонецЕсли; + КонецЕсли; Если НадоПродолжить Тогда Продолжить; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(СтрВставка); - КонецЦикла; - КонецЕсли; + КонецЦикла; + КонецЕсли; - Если Найти(Стр,"#КонецОбласти ИнициализацияПеременных") > 0 Тогда + Если Найти(Стр, "#КонецОбласти ИнициализацияПеременных") > 0 Тогда //добавляем часть с процедурами и функциями НадоПродолжить = Истина; НовыйМассив.Добавить("#Область ИнициализацияПеременных" + ИмяОбработкиДляВставки); Для Каждого СтрВставка Из МассивИсходнойОбработки Цикл - Если Найти(СтрВставка,"#КонецОбласти ИнициализацияПеременных") > 0 Тогда + Если Найти(СтрВставка, "#КонецОбласти ИнициализацияПеременных") > 0 Тогда //Для Каждого Элем Из МассивИнициализация Цикл // НовыйМассив.Добавить(Элем); - //КонецЦикла; + //КонецЦикла; Прервать; - ИначеЕсли Найти(СтрВставка,"#Область ИнициализацияПеременных") > 0 Тогда + ИначеЕсли Найти(СтрВставка, "#Область ИнициализацияПеременных") > 0 Тогда НадоПродолжить = Ложь; Продолжить; - КонецЕсли; + КонецЕсли; Если НадоПродолжить Тогда Продолжить; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(СтрВставка); - КонецЦикла; - КонецЕсли; + КонецЦикла; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("bsl"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(МодульДляВставки); - ПереместитьФайл(ВременныйФайл,МодульДляВставки); -КонецПроцедуры + ПереместитьФайл(ВременныйФайл, МодульДляВставки); +КонецПроцедуры Процедура ВставитьФичаРидер(ПутьКVA, ВременныйКаталогVA) ИмяОбработкиДляВставки = "FeatureReader"; - + МодульОбработкиVA = МодульОбъекта(ОбъединитьПути(ПутьКVA, "lib", "FeatureReader"), "FeatureReader"); Текст = Новый ЧтениеТекста; - Текст.Открыть(МодульОбработкиVA,"UTF-8"); + Текст.Открыть(МодульОбработкиVA, "UTF-8"); МассивИсходнойОбработки = Новый Массив; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; МассивИсходнойОбработки.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); МодульДляВставки = МодульОбъекта(ВременныйКаталогVA, "VanessaAutomation"); Сообщить("МодульДляВставки=" + МодульДляВставки); Текст = Новый ЧтениеТекста; - Текст.Открыть(МодульДляВставки,"UTF-8"); + Текст.Открыть(МодульДляВставки, "UTF-8"); Массив = Новый Массив; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; Массив.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); НовыйМассив = Новый Массив; - Для Ккк = 0 По Массив.Количество()-1 Цикл + Для Ккк = 0 По Массив.Количество() - 1 Цикл Стр = Массив.Получить(Ккк); - Если Найти(Стр,"#КонецОбласти ОписаниеПеременных") > 0 Тогда + Если Найти(Стр, "#КонецОбласти ОписаниеПеременных") > 0 Тогда //добавляем часть с переменными из модуля НовыйМассив.Добавить("#Область Переменные" + ИмяОбработкиДляВставки); Для Каждого СтрВставка Из МассивИсходнойОбработки Цикл - Если Найти(СтрВставка,"#КонецОбласти ОписаниеПеременных") > 0 Тогда + Если Найти(СтрВставка, "#КонецОбласти ОписаниеПеременных") > 0 Тогда Прервать; - ИначеЕсли Найти(СтрВставка,"#Область ОписаниеПеременных") > 0 Тогда + ИначеЕсли Найти(СтрВставка, "#Область ОписаниеПеременных") > 0 Тогда Продолжить; - ИначеЕсли Найти(СтрВставка,"Перем ТекстСообщенийПользователю;") > 0 Тогда + ИначеЕсли Найти(СтрВставка, "Перем ТекстСообщенийПользователю;") > 0 Тогда Продолжить; ИначеЕсли СтрВставка = "#КонецОбласти" Тогда НовыйМассив.Добавить("Перем ШагСтрокДляМодуля;"); - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(СтрВставка); - КонецЦикла; - КонецЕсли; + КонецЦикла; + КонецЕсли; - Если Найти(Стр,"#КонецОбласти ПроцедурыИФункции") > 0 Тогда + Если Найти(Стр, "#КонецОбласти ПроцедурыИФункции") > 0 Тогда //добавляем часть с процедурами и функциями НадоПродолжить = Истина; НовыйМассив.Добавить("#Область ПроцедурыИФункции" + ИмяОбработкиДляВставки); Для Каждого СтрВставка Из МассивИсходнойОбработки Цикл - Если Найти(СтрВставка,"#КонецОбласти ПроцедурыИФункции") > 0 Тогда + Если Найти(СтрВставка, "#КонецОбласти ПроцедурыИФункции") > 0 Тогда Прервать; - ИначеЕсли Найти(СтрВставка,"#Область ПроцедурыИФункции") > 0 Тогда + ИначеЕсли Найти(СтрВставка, "#Область ПроцедурыИФункции") > 0 Тогда НадоПродолжить = Ложь; Продолжить; - КонецЕсли; + КонецЕсли; Если НадоПродолжить Тогда Продолжить; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(СтрВставка); - КонецЦикла; - КонецЕсли; + КонецЦикла; + КонецЕсли; - Если Найти(Стр,"#КонецОбласти ИнициализацияПеременных") > 0 Тогда + Если Найти(Стр, "#КонецОбласти ИнициализацияПеременных") > 0 Тогда //добавляем часть с процедурами и функциями НадоПродолжить = Истина; НовыйМассив.Добавить("#Область ИнициализацияПеременных" + ИмяОбработкиДляВставки); Для Каждого СтрВставка Из МассивИсходнойОбработки Цикл - Если Найти(СтрВставка,"#КонецОбласти ИнициализацияПеременных") > 0 Тогда + Если Найти(СтрВставка, "#КонецОбласти ИнициализацияПеременных") > 0 Тогда Прервать; - ИначеЕсли Найти(СтрВставка,"#Область ИнициализацияПеременных") > 0 Тогда + ИначеЕсли Найти(СтрВставка, "#Область ИнициализацияПеременных") > 0 Тогда НадоПродолжить = Ложь; Продолжить; - КонецЕсли; + КонецЕсли; Если НадоПродолжить Тогда Продолжить; - КонецЕсли; + КонецЕсли; НовыйМассив.Добавить(СтрВставка); - КонецЦикла; - КонецЕсли; + КонецЦикла; + КонецЕсли; НовыйМассив.Добавить(Стр); - КонецЦикла; + КонецЦикла; ВременныйФайл = ПолучитьИмяВременногоФайла("bsl"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Для Каждого Стр Из НовыйМассив Цикл - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(МодульДляВставки); - ПереместитьФайл(ВременныйФайл,МодульДляВставки); -КонецПроцедуры + ПереместитьФайл(ВременныйФайл, МодульДляВставки); +КонецПроцедуры Процедура ОбновитьРидми(ИмяФайла) ВременныйФайл = ПолучитьИмяВременногоФайла("md"); - ЗТ = Новый ЗаписьТекста(ВременныйФайл,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйФайл, "UTF-8", , Истина); Стр = "# Vanessa-Automation-Single - | - |Vanessa-Automation-Single - это специальная сборка проекта [vanessa-automation](https://github.com/Pr-Mex/vanessa-automation). - |Это такая же Ванесса, с той же функциональностью, но в виде одной EPF. Обычные формы также поддерживаются. - |Vanessa-Automation-Single удобно использовать в составе расширений, встраивать в свою конфигурацию и т.д. - |Также вариант поставки ""Single"" удобен для тех, кто использует Ванессу только для написания сценариев и не планирует её дорабатывать. - | - |Разработка проекта ведётся в основном репозитории [vanessa-automation](https://github.com/Pr-Mex/vanessa-automation) - | - |[Телеграм канал](https://t.me/testspro1c), где можно обсудить Ванессу и всё, что связано с тестированием в 1С. - |[![Открытый чат проекта https://gitter.im/vanessa-automation](https://badges.gitter.im/vanessa-automation.svg)](https://gitter.im/vanessa-automation?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - |[![Build Status](http://vanessa.bit-erp.ru/buildStatus/icon?job=VASingleFullCheck)](http://vanessa.bit-erp.ru/job/VASingleFullCheck/) - | - |"; - - ЗТ.ЗаписатьСтроку(Стр); + | + |Vanessa-Automation-Single - это специальная сборка проекта [vanessa-automation](https://github.com/Pr-Mex/vanessa-automation). + |Это такая же Ванесса, с той же функциональностью, но в виде одной EPF. Обычные формы также поддерживаются. + |Vanessa-Automation-Single удобно использовать в составе расширений, встраивать в свою конфигурацию и т.д. + |Также вариант поставки ""Single"" удобен для тех, кто использует Ванессу только для написания сценариев и не планирует её дорабатывать. + | + |Разработка проекта ведётся в основном репозитории [vanessa-automation](https://github.com/Pr-Mex/vanessa-automation) + | + |[Телеграм канал](https://t.me/testspro1c), где можно обсудить Ванессу и всё, что связано с тестированием в 1С. + |[![Открытый чат проекта https://gitter.im/vanessa-automation](https://badges.gitter.im/vanessa-automation.svg)](https://gitter.im/vanessa-automation?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + |[![Build Status](http://vanessa.bit-erp.ru/buildStatus/icon?job=VASingleFullCheck)](http://vanessa.bit-erp.ru/job/VASingleFullCheck/) + | + |"; + + ЗТ.ЗаписатьСтроку(Стр); ЗТ.Закрыть(); УдалитьФайлы(ИмяФайла); - ПереместитьФайл(ВременныйФайл,ИмяФайла); -КонецПроцедуры + ПереместитьФайл(ВременныйФайл, ИмяФайла); +КонецПроцедуры Процедура СобратьVA_Single(ПутьКVA, ВременныйКаталогVA, ВерсияПлатформы, ДопИмя, КаталогБазы) //сборка epf + Лог.Информация("Сборка дистрибутива"); ПереместитьФайл(ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation.xml"), ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation" + ДопИмя + ".xml")); КаталогКуда = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation" + ДопИмя); СоздатьКаталог(КаталогКуда); ВременныйКаталогИсходников = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation"); - + КаталогиОткуда = Новый Массив; КаталогиОткуда.Добавить(ВременныйКаталогИсходников); МассивМасок = Новый Массив; @@ -1687,10 +1693,10 @@ ПараметрыЗапуска = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска(); Стр = "/LoadExternalDataProcessorOrReportFromFiles """ + ИмяФайлаКорневойXml + """ """ + ИмяОбработки + """"; - ПараметрыЗапуска.Добавить(Стр); + ПараметрыЗапуска.Добавить(Стр); ИмяФайлаOut = ПолучитьИмяВременногоФайла("txt"); - ПараметрыЗапуска.Добавить("/Out """ + ИмяФайлаOut + """"); + ПараметрыЗапуска.Добавить("/Out """ + ИмяФайлаOut + """"); Попытка Сообщить("Первая сборка epf: " + ИмяОбработки); @@ -1709,9 +1715,9 @@ ЗаписьJson = Новый ЗаписьJson; ВременныйJson = ПолучитьИмяВременногоФайла("json"); ИмяФайлаКеш = ПолучитьИмяВременногоФайла("txt"); - ИмяФайлаКеш = СтрЗаменить(ИмяФайлаКеш,"\","/"); + ИмяФайлаКеш = СтрЗаменить(ИмяФайлаКеш, "\", "/"); КаталогTemplateEpfUF = ОбъединитьПути(ПутьКVA, "lib", "TemplateEpfUF"); - КаталогTemplateEpfUF = СтрЗаменить(КаталогTemplateEpfUF,"\","/"); + КаталогTemplateEpfUF = СтрЗаменить(КаталогTemplateEpfUF, "\", "/"); ЗаписьJson.ОткрытьФайл(ВременныйJson); ЗаписьJSON.ЗаписатьНачалоОбъекта(); @@ -1719,32 +1725,32 @@ ЗаписьJSON.ЗаписатьЗначение(ИмяФайлаКеш); ЗаписьJSON.ЗаписатьИмяСвойства("КаталогTemplateEpfUF"); ЗаписьJSON.ЗаписатьЗначение(КаталогTemplateEpfUF); - ЗаписьJSON.ЗаписатьКонецОбъекта(); + ЗаписьJSON.ЗаписатьКонецОбъекта(); ЗаписьJson.Закрыть(); СтрокаКоманды = """" + ВерсияПлатформы + """ Enterprise /F""" + КаталогБазы + """ /Execute """ + ИмяОбработки + """ /C""GetStepsCache;ClearCacheSteps;VBParams=" + ВременныйJson + """"; Сообщить(СтрокаКоманды); retCode = -1; - ЗапуститьПриложение(СтрокаКоманды,,Истина,retCode); + ЗапуститьПриложение(СтрокаКоманды, , Истина, retCode); ФайлИмяФайлаКеш = Новый Файл(ИмяФайлаКеш); Если НЕ ФайлИмяФайлаКеш.Существует() Тогда ВызватьИсключение "Не получилось получить файл кеш step defenition."; - КонецЕсли; + КонецЕсли; //запись кеша в макет Текст = Новый ЧтениеТекста; - Текст.Открыть(ИмяФайлаКеш,"UTF-8"); + Текст.Открыть(ИмяФайлаКеш, "UTF-8"); Стр = Текст.Прочитать(); - ЗТ = Новый ЗаписьТекста(ФайлДанныеМакета(КаталогКуда, , "МакетСлужебныйКеш"), "UTF-8", , Ложь); - ЗТ.Записать(Стр); + ЗТ = Новый ЗаписьТекста(ФайлДанныеМакета(КаталогКуда, , "МакетСлужебныйКеш"), "UTF-8", , Ложь); + ЗТ.Записать(Стр); ЗТ.Закрыть(); Текст.Закрыть(); - //сборка epf ещё раз + //сборка epf ещё раз УдалитьФайлы(ИмяОбработки); Попытка Сообщить("Вторая сборка epf: " + ИмяОбработки); @@ -1760,12 +1766,28 @@ КонецПопытки; //сборка каталога Distrib + + КаталогDistrib = СборкаКаталогаDistrib(ПутьКVA, ВременныйКаталогVA, ДопИмя); + + Попытка + retCode = -1; + СтрокаКоманды = """" + КаталогDistrib + """"; + ЗапуститьПриложение(СтрокаКоманды, , Ложь, retCode); + Исключение + КонецПопытки; + +КонецПроцедуры + +Функция СборкаКаталогаDistrib(ПутьКVA, ВременныйКаталогVA, ДопИмя) + КаталогDistrib = ОбъединитьПути(ВременныйКаталогVA, "DistribVanessaAutomation" + ДопИмя); СоздатьКаталог(КаталогDistrib); - НовоеИмяEpf = ОбъединитьПути(КаталогDistrib, "vanessa-automation-" + ДопИмя +".epf"); - ПереместитьФайл(ИмяОбработки,НовоеИмяEpf); + ИмяОбработки = ОбъединитьПути(ВременныйКаталогVA, "vanessa-automation-" + ДопИмя + ".epf"); + НовоеИмяEpf = ОбъединитьПути(КаталогDistrib, "vanessa-automation-" + ДопИмя + ".epf"); + ПереместитьФайл(ИмяОбработки, НовоеИмяEpf); + Лог.Информация("Сборка каталога Distrib"); ВременныйКаталогИсходников = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation" + ДопИмя); УдалитьФайлы(ВременныйКаталогИсходников + ".xml"); ОчиститьКаталог(ВременныйКаталогИсходников); @@ -1789,11 +1811,12 @@ МассивМасок.Добавить("LICENSE.xunitfor1c.txt"); КаталогиОткуда = Новый Массив; КаталогиОткуда.Добавить(ПутьКVA); - СкопироватьФайлыВКаталог(КаталогDistrib,КаталогиОткуда, МассивМасок); - //удалим лишние epf и epf библиотек + СкопироватьФайлыВКаталог(КаталогDistrib, КаталогиОткуда, МассивМасок); + + Лог.Информация("Удаление лишних файлов"); Файлы = НайтиФайлы(КаталогDistrib, "*.epf", Истина); Разделитель = ПолучитьРазделительПути(); - + Для Каждого Файл Из Файлы Цикл Если Найти(Файл.ПолноеИмя, "vanessa-automation.epf") Тогда УдалитьФайлы(Файл.ПолноеИмя); @@ -1805,12 +1828,11 @@ УдалитьФайлы(Файл.ПолноеИмя); ИначеЕсли Найти(Файл.ПолноеИмя, Разделитель + "plugins" + Разделитель) Тогда УдалитьФайлы(Файл.ПолноеИмя); - КонецЕсли; - КонецЦикла; + КонецЕсли; + КонецЦикла; ОбновитьРидми(ОбъединитьПути(КаталогDistrib, "README.md")); - //копируем \tools\Sikuli КаталогиОткуда = Новый Массив; КаталогиОткуда.Добавить(ОбъединитьПути(ПутьКVA, "tools", "Sikuli")); @@ -1857,7 +1879,7 @@ Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; Если Найти(Стр, "VBParams82OF.json") > 0 Тогда Продолжить; @@ -1865,141 +1887,138 @@ Продолжить; ИначеЕсли Найти(Стр, "Web.json") > 0 Тогда Продолжить; - КонецЕсли; + КонецЕсли; МассивСтрок.Добавить(Стр); - КонецЦикла; + КонецЦикла; Текст.Закрыть(); ВременныйJson = ПолучитьИмяВременногоФайла("json"); - ЗТ = Новый ЗаписьТекста(ВременныйJson,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста(ВременныйJson, "UTF-8", , Истина); Для Каждого Стр Из МассивСтрок Цикл Стр = СтрЗаменить(Стр, "vanessa-automation.epf", "vanessa-automation-" + ДопИмя + ".epf"); - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; ЗТ.Закрыть(); УдалитьФайлы(Файл.ПолноеИмя); - ПереместитьФайл(ВременныйJson,Файл.ПолноеИмя); - КонецЦикла; + ПереместитьФайл(ВременныйJson, Файл.ПолноеИмя); + КонецЦикла; //удаление фич с тегом @ExternalUse - Файлы = НайтиФайлы(КаталогDistrib,"*.feature",Истина); + Файлы = НайтиФайлы(КаталогDistrib, "*.feature", Истина); Для Каждого Файл Из Файлы Цикл Текст = Новый ЧтениеТекста; - Текст.Открыть(Файл.ПолноеИмя,"UTF-8"); + Текст.Открыть(Файл.ПолноеИмя, "UTF-8"); НашлиТег = Ложь; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); Если Стр = Неопределено Тогда Прервать; - КонецЕсли; + КонецЕсли; - Если Найти(Стр,"@ExternalUse") > 0 Тогда + Если Найти(Стр, "@ExternalUse") > 0 Тогда НашлиТег = Истина; Прервать; - КонецЕсли; - КонецЦикла; + КонецЕсли; + КонецЦикла; Текст.Закрыть(); Если НашлиТег Тогда УдалитьФайлы(Файл.ПолноеИмя); - КонецЕсли; - КонецЦикла; + КонецЕсли; + КонецЦикла; //удаление пустых каталогов УдалитьПустыеКаталоги(КаталогDistrib); - Попытка - retCode = -1; - СтрокаКоманды = """" + КаталогDistrib + """"; - ЗапуститьПриложение(СтрокаКоманды,,Ложь,retCode); - Исключение - КонецПопытки; + Возврат КаталогDistrib; -КонецПроцедуры +КонецФункции Функция СтрокаИзПараметровЗапуска(Массив) Стр = ""; Для Каждого Элем Из Массив Цикл Стр = Стр + " " + Элем; - КонецЦикла; + КонецЦикла; Возврат Стр; -КонецФункции +КонецФункции Процедура УдалитьПустыеКаталоги(Каталог) - Файлы = НайтиФайлы(Каталог,"*",Истина); + Файлы = НайтиФайлы(Каталог, "*", Истина); Для Каждого Файл Из Файлы Цикл Если НЕ Файл.ЭтоКаталог() Тогда Продолжить; - КонецЕсли; + КонецЕсли; - ФайлыКаталога = НайтиФайлы(Файл.ПолноеИмя,"*",Истина); + ФайлыКаталога = НайтиФайлы(Файл.ПолноеИмя, "*", Истина); Если ФайлыКаталога.Количество() = 0 Тогда УдалитьФайлы(Файл.ПолноеИмя); - КонецЕсли; - КонецЦикла; -КонецПроцедуры + КонецЕсли; + КонецЦикла; +КонецПроцедуры Процедура СоздатьОбработкуСингл(ПутьКVA, ПутьКBin, БиблиотекиДляВстраивания, ВерсияПлатформы, ПутьКБазе) + ОчиститьКаталог(ПутьКBin); + ВременныйКаталогVA = ОбъединитьПути(ПутьКBin, "Temp"); СкопироватьФайлыVA(ПутьКVA, ВременныйКаталогVA); ВставитьФормыОбработокВVA(ПутьКVA, ВременныйКаталогVA, БиблиотекиДляВстраивания, "single"); - СобратьVA_Single(ПутьКVA,ВременныйКаталогVA,ВерсияПлатформы,"single",ПутьКБазе); - -КонецПроцедуры + СобратьVA_Single(ПутьКVA, ВременныйКаталогVA, ВерсияПлатформы, "single", ПутьКБазе); + +КонецПроцедуры Функция ПутьКМодулюФормы(ВременныйКаталогVA, ИмяФормы) - + ПутьКФайламФормы = ОбъединитьПути(ВременныйКаталогVA, "VanessaAutomation", "Forms", ИмяФормы); Возврат ОбъединитьПути(ПутьКФайламФормы, "Ext", "Form", "Module.bsl"); - + КонецФункции Функция МодульОбъекта(ПутьККаталогу, ИмяОбработки) Возврат ОбъединитьПути(ПутьККаталогу, ИмяОбработки, "Ext", "ObjectModule.bsl"); - + КонецФункции Функция ФайлДанныеМакета(Каталог, ИмяОбработки = Неопределено, ИмяМакета, Расширение = "txt") - + Если ИмяОбработки <> Неопределено Тогда ФайлыМакета = ОбъединитьПути(Каталог, ИмяОбработки, "Templates", ИмяМакета); Иначе ФайлыМакета = ОбъединитьПути(Каталог, "Templates", ИмяМакета); КонецЕсли; - + Возврат ОбъединитьПути(ФайлыМакета, "Ext", "Template." + Расширение); - + КонецФункции Функция АбсолютныйПуть(Путь) - + Файл = Новый Файл(Путь); Возврат Файл.ПолноеИмя; - + КонецФункции Функция ИзвлечьВерсиюПлатформы(ПутьККаталогуBin) - + ФайлBin = Новый Файл(ПутьККаталогуBin); // Путь к каталогу bin платформы - + Если НЕ ФайлBin.Существует() И ФайлBin.Путь = "" Тогда ВерсияПлатформы = ПутьККаталогуBin; Иначе ФайлНаОдинКаталогВыше = Новый Файл(ФайлBin.Путь); ВерсияПлатформы = ФайлНаОдинКаталогВыше.Имя; КонецЕсли; - + Возврат ВерсияПлатформы; - + КонецФункции @@ -2011,7 +2030,7 @@ ИначеЕсли АргументыКоманднойСтроки.Количество() <> 5 Тогда Лог.Ошибка("Скрипт принимает пять параметров!"); Иначе - УправлениеКонфигуратором = Новый УправлениеКонфигуратором(); + УправлениеКонфигуратором = Новый УправлениеКонфигуратором(); ВерсияПлатформы = ИзвлечьВерсиюПлатформы(АргументыКоманднойСтроки[3]); Сообщить("Для пакетного запуска конфигуратора установлена платформа: " + ВерсияПлатформы); ПутьКПлатформе = УправлениеКонфигуратором.ПолучитьПутьКВерсииПлатформы(ВерсияПлатформы); @@ -2020,23 +2039,30 @@ УправлениеКонфигуратором.СоздатьФайловуюБазу(КаталогБазы); УправлениеКонфигуратором.УстановитьКонтекст("/F""" + КаталогБазы + """", "", ""); - ПутьКИсходникамVanessaAutomation = АбсолютныйПуть(АргументыКоманднойСтроки[0]); КаталогСборки = АбсолютныйПуть(АргументыКоманднойСтроки[1]); КаталогиБиблиотек = АбсолютныйПуть(АргументыКоманднойСтроки[2]); КаталогФайловойБазы = АбсолютныйПуть(АргументыКоманднойСтроки[4]); - - СоздатьОбработкуСингл(ПутьКИсходникамVanessaAutomation, + + Лог.Информация("ПутьКИсходникамVanessaAutomation: " + ПутьКИсходникамVanessaAutomation); + Лог.Информация("КаталогСборки: " + КаталогСборки); + Лог.Информация("КаталогиБиблиотек: " + КаталогиБиблиотек); + Лог.Информация("ПутьКПлатформе: " + ПутьКПлатформе); + Лог.Информация("КаталогФайловойБазы: " + КаталогФайловойБазы); + + Если СтрНайти(КаталогСборки, ПутьКИсходникамVanessaAutomation) Тогда + Лог.Ошибка("Каталог сборки должен находится вне каталога исходников"); + Иначе + СоздатьОбработкуСингл(ПутьКИсходникамVanessaAutomation, КаталогСборки, КаталогиБиблиотек, - ПутьКПлатформе, + ПутьКПлатформе, КаталогФайловойБазы); + КонецЕсли; + КонецЕсли; Сообщить("////////////////////"); Сообщить("Обработка завершена."); -Sleep(5000); - - - +Sleep(5000); \ No newline at end of file