Skip to content

Commit 0ee7aed

Browse files
committed
fix: отладка и доработка выгрузки конфигурации в файлы с использованием ibcmd
1 parent fe74c04 commit 0ee7aed

File tree

3 files changed

+70
-16
lines changed

3 files changed

+70
-16
lines changed

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

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,16 @@
77
// Codebase: https://github.com/ArKuznetsov/yard/
88
// ----------------------------------------------------------
99

10-
Перем МенеджерОбработкиДанных; // ВнешняяОбработкаОбъект - обработка-менеджер, вызвавшая данный обработчик
11-
Перем Идентификатор; // Строка - идентификатор обработчика, заданный обработкой-менеджером
12-
Перем ПараметрыОбработки; // Структура - параметры обработки
13-
Перем Лог; // Объект - объект записи лога приложения
10+
Перем МенеджерОбработкиДанных; // ВнешняяОбработкаОбъект - обработка-менеджер, вызвавшая данный обработчик
11+
Перем Идентификатор; // Строка - идентификатор обработчика, заданный обработкой-менеджером
12+
Перем ПараметрыОбработки; // Структура - параметры обработки
13+
Перем Лог; // Объект - объект записи лога приложения
1414

1515
Перем ВерсияПлатформы; // Строка - маска версии платформы 1С (8.3, 8.3.6 и т.п.)
1616
Перем ПутьККаталогуКонфигураций; // Строка - путь к каталогу содержащему версии конфигурации
1717
// для выгрузки в git
1818
Перем ИмяФайлаКонфигурации; // Строка - имя файла конфигурации, по умолчанию "1Cv8.cf"
19+
Перем ИнструментВыгрузки; // Строка - инструмент выгрузки конфигурации в файлы (designer или ibcmd)
1920
Перем РепозитарийГит; // Строка - путь к репозитарию git
2021
Перем ИмяВеткиГит; // Строка - имя ветки git в которую будет выполняться выгрузка
2122
Перем ИмяАвтора; // Строка - имя автора коммита в git
@@ -92,6 +93,13 @@
9293
"1Cv8.cf",
9394
"имя файла конфигурации, по умолчанию ""1Cv8.cf""");
9495

96+
ДобавитьОписаниеПараметра(Параметры,
97+
"ИнструментВыгрузки",
98+
"Строка",
99+
Ложь,
100+
Перечисления.ИнструментыВыгрузкиКонфигурацииВФайлы.Конфигуратор,
101+
"инструмент выгрузки конфигурации в файлы (designer или ibcmd)");
102+
95103
ДобавитьОписаниеПараметра(Параметры,
96104
"РепозитарийГит",
97105
"Строка",
@@ -239,6 +247,9 @@
239247
УстановитьПараметрОбработкиДанныхИзСтруктуры("ВерсияПлатформы" , ПараметрыОбработки, "8.3");
240248
УстановитьПараметрОбработкиДанныхИзСтруктуры("ПутьККаталогуКонфигураций", ПараметрыОбработки);
241249
УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяФайлаКонфигурации" , ПараметрыОбработки, "1Cv8.cf");
250+
УстановитьПараметрОбработкиДанныхИзСтруктуры("ИнструментВыгрузки" ,
251+
ПараметрыОбработки,
252+
Перечисления.ИнструментыВыгрузкиКонфигурацииВФайлы.Конфигуратор);
242253
УстановитьПараметрОбработкиДанныхИзСтруктуры("РепозитарийГит" , ПараметрыОбработки);
243254
УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяВеткиГит" , ПараметрыОбработки, "base1c");
244255
УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяАвтора" , ПараметрыОбработки, "1c");
@@ -415,6 +426,7 @@
415426
Выгрузка.УстановитьПараметрОбработкиДанных("ВерсияПлатформы" , ВерсияПлатформы);
416427
Выгрузка.УстановитьПараметрОбработкиДанных("ПутьККонфигурации",
417428
ОбъединитьПути(ТекОписание.КаталогВерсии, ИмяФайлаКонфигурации));
429+
Выгрузка.УстановитьПараметрОбработкиДанных("ИнструментВыгрузки" , ИнструментВыгрузки);
418430
Выгрузка.УстановитьПараметрОбработкиДанных("РепозитарийГит" , РепозитарийГит);
419431
Выгрузка.УстановитьПараметрОбработкиДанных("ИмяВеткиГит" , ИмяВеткиГит);
420432
Выгрузка.УстановитьПараметрОбработкиДанных("ИмяАвтора" , ИмяАвтора);
@@ -493,6 +505,12 @@
493505
.ТСтрока()
494506
.ВОкружении("YARD_CF_NAME");
495507

508+
Команда.Опция("et export-tool",
509+
Перечисления.ИнструментыВыгрузкиКонфигурацииВФайлы.Конфигуратор,
510+
"инструмент выгрузки конфигурации в файлы (designer или ibcmd)")
511+
.ТСтрока()
512+
.ВОкружении("YARD_EXPORT_TOOL");
513+
496514
Команда.Опция("g git-path", "", "путь к репозитарию git")
497515
.ТСтрока()
498516
.ВОкружении("YARD_GIT_PATH");
@@ -554,6 +572,7 @@
554572
УстановитьПараметрОбработкиДанных("ВерсияПлатформы" , Команда.ЗначениеОпции("v8version"));
555573
УстановитьПараметрОбработкиДанных("ПутьККаталогуКонфигураций", Команда.ЗначениеОпции("path"));
556574
УстановитьПараметрОбработкиДанных("ИмяФайлаКонфигурации" , Команда.ЗначениеОпции("cf-name"));
575+
УстановитьПараметрОбработкиДанных("ИнструментВыгрузки" , Команда.ЗначениеОпции("export-tool"));
557576
УстановитьПараметрОбработкиДанных("РепозитарийГит" , Команда.ЗначениеОпции("git-path"));
558577
УстановитьПараметрОбработкиДанных("ИмяВеткиГит" , Команда.ЗначениеОпции("git-branch"));
559578
УстановитьПараметрОбработкиДанных("ИмяАвтора" , Команда.ЗначениеОпции("git-author"));

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

Lines changed: 46 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
Перем ВерсияПлатформы; // Строка - маска версии платформы 1С (8.3, 8.3.6 и т.п.)
2424
Перем ПутьККонфигурации; // Строка - путь к файлу конфигурации (CF) для выгрузки
25-
Перем ИнструментВыгрузки // Строка - инструмент выгрузки конфигурации в файлы (Конфигуратор или УтилитаIBCMD)
25+
Перем ИнструментВыгрузки; // Строка - инструмент выгрузки конфигурации в файлы (designer или ibcmd)
2626
Перем РепозитарийГит; // Строка - путь к репозитарию git
2727
Перем ИмяВеткиГит; // Строка - имя ветки git в которую будет выполняться выгрузка
2828
Перем ИмяАвтора; // Строка - имя автора коммита в git
@@ -102,7 +102,7 @@
102102
"Строка",
103103
Ложь,
104104
Перечисления.ИнструментыВыгрузкиКонфигурацииВФайлы.Конфигуратор,
105-
"инструмент выгрузки конфигурации в файлы (designer или icmd)");
105+
"инструмент выгрузки конфигурации в файлы (designer или ibcmd)");
106106

107107
ДобавитьОписаниеПараметра(Параметры,
108108
"РепозитарийГит",
@@ -265,7 +265,9 @@
265265

266266
УстановитьПараметрОбработкиДанныхИзСтруктуры("ВерсияПлатформы" , ПараметрыОбработки, "8.3");
267267
УстановитьПараметрОбработкиДанныхИзСтруктуры("ПутьККонфигурации" , ПараметрыОбработки);
268-
УстановитьПараметрОбработкиДанныхИзСтруктуры("ИнструментВыгрузки" , ПараметрыОбработки, Перечисления.ИнструментыВыгрузкиКонфигурацииВФайлы.Конфигуратор);
268+
УстановитьПараметрОбработкиДанныхИзСтруктуры("ИнструментВыгрузки",
269+
ПараметрыОбработки,
270+
Перечисления.ИнструментыВыгрузкиКонфигурацииВФайлы.Конфигуратор);
269271
УстановитьПараметрОбработкиДанныхИзСтруктуры("РепозитарийГит" , ПараметрыОбработки);
270272
УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяВеткиГит" , ПараметрыОбработки, "base1c");
271273
УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяАвтора" , ПараметрыОбработки, "1c");
@@ -419,6 +421,8 @@
419421
ВыгрузитьКонфигурациюВФайлыКонфигуратор(КаталогВыгрузкиИсходников);
420422
КонецЕсли;
421423

424+
ФайлКонфигурации = Новый Файл(ПутьККонфигурации);
425+
ФайлОписания = Новый Файл(ОбъединитьПути(ФайлКонфигурации.Путь, "description.json"));
422426
Если ФайлОписания.Существует() Тогда
423427
НовыйФайлОписания = ОбъединитьПути(РепозитарийГит, "description.json");
424428
КопироватьФайл(ФайлОписания.ПолноеИмя, НовыйФайлОписания);
@@ -490,20 +494,26 @@
490494
ФайлКонфигурации = Новый Файл(ПутьККонфигурации);
491495
ОписаниеВерсии = ОписаниеВерсииВКаталоге(ФайлКонфигурации.Путь);
492496

497+
Лог.Информация("[%1]: Используется утилита ibcmd");
493498
Лог.Информация("[%1]: Начало загрузки версии %2 (%3) конфигурации ""%4"" из файла ""%5""",
494499
ТипЗнч(ЭтотОбъект),
495500
ОписаниеВерсии.Версия,
496501
Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"),
497502
ОписаниеВерсии.Имя,
498503
ПутьККонфигурации);
499504

500-
ПутьКБазе = База_СтрокаСоединения;
501-
Если Лев(ВРег(ПутьКБазе), 2) = "/F" Тогда
505+
ПутьКБазе = СокрЛП(База_СтрокаСоединения);
506+
Если ПустаяСтрока(ПутьКБазе) Тогда
507+
ПутьКБазе = ОбъединитьПути(ТекущийКаталог(), "v8r_TempDB");
508+
ИначеЕсли Лев(ВРег(ПутьКБазе), 2) = "/F" Тогда
502509
ПутьКБазе = Сред(ПутьКБазе, 3);
503510
КонецЕсли;
504511

512+
ФС.ОбеспечитьПустойКаталог(ПутьКБазе);
513+
505514
УтилитаIBCMD = Новый УправлениеИБ(ВерсияПлатформы);
506515
УтилитаIBCMD.УстановитьПараметрыФайловойИБ(ПутьКБазе);
516+
УтилитаIBCMD.СоздатьИБ();
507517
УтилитаIBCMD.ЗагрузитьКонфигурацию(ПутьККонфигурации);
508518

509519
Лог.Информация("[%1]: Начало выгрузки в файлы версии %2 (%3) конфигурации ""%4"" %5 ""%6""",
@@ -512,9 +522,23 @@
512522
Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"),
513523
ОписаниеВерсии.Имя,
514524
?(КонвертироватьВФорматЕДТ, "во временный каталог", "в репозитарий"),
515-
КаталогВыгрузкиИсходников);
516-
517-
УтилитаIBCMD.ВыгрузитьКонфигурациюВФайлы(КаталогВыгрузкиИсходников);
525+
КаталогВыгрузки);
526+
527+
СписокОбъектов = Новый Массив();
528+
ФайлСпискаОбъектов = Новый Файл(ПутьКСпискуОбъектов);
529+
Если ФайлСпискаОбъектов.Существует() Тогда
530+
Текст = Новый ТекстовыйДокумент();
531+
Текст.Прочитать(ПутьКСпискуОбъектов);
532+
Для й = 1 По Текст.КоличествоСтрок() Цикл
533+
СписокОбъектов.Добавить(Текст.ПолучитьСтроку(й));
534+
КонецЦикла;
535+
КонецЕсли;
536+
537+
Если СписокОбъектов.Количество() = 0 Тогда
538+
УтилитаIBCMD.ВыгрузитьКонфигурациюВФайлы(КаталогВыгрузки, , , Ложь);
539+
Иначе
540+
УтилитаIBCMD.ВыгрузитьОбъектыКонфигурацииВФайлы(КаталогВыгрузки, Ложь, СписокОбъектов);
541+
КонецЕсли;
518542

519543
КонецПроцедуры // ВыгрузитьКонфигурациюВФайлыIBCMD()
520544

@@ -523,6 +547,7 @@
523547
ФайлКонфигурации = Новый Файл(ПутьККонфигурации);
524548
ОписаниеВерсии = ОписаниеВерсииВКаталоге(ФайлКонфигурации.Путь);
525549

550+
Лог.Информация("[%1]: Используется Конфигуратор");
526551
Лог.Информация("[%1]: Начало загрузки версии %2 (%3) конфигурации ""%4"" из файла ""%5""",
527552
ТипЗнч(ЭтотОбъект),
528553
ОписаниеВерсии.Версия,
@@ -542,9 +567,13 @@
542567
Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"),
543568
ОписаниеВерсии.Имя,
544569
?(КонвертироватьВФорматЕДТ, "во временный каталог", "в репозитарий"),
545-
КаталогВыгрузкиИсходников);
570+
КаталогВыгрузки);
546571

547-
Конфигуратор.ВыгрузитьКонфигурациюВФайлы(КаталогВыгрузкиИсходников);
572+
Конфигуратор.ВыгрузитьКонфигурациюВФайлы(КаталогВыгрузки
573+
, // ФорматВыгрузки = ""
574+
, // ТолькоИзмененные = Ложь
575+
, // ПутьКФайлуВерсийДляСравнения = ""
576+
, ПутьКСпискуОбъектов);
548577

549578
КонецПроцедуры // ВыгрузитьКонфигурациюВФайлыКонфигуратор()
550579

@@ -595,6 +624,12 @@
595624
.ТСтрока()
596625
.ВОкружении("YARD_CF_PATH");
597626

627+
Команда.Опция("et export-tool",
628+
Перечисления.ИнструментыВыгрузкиКонфигурацииВФайлы.Конфигуратор,
629+
"инструмент выгрузки конфигурации в файлы (designer или ibcmd)")
630+
.ТСтрока()
631+
.ВОкружении("YARD_EXPORT_TOOL");
632+
598633
Команда.Опция("g git-path", "", "путь к репозитарию git")
599634
.ТСтрока()
600635
.ВОкружении("YARD_GIT_PATH");
@@ -986,7 +1021,7 @@
9861021
Для каждого ФайлПодавления Из ФайлыПодавленияПроверок Цикл
9871022
ОтносительныйПутьФайла = ФС.ОтносительныйПуть(КаталогВыгрузки, ФайлПодавления.Путь);
9881023
КаталогКСохранению = ОбъединитьПути(КаталогСНастройками, ОтносительныйПутьФайла);
989-
ФС.ОбеспечитьКаталог(КаталогКСохранению);
1024+
Распаковщик.ОбеспечитьКаталог(КаталогКСохранению);
9901025
НовыйПутьФайла = ОбъединитьПути(КаталогКСохранению, ФайлПодавления.Имя);
9911026
КопироватьФайл(ФайлПодавления.ПолноеИмя, НовыйПутьФайла);
9921027
КонецЦикла;

src/Классы/ЗагрузчикРелизов1С.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
// (проверяются файлы description.json)
4747
Перем ОграничениеКоличества; // Число - ограничение количества загружаемых за 1 раз версий
4848
Перем ТолькоСкачать; // Булево - только скачать дистрибутив с сайта
49-
Перем СкачиватьНовоеВВерсии; // Булево - скачивать "Новое в версии" с сайта
49+
Перем СкачиватьНовоеВВерсии; // Булево - скачивать "Новое в версии" с сайта
5050

5151
Перем РаспаковыватьEFD; // Булево - Истина - если загруженный архив содержит упакованный
5252
// шаблон конфигурации (содержит файл 1cv8.efd),

0 commit comments

Comments
 (0)