|
30 | 30 | Перем База_СтрокаСоединения; // Строка - строка соединения служебной базы 1С |
31 | 31 | Перем КонвертироватьВФорматЕДТ; // Булево - конвертацировать в формат 1С:Enterprise development tools |
32 | 32 | Перем СнятьСПоддержки; // Булево - снять конфигурацию с поддержки |
33 | | -Перем ВерсияЕДТ; // Строка - верия среды 1С:Enterprise development tools для конвертации |
| 33 | +Перем ВерсияЕДТ; // Строка - верcия среды 1С:Enterprise development tools для конвертации |
34 | 34 | Перем ОтносительныйПуть; // Строка - относительный путь к исходникам внутри репозитория |
35 | 35 | // для выполнения выгрузки |
36 | 36 |
|
|
327 | 327 | НовыйРепозитарий = Истина; |
328 | 328 | КонецЕсли; |
329 | 329 |
|
| 330 | + Если НЕ ВРег(СокрЛП(ГитРепозитарий.ПолучитьТекущуюВетку())) = ВРег(СокрЛП(ИмяВеткиГит)) Тогда |
| 331 | + Если Гит_ВеткаСуществует(ГитРепозитарий, ИмяВеткиГит) Тогда |
| 332 | + Лог.Информация("[%1]: Переход на ветку GIT ""%2"" в репозитарии ""%3""", |
| 333 | + ТипЗнч(ЭтотОбъект), |
| 334 | + ИмяВеткиГит, |
| 335 | + ГитРепозитарий.ПолучитьРабочийКаталог()); |
| 336 | + ГитРепозитарий.ПерейтиВВетку(ИмяВеткиГит, , Истина); |
| 337 | + ИначеЕсли НЕ НовыйРепозитарий Тогда |
| 338 | + Лог.Информация("[%1]: Создание ветки GIT ""%2"" в репозитарии ""%3""", |
| 339 | + ТипЗнч(ЭтотОбъект), |
| 340 | + ИмяВеткиГит, |
| 341 | + ГитРепозитарий.ПолучитьРабочийКаталог()); |
| 342 | + ГитРепозитарий.ПерейтиВВетку(ИмяВеткиГит, Истина); |
| 343 | + КонецЕсли; |
| 344 | + КонецЕсли; |
| 345 | + |
330 | 346 | Если Не ЗначениеЗаполнено(ОтносительныйПуть) Тогда |
331 | 347 | КаталогВыгрузки = ОбъединитьПути(РепозитарийГит, "src", "cf"); |
332 | 348 | Иначе |
|
384 | 400 |
|
385 | 401 | КаталогВыгрузкиИсходников = ?(КонвертироватьВФорматЕДТ, МенеджерВР.СоздатьКаталог("config-src"), КаталогВыгрузки); |
386 | 402 |
|
387 | | - Если НЕ ВРег(СокрЛП(ГитРепозитарий.ПолучитьТекущуюВетку())) = ВРег(СокрЛП(ИмяВеткиГит)) Тогда |
388 | | - Если Гит_ВеткаСуществует(ГитРепозитарий, ИмяВеткиГит) Тогда |
389 | | - Лог.Информация("[%1]: Переход на ветку GIT ""%2"" в репозитарии ""%3""", |
390 | | - ТипЗнч(ЭтотОбъект), |
391 | | - ИмяВеткиГит, |
392 | | - ГитРепозитарий.ПолучитьРабочийКаталог()); |
393 | | - ГитРепозитарий.ПерейтиВВетку(ИмяВеткиГит, , Истина); |
394 | | - ИначеЕсли НЕ НовыйРепозитарий Тогда |
395 | | - Лог.Информация("[%1]: Создание ветки GIT ""%2"" в репозитарии ""%3""", |
396 | | - ТипЗнч(ЭтотОбъект), |
397 | | - ИмяВеткиГит, |
398 | | - ГитРепозитарий.ПолучитьРабочийКаталог()); |
399 | | - ГитРепозитарий.ПерейтиВВетку(ИмяВеткиГит, Истина); |
400 | | - КонецЕсли; |
401 | | - КонецЕсли; |
402 | | - |
403 | 403 | Лог.Информация("[%1]: Начало выгрузки в файлы версии %2 (%3) конфигурации ""%4"" %5 ""%6""", |
404 | 404 | ТипЗнч(ЭтотОбъект), |
405 | 405 | ОписаниеВерсии.Версия, |
|
709 | 709 | Процедура СконвертироватьВФорматЕДТ(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ = Неопределено) |
710 | 710 |
|
711 | 711 | Лог.Информация("[%1]: Начало конвертации в формат ЕДТ", ТипЗнч(ЭтотОбъект)); |
| 712 | + |
| 713 | + ИспользоватьНовуюВерсиюCLI = Ложь; |
| 714 | + Если ЗначениеЗаполнено(ВерсияЕДТ) Тогда |
| 715 | + ИспользоватьНовуюВерсиюCLI = Версии.СравнитьВерсии("2023.3.5", ВерсияЕДТ) <= 0; |
| 716 | + КонецЕсли; |
| 717 | + |
| 718 | + Если ИспользоватьНовуюВерсиюCLI Тогда |
| 719 | + КонвертироватьВФорматЕДТ_НоваяВерсияCLI(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ); |
| 720 | + Иначе |
| 721 | + КонвертироватьВФорматЕДТ_СтараяВерсияCLI(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ); |
| 722 | + КонецЕсли; |
712 | 723 |
|
| 724 | + Лог.Информация("[%1]: Завершена конвертация в формат ЕДТ", ТипЗнч(ЭтотОбъект)); |
| 725 | + |
| 726 | +КонецПроцедуры |
| 727 | + |
| 728 | +Процедура КонвертироватьВФорматЕДТ_СтараяВерсияCLI(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ, ВерсияЕДТ) |
| 729 | + ПараметрыЕНВ = Новый Соответствие(); |
| 730 | + ПараметрыЕНВ.Вставить("RING_OPTS", "-Xmx6g -Dfile.encoding=UTF-8 -Dosgi.nl=ru -Duser.language=ru"); |
713 | 731 | МенеджерВР = Новый МенеджерВременныхФайлов(); |
714 | 732 | ВоркСпейсЕДТ = МенеджерВР.СоздатьКаталог("edt-ws"); |
715 | 733 |
|
716 | | - ПараметрыЕНВ = Новый Соответствие(); |
717 | | - ПараметрыЕНВ.Вставить("RING_OPTS", "-Dfile.encoding=UTF-8 -Dosgi.nl=ru -Duser.language=ru"); |
718 | | - |
719 | 734 | КомандаЕДТ = "edt"; |
720 | 735 | Если ЗначениеЗаполнено(ВерсияЕДТ) Тогда |
721 | 736 | КомандаЕДТ = СтрШаблон("%1@%2", КомандаЕДТ, ВерсияЕДТ); |
722 | 737 | КонецЕсли; |
723 | | - |
724 | 738 | ПараметрыЗапускаЕДТ = Новый Массив(); |
725 | 739 | ПараметрыЗапускаЕДТ.Добавить(КомандаЕДТ); |
726 | 740 | ПараметрыЗапускаЕДТ.Добавить("workspace import"); |
|
737 | 751 | Команда.ДобавитьПараметры(ПараметрыЗапускаЕДТ); |
738 | 752 |
|
739 | 753 | КодВозврата = Команда.Исполнить(); |
740 | | - |
| 754 | + МенеджерВР.Удалить(); |
741 | 755 | Если КодВозврата <> 0 Тогда |
742 | 756 | ВызватьИсключение Команда.ПолучитьВывод(); |
743 | 757 | КонецЕсли; |
| 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); |
744 | 796 |
|
| 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 | + КодВозврата = Команда.Исполнить(); |
745 | 811 | МенеджерВР.Удалить(); |
746 | | - |
747 | | - Лог.Информация("[%1]: Завершена конвертация в формат ЕДТ", ТипЗнч(ЭтотОбъект)); |
| 812 | + Если КодВозврата <> 0 Тогда |
| 813 | + ВызватьИсключение Команда.ПолучитьВывод(); |
| 814 | + КонецЕсли; |
748 | 815 |
|
749 | 816 | КонецПроцедуры |
750 | 817 |
|
| 818 | + |
751 | 819 | // Процедура - Проверяет существование указанной ветки в репозитарии GIT |
752 | 820 | // |
753 | 821 | // Параметры: |
|
0 commit comments