diff --git a/README.md b/README.md
index bffd900..ac9e7e7 100644
--- a/README.md
+++ b/README.md
@@ -4,10 +4,15 @@
#### ОбновлениеПлатформ.sbsl
В РАЗРАБОТКЕ.
Скрипт, который позволяет обновить платформы, установленные на компьютере.
-Скрипт проверяет список последний версий платформы на сайте, смотрит список баз компьютера, список установленных платформ. После чего определяет, какие версии платформ нужно установить, а какие - удалить.
+Скрипт проверяет список последний версий платформы на сайте, смотрит список баз компьютера, список установленных платформ. После чего определяет, какие версии платформ нужно установить, а какие - удалить.
- метод Скрипт() - запрашивает имя и пароль пользователя через консоль
- метод ОбновитьПлатформы() - использует имя пользователя и пароль из параметров запуска
+#### ИнтеграцияРазвертывание.sbsl.sbsl
+В РАЗРАБОТКЕ.
+Скрипт для CI/CD.
+- метод СобратьИзИсходниковФайлКонфигурации() - преобразует указанную версию конфигурации EDT в CF файл выбранной версией платформы
+
### Библиотеки
#### ЗапускСкриптов.sbsl
Скрипт содержит методы, позволяющие вызывать из своего скрипта другие скрипты.
diff --git a/Скрипты/ИнтеграцияРазвертывание.sbsl b/Скрипты/ИнтеграцияРазвертывание.sbsl
index 74e7a24..6c0b962 100644
--- a/Скрипты/ИнтеграцияРазвертывание.sbsl
+++ b/Скрипты/ИнтеграцияРазвертывание.sbsl
@@ -19,6 +19,13 @@
структура ОписаниеУправляющегоФайла
знч путьКРабочейОбласти: Строка
знч путьКФайламКонфигурации: Строка
+ знч путьКИБ: Строка
+
+ пер конфигурацияЕДТЗагружена: Булево
+ пер конфигурация1СВыгружена: Булево
+ пер ИБСоздана: Булево
+
+ конструктор(путьКРабочейОбласти, путьКФайламКонфигурации, путьКИБ)
;
@@ -27,19 +34,26 @@
если ОТЛАДКА
Консоль.Записать("Управляющий файл: " + имяУправляющегоФайла)
+ Консоль.Записать("")
;
- знч временныйПутьКРабочейОбласти = "/var/folders/fh/dr6rmj6n4rz5wzy30n7047380000gn/T/cicd_ws1889244632607481299"
- знч временныйПутьКФайламКонфигурации =
- "/var/folders/fh/dr6rmj6n4rz5wzy30n7047380000gn/T/cicd_1c_xml2547513256186380452"
-// знч временныйПутьКРабочейОбласти = Файлы.СоздатьВременныйКаталог("cicd_ws", Ложь).Путь
-// знч временныйПутьКФайламКонфигурации = Файлы.СоздатьВременныйКаталог("cicd_1c_xml", Ложь).Путь
+ знч временныйПутьКРабочейОбласти = Файлы.СоздатьВременныйКаталог("cicd_ws", Ложь).Путь
+ знч временныйПутьКФайламКонфигурации = Файлы.СоздатьВременныйКаталог("cicd_1c_xml", Ложь).Путь
+ знч временныйПутьКИБ = Файлы.СоздатьВременныйКаталог("cicd_1cd", Ложь).Путь
если ОТЛАДКА
Консоль.Записать("Рабочая область: " + временныйПутьКРабочейОбласти)
Консоль.Записать("Файлы конфигурации: " + временныйПутьКФайламКонфигурации)
+ Консоль.Записать("ИБ: " + временныйПутьКИБ)
;
- знч содержимоеФайла = новый ОписаниеУправляющегоФайла(временныйПутьКРабочейОбласти, временныйПутьКФайламКонфигурации)
+ знч содержимоеФайла = новый ОписаниеУправляющегоФайла(временныйПутьКРабочейОбласти, временныйПутьКФайламКонфигурации,
+ временныйПутьКИБ)
+
+ содержимоеФайла.конфигурацияЕДТЗагружена = Истина
+ содержимоеФайла.конфигурация1СВыгружена = не Файлы.КаталогПустой(временныйПутьКРабочейОбласти) и не Файлы.КаталогПустой(
+ временныйПутьКФайламКонфигурации)
+ содержимоеФайла.ИБСоздана = не Файлы.КаталогПустой(временныйПутьКИБ)
+
ЗаписатьУправляющийФайл(содержимоеФайла, имяУправляющегоФайла)
если ОТЛАДКА
@@ -52,6 +66,10 @@
метод ПрочитатьУправляющийФайл(имяУправляющегоФайла: Строка): ОписаниеУправляющегоФайла
пер путьКРабочейОбласти: Строка
пер путьКФайламКонфигурации: Строка
+ пер путьКИБ: Строка
+ пер конфигурацияЕДТЗагружена: Булево
+ пер конфигурация1СВыгружена: Булево
+ пер ИБСоздана: Булево
знч управляющийФайл = новый Файл(имяУправляющегоФайла)
знч потокЧтения = управляющийФайл.ОткрытьПотокЧтения()
@@ -70,13 +88,29 @@
чтение.Следующий()
путьКФайламКонфигурации = чтение.Значение
+ когда "ПутьКИБ"
+ чтение.Следующий()
+ путьКИБ = чтение.Значение
+
+ когда "КонфигурацияЕДТЗагружена"
+ чтение.Следующий()
+ конфигурацияЕДТЗагружена = чтение.ПрочитатьСодержимоеКакБулево()
+
+ когда "Конфигурация1СВыгружена"
+ чтение.Следующий()
+ конфигурация1СВыгружена = чтение.ПрочитатьСодержимоеКакБулево()
+
+ когда "ИБСоздана"
+ чтение.Следующий()
+ ИБСоздана = чтение.ПрочитатьСодержимоеКакБулево()
+
иначе
;
;
потокЧтения.Закрыть()
- знч содержимоеФайла = новый ОписаниеУправляющегоФайла(путьКРабочейОбласти, путьКФайламКонфигурации)
+ знч содержимоеФайла = новый ОписаниеУправляющегоФайла(путьКРабочейОбласти, путьКФайламКонфигурации, путьКИБ)
возврат содержимоеФайла
;
@@ -87,8 +121,15 @@
знч запись = новый ЗаписьJson(потокЗаписи)
запись.ЗаписатьНачалоОбъекта()
+
запись.Записать("ПутьКРабочейОбласти", содержимоеФайла.путьКРабочейОбласти)
запись.Записать("ПутьКФайламКонфигурации", содержимоеФайла.путьКФайламКонфигурации)
+ запись.Записать("ПутьКИБ", содержимоеФайла.путьКИБ)
+
+ запись.Записать("КонфигурацияЕДТЗагружена", содержимоеФайла.конфигурацияЕДТЗагружена)
+ запись.Записать("Конфигурация1СВыгружена", содержимоеФайла.конфигурация1СВыгружена)
+ запись.Записать("ИБСоздана", содержимоеФайла.ИБСоздана)
+
запись.ЗаписатьКонецОбъекта()
потокЗаписи.Закрыть()
@@ -97,67 +138,77 @@
метод Завершить(имяУправляющегоФайла: Строка)
знч содержимоеФайла = ПрочитатьУправляющийФайл(имяУправляющегоФайла)
-// Файлы.Удалить(содержимоеФайла.путьКРабочейОбласти)
-// Файлы.Удалить(содержимоеФайла.путьКФайламКонфигурации)
+ Файлы.Удалить(содержимоеФайла.путьКРабочейОбласти)
+ Файлы.Удалить(содержимоеФайла.путьКФайламКонфигурации)
+ Файлы.Удалить(содержимоеФайла.путьКИБ)
+
Файлы.Удалить(имяУправляющегоФайла)
;
метод СкачатьКоммитИзРепозитория()
;
-метод СобратьИзИсходниковФайлКонфигурации(путьККонфигурацииЕДТ: Строка, путьКФайлуCF: Строка, версияПлатформы: Строка)
- пер кодВозврата: Число
-
- Ring_EDT_PlatformVersions()
-
- если Истина
- возврат
- ;
-
- знч имяУправляющегоФайла = Инициализировать()
-
- знч содержимоеФайла = ПрочитатьУправляющийФайл(имяУправляющегоФайла)
-
+метод ПутьКПлатформе(версияПлатформы: Строка): Строка
знч максимальныеПлатформы = МаксимальныеПлатформы()
- знч путьКПлатформе = максимальныеПлатформы.Получить(версияПлатформы)
+ пер путьКПлатформе = максимальныеПлатформы.Получить(версияПлатформы)
если путьКПлатформе == Неопределено
знч текстОшибки = Строки.Шаблон("Не найдена установленная платформа $0", версияПлатформы)
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
;
+ путьКПлатформе = путьКПлатформе + Файлы.СимволРазделителя + "bin" + Файлы.СимволРазделителя + "1cv8"
- знч временныйПутьКИБ = Файлы.СоздатьВременныйКаталог("cicd_1cd", Ложь).Путь
+ возврат путьКПлатформе
+;
- Консоль.Записать("Начало экспорта")
- кодВозврата = Ring_EDT_Export(путьККонфигурацииЕДТ, содержимоеФайла.путьКФайламКонфигурации, содержимоеФайла
- .путьКРабочейОбласти)
- если кодВозврата != 0
- Завершить(имяУправляющегоФайла)
- возврат
+метод СобратьИзИсходниковФайлКонфигурации(путьККонфигурацииЕДТ: Строка, путьКФайлуCF: Строка, версияПлатформы: Строка)
+ пер кодВозврата: Число
+
+ знч имяУправляющегоФайла = Инициализировать()
+ знч содержимоеФайла = ПрочитатьУправляющийФайл(имяУправляющегоФайла)
+
+ знч путьКПлатформе = ПутьКПлатформе(версияПлатформы)
+
+ если не содержимоеФайла.конфигурация1СВыгружена
+ Консоль.Записать("Выгрузка конфигурации ЕДТ в формат 1С")
+ кодВозврата = Ring_EDT_Export(путьККонфигурацииЕДТ, содержимоеФайла.путьКФайламКонфигурации, содержимоеФайла.путьКРабочейОбласти)
+ содержимоеФайла.конфигурация1СВыгружена = кодВозврата == 0
+ ЗаписатьУправляющийФайл(содержимоеФайла, имяУправляющегоФайла)
+ если кодВозврата != 0
+ Завершить(имяУправляющегоФайла)
+ возврат
+ ;
;
- Консоль.Записать("Создание пустой ИБ")
- кодВозврата = E1c_CreateInfobase(путьКПлатформе, временныйПутьКИБ)
- если кодВозврата != 0
- Завершить(имяУправляющегоФайла)
- возврат
+ если не содержимоеФайла.ИБСоздана
+ Консоль.Записать("Создание пустой ИБ")
+ кодВозврата = E1c_CreateInfobase(путьКПлатформе, содержимоеФайла.путьКИБ)
+ если кодВозврата != 0
+ содержимоеФайла.ИБСоздана = Ложь
+ ЗаписатьУправляющийФайл(содержимоеФайла, имяУправляющегоФайла)
+ Завершить(имяУправляющегоФайла)
+ возврат
+ ;
+
+ Консоль.Записать("Загрузка конфигурации из XML в ИБ")
+ кодВозврата = E1c_LoadConfigFromFiles(путьКПлатформе, содержимоеФайла.путьКИБ, содержимоеФайла.путьКФайламКонфигурации)
+ содержимоеФайла.ИБСоздана = кодВозврата == 0
+ ЗаписатьУправляющийФайл(содержимоеФайла, имяУправляющегоФайла)
+ если кодВозврата != 0
+ Завершить(имяУправляющегоФайла)
+ возврат
+ ;
;
- Консоль.Записать("Загрузить Конфигурацию XML в ИБ")
- кодВозврата = E1c_LoadConfigFromFiles(путьКПлатформе, временныйПутьКИБ, содержимоеФайла.путьКФайламКонфигурации)
- если кодВозврата != 0
- Завершить(имяУправляющегоФайла)
- возврат
- ;
-
- Консоль.Записать("Сохранить CF")
- кодВозврата = E1c_DumpCfg(путьКПлатформе, временныйПутьКИБ, путьКФайлуCF)
+ Консоль.Записать("Сохранение CF")
+ кодВозврата = E1c_DumpCfg(путьКПлатформе, содержимоеФайла.путьКИБ, путьКФайлуCF)
если кодВозврата != 0
Завершить(имяУправляющегоФайла)
возврат
;
Завершить(имяУправляющегоФайла)
+ Консоль.Записать("CF файл собран")
;
метод СобратьИзИсходниковФайлРасширения()
@@ -178,6 +229,8 @@
;
параметрыПроцесса.Добавить("ring")
+ параметрыПроцесса.Добавить("-l")
+ параметрыПроцесса.Добавить("error")
если версияЕДТ.Пусто()
параметрыПроцесса.Добавить("edt")
иначе
@@ -234,7 +287,8 @@
метод E1c_LoadConfigFromFiles(имяФайлаПлатформы: Строка, путьКИБ: Строка, путьККонфигурацииПлатформы: Строка): Число
пер параметрыПроцесса = новый Массив()
параметрыПроцесса.Добавить("DESIGNER")
- параметрыПроцесса.Добавить("File=" + путьКИБ)
+ параметрыПроцесса.Добавить("/F")
+ параметрыПроцесса.Добавить(путьКИБ)
параметрыПроцесса.Добавить("/LoadConfigFromFiles")
параметрыПроцесса.Добавить(путьККонфигурацииПлатформы)
параметрыПроцесса.Добавить("/UpdateDBCfg")
@@ -245,7 +299,8 @@
метод E1c_DumpCfg(имяФайлаПлатформы: Строка, путьКИБ: Строка, путьКФайлуCF: Строка): Число
пер параметрыПроцесса = новый Массив()
параметрыПроцесса.Добавить("DESIGNER")
- параметрыПроцесса.Добавить("File=" + путьКИБ)
+ параметрыПроцесса.Добавить("/F")
+ параметрыПроцесса.Добавить(путьКИБ)
параметрыПроцесса.Добавить("/DumpCfg")
параметрыПроцесса.Добавить(путьКФайлуCF)
@@ -255,7 +310,8 @@
метод E1c_CreateDistributionFiles(имяФайлаПлатформы: Строка, путьКИБ: Строка, путьКФайлуCF: Строка): Число
пер параметрыПроцесса = новый Массив()
параметрыПроцесса.Добавить("DESIGNER")
- параметрыПроцесса.Добавить("File=" + путьКИБ)
+ параметрыПроцесса.Добавить("/F")
+ параметрыПроцесса.Добавить(путьКИБ)
параметрыПроцесса.Добавить("/CreateDistributionFiles")
параметрыПроцесса.Добавить("-cffile")
параметрыПроцесса.Добавить(путьКФайлуCF)