From cc2300a074a59554de91262bf53f16b8891e9010 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D0=BF=D1=80=D0=B0=D0=BB=D0=BE=D0=B2=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sun, 4 Oct 2020 21:14:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=BD=D1=82=D0=B5=D0=B3=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20/=20=D0=A0=D0=B0=D0=B7=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D1=82=D1=8B=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 +- Скрипты/ИнтеграцияРазвертывание.sbsl | 150 ++++++++++++++++++--------- 2 files changed, 109 insertions(+), 48 deletions(-) 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)