Skip to content

Commit 196318c

Browse files
committed
Merge branch 'release/v.1.11.0'
2 parents 33bb391 + 54af0b3 commit 196318c

6 files changed

Lines changed: 122 additions & 27 deletions

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ yard releases --user "user" --pwd "pwd" list --app-filter "Библиотека
9494
- _--last-version-description_ - путь к файлу `description.json` с описанием последней загруженной версией
9595
- _--download-existing_ - флаг принудительной загрузки ранее загруженных версий в каталоге для загрузки (проверяются файлы `description.json`)
9696
- _--download-limit_ - ограничение количества загружаемых версий за 1 запуск
97+
- _--download-only_ - только скачать дистрибутив с сайта и не выполнять дальнейшую обработку
9798
- _--extract_ - флаг распаковки загруженного архива
9899
- _--extract-path_ - каталог для распаковки загруженного архива
99100
- _--extract-dir_ - регулярное выражение, отбора каталогов в архиве EFD для распаковки
@@ -255,6 +256,7 @@ yard upload-all --path ".\tmp\tmplts\SSL31\" --cfname "1cv8.cf" --git-path ".\tm
255256
- **ОписаниеПоследнейВерсии** - путь к файлу description.json с описанием последней загруженной версии Ложь - будут загружены все релизы с учетом других настроек
256257
- **ЗагружатьСуществующие** - Истина - будут загружены все найденные релизы независимо от существующих в каталоге для загрузки Ложь - будут загружены только отсутствующие в каталоге для загрузки релизы (проверяются файлы description.json)
257258
- **ОграничениеКоличества** - ограничение количества загружаемых за 1 раз версий
259+
- **ТолькоСкачать** - Истина - только скачать дистрибутив с сайта и не выполнять дальнейшую обработку
258260
- **РаспаковыватьEFD** - Истина - если загруженный архив содержит упакованный шаблонконфигурации (содержит файл 1cv8.efd), то он будет распакован
259261
- **КаталогДляРаспаковкиEFD** - каталог для распаковки шаблона конфигурации
260262
- **КаталогВАрхивеДляРаспаковкиEFD** - регулярное выражение, отбора каталогов в архиве EFD для распаковки

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Описание.Имя("yard")
2-
.Версия("1.10.0")
2+
.Версия("1.11.0")
33
.ВерсияСреды("1.6")
44
.ЗависитОт("logos")
55
.ЗависитОт("asserts")

src/Классы/ВыгрузкаКаталогаКонфигурацииВГит.os

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,14 @@
330330
ВерсииДляОбработки.Добавить(ОписаниеВерсии);
331331
КонецЦикла;
332332

333+
Если ВерсииДляОбработки.Количество() = 0 Тогда
334+
Лог.Ошибка("[%1]: Не найден файл исходной конфигурации %2 и description.json в подкаталоге релиза в %3.",
335+
ЭтотОбъект,
336+
ИмяФайлаКонфигурации,
337+
ПутьККаталогуКонфигураций);
338+
Возврат;
339+
КонецЕсли;
340+
333341
Служебный.СортироватьОписанияВерсийПоДате(ВерсииДляОбработки);
334342

335343
ФайлОписанияПоследнейВерсии = Новый Файл(ОбъединитьПути(РепозитарийГит, "description.json"));

src/Классы/ВыгрузкаКонфигурацииВГит.os

Lines changed: 92 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
Перем База_СтрокаСоединения; // Строка - строка соединения служебной базы 1С
3131
Перем КонвертироватьВФорматЕДТ; // Булево - конвертацировать в формат 1С:Enterprise development tools
3232
Перем СнятьСПоддержки; // Булево - снять конфигурацию с поддержки
33-
Перем ВерсияЕДТ; // Строка - верия среды 1С:Enterprise development tools для конвертации
33+
Перем ВерсияЕДТ; // Строка - верcия среды 1С:Enterprise development tools для конвертации
3434
Перем ОтносительныйПуть; // Строка - относительный путь к исходникам внутри репозитория
3535
// для выполнения выгрузки
3636

@@ -327,6 +327,22 @@
327327
НовыйРепозитарий = Истина;
328328
КонецЕсли;
329329

330+
Если НЕ ВРег(СокрЛП(ГитРепозитарий.ПолучитьТекущуюВетку())) = ВРег(СокрЛП(ИмяВеткиГит)) Тогда
331+
Если Гит_ВеткаСуществует(ГитРепозитарий, ИмяВеткиГит) Тогда
332+
Лог.Информация("[%1]: Переход на ветку GIT ""%2"" в репозитарии ""%3""",
333+
ТипЗнч(ЭтотОбъект),
334+
ИмяВеткиГит,
335+
ГитРепозитарий.ПолучитьРабочийКаталог());
336+
ГитРепозитарий.ПерейтиВВетку(ИмяВеткиГит, , Истина);
337+
ИначеЕсли НЕ НовыйРепозитарий Тогда
338+
Лог.Информация("[%1]: Создание ветки GIT ""%2"" в репозитарии ""%3""",
339+
ТипЗнч(ЭтотОбъект),
340+
ИмяВеткиГит,
341+
ГитРепозитарий.ПолучитьРабочийКаталог());
342+
ГитРепозитарий.ПерейтиВВетку(ИмяВеткиГит, Истина);
343+
КонецЕсли;
344+
КонецЕсли;
345+
330346
Если Не ЗначениеЗаполнено(ОтносительныйПуть) Тогда
331347
КаталогВыгрузки = ОбъединитьПути(РепозитарийГит, "src", "cf");
332348
Иначе
@@ -384,22 +400,6 @@
384400

385401
КаталогВыгрузкиИсходников = ?(КонвертироватьВФорматЕДТ, МенеджерВР.СоздатьКаталог("config-src"), КаталогВыгрузки);
386402

387-
Если НЕ ВРег(СокрЛП(ГитРепозитарий.ПолучитьТекущуюВетку())) = ВРег(СокрЛП(ИмяВеткиГит)) Тогда
388-
Если Гит_ВеткаСуществует(ГитРепозитарий, ИмяВеткиГит) Тогда
389-
Лог.Информация("[%1]: Переход на ветку GIT ""%2"" в репозитарии ""%3""",
390-
ТипЗнч(ЭтотОбъект),
391-
ИмяВеткиГит,
392-
ГитРепозитарий.ПолучитьРабочийКаталог());
393-
ГитРепозитарий.ПерейтиВВетку(ИмяВеткиГит, , Истина);
394-
ИначеЕсли НЕ НовыйРепозитарий Тогда
395-
Лог.Информация("[%1]: Создание ветки GIT ""%2"" в репозитарии ""%3""",
396-
ТипЗнч(ЭтотОбъект),
397-
ИмяВеткиГит,
398-
ГитРепозитарий.ПолучитьРабочийКаталог());
399-
ГитРепозитарий.ПерейтиВВетку(ИмяВеткиГит, Истина);
400-
КонецЕсли;
401-
КонецЕсли;
402-
403403
Лог.Информация("[%1]: Начало выгрузки в файлы версии %2 (%3) конфигурации ""%4"" %5 ""%6""",
404404
ТипЗнч(ЭтотОбъект),
405405
ОписаниеВерсии.Версия,
@@ -709,18 +709,32 @@
709709
Процедура СконвертироватьВФорматЕДТ(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ = Неопределено)
710710

711711
Лог.Информация("[%1]: Начало конвертации в формат ЕДТ", ТипЗнч(ЭтотОбъект));
712+
713+
ИспользоватьНовуюВерсиюCLI = Ложь;
714+
Если ЗначениеЗаполнено(ВерсияЕДТ) Тогда
715+
ИспользоватьНовуюВерсиюCLI = Версии.СравнитьВерсии("2023.3.5", ВерсияЕДТ) <= 0;
716+
КонецЕсли;
717+
718+
Если ИспользоватьНовуюВерсиюCLI Тогда
719+
КонвертироватьВФорматЕДТ_НоваяВерсияCLI(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ);
720+
Иначе
721+
КонвертироватьВФорматЕДТ_СтараяВерсияCLI(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ);
722+
КонецЕсли;
712723

724+
Лог.Информация("[%1]: Завершена конвертация в формат ЕДТ", ТипЗнч(ЭтотОбъект));
725+
726+
КонецПроцедуры
727+
728+
Процедура КонвертироватьВФорматЕДТ_СтараяВерсияCLI(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ)
729+
ПараметрыЕНВ = Новый Соответствие();
730+
ПараметрыЕНВ.Вставить("RING_OPTS", "-Xmx6g -Dfile.encoding=UTF-8 -Dosgi.nl=ru -Duser.language=ru");
713731
МенеджерВР = Новый МенеджерВременныхФайлов();
714732
ВоркСпейсЕДТ = МенеджерВР.СоздатьКаталог("edt-ws");
715733

716-
ПараметрыЕНВ = Новый Соответствие();
717-
ПараметрыЕНВ.Вставить("RING_OPTS", "-Dfile.encoding=UTF-8 -Dosgi.nl=ru -Duser.language=ru");
718-
719734
КомандаЕДТ = "edt";
720735
Если ЗначениеЗаполнено(ВерсияЕДТ) Тогда
721736
КомандаЕДТ = СтрШаблон("%1@%2", КомандаЕДТ, ВерсияЕДТ);
722737
КонецЕсли;
723-
724738
ПараметрыЗапускаЕДТ = Новый Массив();
725739
ПараметрыЗапускаЕДТ.Добавить(КомандаЕДТ);
726740
ПараметрыЗапускаЕДТ.Добавить("workspace import");
@@ -737,17 +751,71 @@
737751
Команда.ДобавитьПараметры(ПараметрыЗапускаЕДТ);
738752

739753
КодВозврата = Команда.Исполнить();
740-
754+
МенеджерВР.Удалить();
741755
Если КодВозврата <> 0 Тогда
742756
ВызватьИсключение Команда.ПолучитьВывод();
743757
КонецЕсли;
758+
759+
КонецПроцедуры
760+
761+
Процедура КонвертироватьВФорматЕДТ_НоваяВерсияCLI(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ)
762+
МенеджерВР = Новый МенеджерВременныхФайлов();
763+
ВоркСпейсЕДТ = МенеджерВР.СоздатьКаталог("edt-ws");
764+
765+
// Получаем путь к исполняемым файлам едт
766+
КомандаЕДТ = "edt";
767+
Если ЗначениеЗаполнено(ВерсияЕДТ) Тогда
768+
КомандаЕДТ = СтрШаблон("%1@%2", КомандаЕДТ, ВерсияЕДТ);
769+
КонецЕсли;
770+
Команда = Новый Команда();
771+
ПараметрыЗапускаЕДТ = Новый Массив();
772+
ПараметрыЗапускаЕДТ.Добавить(КомандаЕДТ);
773+
ПараметрыЗапускаЕДТ.Добавить("locations list");
774+
Команда = Новый Команда();
775+
Команда.УстановитьКоманду("ring");
776+
Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8);
777+
Команда.ДобавитьПараметры(ПараметрыЗапускаЕДТ);
778+
КодВозврата = Команда.Исполнить();
779+
Вывод = СокрЛП(Команда.ПолучитьВывод());
780+
781+
Если КодВозврата <> 0 Тогда
782+
ВызватьИсключение Вывод;
783+
КонецЕсли;
784+
785+
Если Не ЗначениеЗаполнено(Вывод) Тогда
786+
ВызватьИсключение "Не удалось найти установленного дистрибутива EDT";
787+
КонецЕсли;
788+
Лог.Информация("[%1]: Найдена установленная версия ЕДТ: %2", ТипЗнч(ЭтотОбъект), Вывод);
789+
790+
// Выполняем конвертацию
791+
ИмяФайлаСкрипта = ?(ПараметрыПриложения.ЭтоWindows(), "1cedtcli.exe", " 1cedtcli");
792+
Команда = Новый Команда();
793+
ИтоговыйПуть = ОбъединитьПути(Вывод, ИмяФайлаСкрипта);
794+
Команда.УстановитьКоманду(ИтоговыйПуть);
795+
Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8);
744796

797+
ПараметрыЗапускаЕДТ = Новый Массив();
798+
ПараметрыЗапускаЕДТ.Добавить("-data");
799+
ПараметрыЗапускаЕДТ.Добавить(ВоркСпейсЕДТ);
800+
ПараметрыЗапускаЕДТ.Добавить("-vmargs");
801+
ПараметрыЗапускаЕДТ.Добавить("-Xmx8g -Dfile.encoding=UTF-8 -Dosgi.nl=ru -Duser.language=ru");
802+
ПараметрыЗапускаЕДТ.Добавить("-command");
803+
ПараметрыЗапускаЕДТ.Добавить("import");
804+
ПараметрыЗапускаЕДТ.Добавить("--configuration-files");
805+
ПараметрыЗапускаЕДТ.Добавить(КаталогВФорматеКонфигуратора);
806+
ПараметрыЗапускаЕДТ.Добавить("--project");
807+
ПараметрыЗапускаЕДТ.Добавить(КаталогВФорматеЕДТ);
808+
Команда.ДобавитьПараметры(ПараметрыЗапускаЕДТ);
809+
810+
КодВозврата = Команда.Исполнить();
745811
МенеджерВР.Удалить();
746-
747-
Лог.Информация("[%1]: Завершена конвертация в формат ЕДТ", ТипЗнч(ЭтотОбъект));
812+
Если КодВозврата <> 0 Тогда
813+
ВызватьИсключение Команда.ПолучитьВывод();
814+
КонецЕсли;
748815

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

818+
751819
// Процедура - Проверяет существование указанной ветки в репозитарии GIT
752820
//
753821
// Параметры:

0 commit comments

Comments
 (0)