|
15 | 15 | #Использовать 1commands
|
16 | 16 | #Использовать v8unpack
|
17 | 17 | #Использовать gitrunner
|
| 18 | +#Использовать fs |
18 | 19 |
|
19 | 20 | Перем Лог;
|
20 | 21 | Перем мФайлПрограммыРаспаковки;
|
|
32 | 33 | Перем ДоменПочтыДляGitПоУмолчанию Экспорт;
|
33 | 34 | Перем ВерсияПлатформы Экспорт;
|
34 | 35 | Перем ПереименовыватьФайлМодуляОбычнойФормы Экспорт;
|
| 36 | +Перем ТолькоИзменения Экспорт; |
35 | 37 |
|
36 | 38 | // Выполняет выгрузку конфигурации в файлы
|
37 | 39 | // и распределение файлов по каталогам согласно иерархии метаданных.
|
|
49 | 51 | СоздатьКаталог(ВыходнойКаталог);
|
50 | 52 | КонецЕсли;
|
51 | 53 |
|
| 54 | + КаталогВыгрузки = ?(ТолькоИзменения, ВыходнойКаталог, КаталогПлоскойВыгрузки); |
52 | 55 | Попытка
|
53 |
| - ВыгрузитьМодулиКонфигурации(ФайлКонфигурации, КаталогПлоскойВыгрузки, Формат); |
54 |
| - РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогПлоскойВыгрузки, ВыходнойКаталог, Формат); |
| 56 | + ВыгрузитьМодулиКонфигурации(ФайлКонфигурации, КаталогВыгрузки, Формат); |
| 57 | + Если НЕ ТолькоИзменения Тогда |
| 58 | + РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогПлоскойВыгрузки, ВыходнойКаталог, Формат); |
| 59 | + Иначе |
| 60 | + МассивФайлов = НайтиФайлы(КаталогВыгрузки, "*.bin", Истина); |
| 61 | + Для каждого Файл из МассивФайлов Цикл |
| 62 | + Если Нрег(Файл.Имя) = "form.bin" Тогда |
| 63 | + КаталогФормы = ОбъединитьПути(Файл.Путь, Файл.ИмяБезРасширения); |
| 64 | + СоздатьКаталог(КаталогФормы); |
| 65 | + ФС.ОбеспечитьПустойКаталог(КаталогФормы); |
| 66 | + РаспаковатьКонтейнерМетаданных(Файл.ПолноеИмя, КаталогФормы); |
| 67 | + КонецЕсли; |
| 68 | + КонецЦикла; |
| 69 | + |
| 70 | + Если Новый Файл(ОбъединитьПути(КаталогВыгрузки, "renames.txt")).Существует() Тогда |
| 71 | + УдалитьВременныеФайлыПриНеобходимости(ОбъединитьПути(КаталогВыгрузки, "renames.txt")); |
| 72 | + КонецЕсли; |
| 73 | + |
| 74 | + КонецЕсли; |
55 | 75 | Исключение
|
56 | 76 | УдалитьВременныеФайлыПриНеобходимости(КаталогПлоскойВыгрузки);
|
57 | 77 | ВызватьИсключение;
|
|
115 | 135 | СоздатьКаталог(КаталогПлоскойВыгрузки);
|
116 | 136 | КонецЕсли;
|
117 | 137 |
|
118 |
| - МассивФайлов = НайтиФайлы(КаталогПлоскойВыгрузки, ПолучитьМаскуВсеФайлы()); |
119 |
| - Если МассивФайлов.Количество() <> 0 Тогда |
120 |
| - ВызватьИсключение "В каталоге <"+КаталогПлоскойВыгрузки+"> не должно быть файлов"; |
121 |
| - КонецЕсли; |
| 138 | + Если НЕ ТолькоИзменения Тогда |
| 139 | + МассивФайлов = НайтиФайлы(КаталогПлоскойВыгрузки, ПолучитьМаскуВсеФайлы()); |
| 140 | + Если МассивФайлов.Количество() <> 0 Тогда |
| 141 | + ВызватьИсключение "В каталоге <"+КаталогПлоскойВыгрузки+"> не должно быть файлов"; |
| 142 | + КонецЕсли; |
122 | 143 |
|
123 |
| - ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска(); |
124 |
| - ПараметрыЗапуска.Добавить("/Visible"); |
125 |
| - ПараметрДампаКонфигурации = СтрШаблон("/DumpConfigToFiles ""%1"" -format %2", КаталогПлоскойВыгрузки, ТРег(Формат)); |
126 |
| - ПараметрыЗапуска.Добавить(ПараметрДампаКонфигурации); |
| 144 | + ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска(); |
| 145 | + ПараметрыЗапуска.Добавить("/Visible"); |
| 146 | + ПараметрДампаКонфигурации = СтрШаблон("/DumpConfigToFiles ""%1"" -format %2", КаталогПлоскойВыгрузки, ТРег(Формат)); |
| 147 | + ПараметрыЗапуска.Добавить(ПараметрДампаКонфигурации); |
| 148 | + |
| 149 | + ВыполнитьКомандуКонфигуратора(Конфигуратор, ПараметрыЗапуска); |
127 | 150 |
|
128 |
| - ВыполнитьКомандуКонфигуратора(Конфигуратор, ПараметрыЗапуска); |
| 151 | + Иначе |
| 152 | + ТекущийФайлВерсийМетаданных = Новый Файл(ОбъединитьПути(КаталогПлоскойВыгрузки,"ConfigDumpInfo.xml")); |
| 153 | + ТолькоИзмененияЕслиФайлЕсть = ?(ТекущийФайлВерсийМетаданных.Существует(), ТолькоИзменения, Ложь); |
| 154 | + Попытка |
| 155 | + Конфигуратор.ВыгрузитьКонфигурациюВФайлы(КаталогПлоскойВыгрузки, , ТолькоИзмененияЕслиФайлЕсть); |
| 156 | + Исключение |
| 157 | + |
| 158 | + ОписаниеОшибки = ОписаниеОшибки(); |
| 159 | + Если ПроверитьОписаниеОшибкиНаКритичность(ОписаниеОшибки) Тогда |
| 160 | + УдалитьВременныеФайлыПриНеобходимости(Конфигуратор.КаталогСборки()); |
| 161 | + ВызватьИсключение; |
| 162 | + КонецЕсли; |
| 163 | + КонецПопытки; |
| 164 | + |
| 165 | + УдалитьВременныеФайлыПриНеобходимости(Конфигуратор.КаталогСборки()); |
129 | 166 |
|
| 167 | + КонецЕсли; |
| 168 | + |
130 | 169 | КонецПроцедуры
|
131 | 170 |
|
132 | 171 | Функция ПолучитьМенеджерКонфигуратора()
|
|
251 | 290 |
|
252 | 291 | КопироватьФайл(Файл.ПолноеИмя, НовыйФайл.ПолноеИмя);
|
253 | 292 |
|
254 |
| - Если Нрег(Прав(Файл.ПолноеИмя, 5)) = ".form" Или Нрег(Файл.Имя) = "form.bin" Тогда |
| 293 | + Если Нрег(Файл.Имя) = "form.bin" Тогда |
255 | 294 | КаталогФормы = ОбъединитьПути(НовыйКаталог.ПолноеИмя, НовыйФайл.ИмяБезРасширения);
|
256 | 295 | СоздатьКаталог(КаталогФормы);
|
257 | 296 | РаспаковатьКонтейнерМетаданных(НовыйФайл.ПолноеИмя, КаталогФормы, Переименования, ФайлВыгрузкиКаталог.ПолноеИмя + ПолучитьРазделительПути());
|
|
403 | 442 |
|
404 | 443 | КонецПроцедуры
|
405 | 444 |
|
406 |
| -Процедура РаспаковатьКонтейнерМетаданных(Знач ФайлРаспаковки, Знач КаталогРаспаковки, Знач Переименования, Знач КорневойКаталог) |
| 445 | +Процедура РаспаковатьКонтейнерМетаданных(Знач ФайлРаспаковки, Знач КаталогРаспаковки, Знач Переименования = "", Знач КорневойКаталог = "") |
407 | 446 |
|
408 | 447 | dllРаспаковать(ФайлРаспаковки, КаталогРаспаковки);
|
409 | 448 | ВыполнитьСборкуМусора(); // см. камент к процедуре dllРаспаковать
|
|
415 | 454 | СтароеИмяФайла = ФайлМодуля.ПолноеИмя;
|
416 | 455 | НовоеИмяФайла = ОбъединитьПути(ФайлМодуля.Путь, "Module.bsl");
|
417 | 456 | ПереместитьФайл(СтароеИмяФайла, НовоеИмяФайла);
|
418 |
| - ДобавитьПереименование(Переименования, |
419 |
| - СтрЗаменить(СтароеИмяФайла, КорневойКаталог, ""), |
420 |
| - СтрЗаменить(НовоеИмяФайла, КорневойКаталог, "")); |
421 |
| - |
| 457 | + Если НЕ ПустаяСтрока(Переименования) Тогда |
| 458 | + Если ПустаяСтрока(КорневойКаталог) Тогда |
| 459 | + ВызватьИсключение |
| 460 | + "РаспаковатьКонтейнерМетаданных при заполненном Переименования ожидали и не пустое КорневойКаталог"; |
| 461 | + КонецЕсли; |
| 462 | + ДобавитьПереименование(Переименования, |
| 463 | + СтрЗаменить(СтароеИмяФайла, КорневойКаталог, ""), |
| 464 | + СтрЗаменить(НовоеИмяФайла, КорневойКаталог, "")); |
| 465 | + КонецЕсли; |
422 | 466 | КонецЦикла;
|
423 | 467 |
|
424 | 468 | КонецЕсли;
|
|
1421 | 1465 | Возврат КоличествоЦикловОжиданияЛицензииПоУмолчанию;
|
1422 | 1466 | КонецФункции
|
1423 | 1467 |
|
1424 |
| - |
1425 | 1468 | //////////////////////////////////////////////////////////////////////////////////////////////
|
1426 | 1469 | СистемнаяИнформация = Новый СистемнаяИнформация;
|
1427 | 1470 | ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
|
|
1431 | 1474 | ДоменПочтыДляGitПоУмолчанию = "localhost";
|
1432 | 1475 | УдалятьВременныеФайлы = Ложь;
|
1433 | 1476 | КоличествоЦикловОжиданияЛицензииПоУмолчанию = 1;
|
| 1477 | +ТолькоИзменения = Ложь; |
0 commit comments