Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 21 additions & 11 deletions v8files-extractor.os
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
КодВозврата = 1;
КонецПопытки;

Лог.Отладка("Очищаем каталог временной ИБ");
Лог.Отладка("Очищаем временные файлы");
Попытка
ВременныеФайлы.Удалить();
Исключение
Expand Down Expand Up @@ -295,10 +295,6 @@
ПутьКаталогаИсходников = ОбъединитьПути(КаталогВыгрузки, ОтносительныйПутьКаталогаФайла);
Лог.Отладка("ПутьКаталогаИсходников <%1>", ПутьКаталогаИсходников);
ПапкаИсходников = Новый Файл(ПутьКаталогаИсходников);

Если НЕ ВРег(Файл.Расширение) = ".MXL" Тогда
ОбеспечитьПустойКаталог(ПапкаИсходников);
КонецЕсли;

Если ВРег(Файл.Расширение) = ".CFE" Тогда
ЗапуститьРаспаковкуРасширения(Файл, ПапкаИсходников);
Expand Down Expand Up @@ -350,14 +346,21 @@
Конфигуратор.ВыполнитьКоманду(Параметры);
Лог.Отладка("Вывод 1С:Предприятия - " + Конфигуратор.ВыводКоманды());

Лог.Отладка("Разбор расширения '%1' в исходники в каталог '%2'", ИмяРасширения, ПапкаИсходников.ПолноеИмя);
ВременнаяПапкаИсходников = ВременныеФайлы.СоздатьКаталог();

Лог.Отладка("Разбор расширения '%1' в исходники в каталог '%2'", ИмяРасширения, ВременнаяПапкаИсходников);
Параметры = Конфигуратор.ПолучитьПараметрыЗапуска();

Параметры.Добавить("/DumpConfigToFiles """ + ПапкаИсходников.ПолноеИмя + """");
Параметры.Добавить("/DumpConfigToFiles """ + ВременнаяПапкаИсходников + """");
Параметры.Добавить("-Extension """ + ИмяРасширения + """");
Конфигуратор.ВыполнитьКоманду(Параметры);
Лог.Отладка("Вывод 1С:Предприятия - " + Конфигуратор.ВыводКоманды());

ОбеспечитьПустойКаталог(ПапкаИсходников);

Лог.Отладка("Копируем исходники из временного каталога в целевой: " + ПапкаИсходников.ПолноеИмя);
КопироватьСодержимоеКаталога(ВременнаяПапкаИсходников, ПапкаИсходников.ПолноеИмя);

КонецПроцедуры

Процедура ЗапуститьРаспаковкуОбработки(Знач Файл, Знач ПапкаИсходников)
Expand All @@ -375,13 +378,13 @@
ЛогКонфигуратора = Логирование.ПолучитьЛог("oscript.lib.v8runner");
ЛогКонфигуратора.УстановитьУровень(Лог.Уровень());


ЭтоМакет = ВРег(Файл.Расширение) = ".MXL";
ВременнаяПапкаИсходников = ВременныеФайлы.СоздатьКаталог();

Параметры = Конфигуратор.ПолучитьПараметрыЗапуска();
Если НЕ ЭтоМакет И ИспользоватьКонфигуратор Тогда

КоманднаяСтрокаРаспаковки = СтрШаблон("/DumpExternalDataProcessorOrReportToFiles ""%1\%2.xml"" ""%3""", ПапкаИсходников.ПолноеИмя, Файл.ИмяБезРасширения, Файл.ПолноеИмя);
КоманднаяСтрокаРаспаковки = СтрШаблон("/DumpExternalDataProcessorOrReportToFiles ""%1\%2.xml"" ""%3""", ВременнаяПапкаИсходников, Файл.ИмяБезРасширения, Файл.ПолноеИмя);

Лог.Отладка("Командная строка распаковки: " + КоманднаяСтрокаРаспаковки);

Expand All @@ -395,7 +398,7 @@
Лог.Отладка("Путь к V8Reader: " + ПутьV8Reader);
Ожидаем.Что(Новый Файл(ПутьV8Reader).Существует(), "Некорректно установлен V8Reader. Не обнаружен файл <" + ПутьV8Reader + ">").ЭтоИстина();

КоманднаяСтрокаV8Reader = СтрШаблон("/C""decompile;pathtocf;%1;pathout;%2;convert-mxl2txt;ЗавершитьРаботуПосле;""", Файл.ПолноеИмя, ?(ЭтоМакет, Файл.Путь, ПапкаИсходников.ПолноеИмя));
КоманднаяСтрокаV8Reader = СтрШаблон("/C""decompile;pathtocf;%1;pathout;%2;convert-mxl2txt;ЗавершитьРаботуПосле;""", Файл.ПолноеИмя, ?(ЭтоМакет, Файл.Путь, ВременнаяПапкаИсходников));

Лог.Отладка("Командная строка V8Reader: " + КоманднаяСтрокаV8Reader);

Expand All @@ -408,6 +411,13 @@
Конфигуратор.ВыполнитьКоманду(Параметры);
Лог.Отладка("Вывод 1С:Предприятия - " + Конфигуратор.ВыводКоманды());

Если Не ЭтоМакет Тогда
ОбеспечитьПустойКаталог(ПапкаИсходников);
КонецЕсли;

Лог.Отладка("Копируем исходники из временного каталога в целевой: " + ПапкаИсходников.ПолноеИмя);
КопироватьСодержимоеКаталога(ВременнаяПапкаИсходников, ПапкаИсходников.ПолноеИмя);

КонецПроцедуры

Процедура УстановитьУровеньЛогаКонфигуратораРавнымУровнюПродукта()
Expand Down