From ed1ffd36e1b1d462a3f68246b05fb9932d1b09ca Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 9 Jun 2026 18:20:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D1=83=D1=8E?= =?UTF-8?q?=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8E=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D1=82=D1=84=D0=BE=D1=80=D0=BC=D1=8B=201=D0=A1=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=B2=D1=8B=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B2=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавлены глобальные параметры приложения --export-v8version и --export-v8-path, позволяющие использовать отдельную версию или путь к платформе 1С на этапе выгрузки конфигурации в файлы. Команда sync передает новые параметры в МенеджерСинхронизации. Менеджер применяет основную платформу при работе с хранилищем, а платформу выгрузки - перед выгрузкой версии в исходники. Документация и BDD-сценарии обновлены для нового поведения. --- docs/init.md | 18 ++-- docs/sync.md | 16 ++-- features/cmd/v8path.feature | 18 +++- features/core/step_definitions/shared.os | 9 ++ features/core/sync.core.feature | 9 ++ readme.md | 20 +++-- src/cmd/gitsync.os | 8 ++ ...74\320\260\320\275\320\264\320\260Sync.os" | 2 + ...20\266\320\265\320\275\320\270\321\217.os" | 10 +++ ...20\267\320\260\321\206\320\270\320\270.os" | 89 ++++++++++++++++++- 10 files changed, 176 insertions(+), 23 deletions(-) diff --git a/docs/init.md b/docs/init.md index c2941b84..f1791358 100644 --- a/docs/init.md +++ b/docs/init.md @@ -22,12 +22,14 @@ init (синоним i) - инициализация нового хранили ``` -------------- ### Глобальные переменные окружения -| Имя | Описание | -|---------------------|--------------------------------------------------------| -| `GITSYNC_V8VERSION` | маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.) | -| `GITSYNC_VERBOSE` | вывод отладочной информации в процессе выполнения | -| `GITSYNC_TEMP` | путь к каталогу временных файлов | -| `GITSYNC_EMAIL` | домен почты для пользователей git | +| Имя | Описание | +|-----------------------------|-----------------------------------------------------------------------------| +| `GITSYNC_V8VERSION` | маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.) | +| `GITSYNC_EXPORT_V8VERSION` | маска версии платформы 1С для выгрузки конфигурации в файлы | +| `GITSYNC_EXPORT_V8_PATH` | путь к исполняемому файлу платформы 1С для выгрузки конфигурации в файлы | +| `GITSYNC_VERBOSE` | вывод отладочной информации в процессе выполнения | +| `GITSYNC_TEMP` | путь к каталогу временных файлов | +| `GITSYNC_EMAIL` | домен почты для пользователей git | -------------- ### Переменные окружения команды @@ -113,6 +115,7 @@ init (синоним i) - инициализация нового хранили export GITSYNC_STORAGE_USER=Админ export GITSYNC_STORAGE_PASSWORD=Пароль export GITSYNC_V8VERSION=8.3.7 + export GITSYNC_EXPORT_V8VERSION=8.3.27 export GITSYNC_VERBOSE=true #Можно использовать Да/Ложь/Нет/Истина export GITSYNC_TEMP=./temp/sync gitsync i @@ -126,9 +129,10 @@ init (синоним i) - инициализация нового хранили set GITSYNC_STORAGE_USER=Админ set GITSYNC_STORAGE_PASSWORD=Пароль set GITSYNC_V8VERSION=8.3.7 + set GITSYNC_EXPORT_V8VERSION=8.3.27 set GITSYNC_VERBOSE=true #Можно использовать Да/Ложь/Нет/Истина set GITSYNC_TEMP=./temp/sync gitsync i ``` - Данная команда создаст новый репозиторий git в каталоге `C:/work_dir/` из хранилища 1С по пути `C:/Хранилище_1С/` \ No newline at end of file + Данная команда создаст новый репозиторий git в каталоге `C:/work_dir/` из хранилища 1С по пути `C:/Хранилище_1С/` diff --git a/docs/sync.md b/docs/sync.md index eff6b283..b88e7976 100644 --- a/docs/sync.md +++ b/docs/sync.md @@ -22,12 +22,14 @@ sync (синоним s) - Выполняет синхронизацию хран ``` ### Глобальные переменные окружения -| Имя | Описание | -|---------------------|--------------------------------------------------------| -| `GITSYNC_V8VERSION` | маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.) | -| `GITSYNC_VERBOSE` | вывод отладочной информации в процессе выполнения | -| `GITSYNC_TEMP` | путь к каталогу временных файлов | -| `GITSYNC_EMAIL` | домен почты для пользователей git | +| Имя | Описание | +|-----------------------------|-----------------------------------------------------------------------------| +| `GITSYNC_V8VERSION` | маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.) | +| `GITSYNC_EXPORT_V8VERSION` | маска версии платформы 1С для выгрузки конфигурации в файлы | +| `GITSYNC_EXPORT_V8_PATH` | путь к исполняемому файлу платформы 1С для выгрузки конфигурации в файлы | +| `GITSYNC_VERBOSE` | вывод отладочной информации в процессе выполнения | +| `GITSYNC_TEMP` | путь к каталогу временных файлов | +| `GITSYNC_EMAIL` | домен почты для пользователей git | ### Переменные окружения команды @@ -96,6 +98,7 @@ sync (синоним s) - Выполняет синхронизацию хран export GITSYNC_STORAGE_USER=Admin export GITSYNC_STORAGE_PASSWORD=Secret export GITSYNC_V8VERSION=8.3.7 + export GITSYNC_EXPORT_V8VERSION=8.3.27 export GITSYNC_VERBOSE=true #Можно использовать Да/Ложь/Нет/Истина export GITSYNC_TEMP=./temp/sync gitsync s @@ -108,6 +111,7 @@ sync (синоним s) - Выполняет синхронизацию хран set GITSYNC_STORAGE_USER=Admin set GITSYNC_STORAGE_PASSWORD=Secret set GITSYNC_V8VERSION=8.3.7 + set GITSYNC_EXPORT_V8VERSION=8.3.27 set GITSYNC_VERBOSE=true #Можно использовать Да/Ложь/Нет/Истина set GITSYNC_TEMP=./temp/sync diff --git a/features/cmd/v8path.feature b/features/cmd/v8path.feature index 80016926..a50a1c91 100644 --- a/features/cmd/v8path.feature +++ b/features/cmd/v8path.feature @@ -29,4 +29,20 @@ Тогда Вывод команды "gitsync" содержит "Используется путь к платформе 1С" И Вывод команды "gitsync" содержит "Завершена синхронизации с git" И Вывод команды "gitsync" не содержит "Внешнее исключение" - И Код возврата команды "gitsync" равен 0 \ No newline at end of file + И Код возврата команды "gitsync" равен 0 + +Сценарий: Синхронизация хранилища с отдельным путем к платформе для выгрузки + Допустим Я создаю временный каталог и сохраняю его в переменной "ВременнаяДиректория" + И Я добавляю параметр "--tempdir" для команды "gitsync" из переменной "ВременнаяДиректория" + И Я добавляю параметр "--v8-path" для команды "gitsync" из переменной "ПутьКПлатформе1С" + И Я добавляю параметр "--export-v8-path" для команды "gitsync" из переменной "ПутьКПлатформе1С" + И Я добавляю параметр "-v" для команды "gitsync" + И Я добавляю параметр "sync" для команды "gitsync" + И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С" + И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников" + Когда Я выполняю команду "gitsync" + Тогда Вывод команды "gitsync" содержит "Для работы с хранилищем используется путь к платформе 1С" + И Вывод команды "gitsync" содержит "Для выгрузки используется путь к платформе 1С" + И Вывод команды "gitsync" содержит "Завершена синхронизации с git" + И Вывод команды "gitsync" не содержит "Внешнее исключение" + И Код возврата команды "gitsync" равен 0 diff --git a/features/core/step_definitions/shared.os b/features/core/step_definitions/shared.os index 24349afa..f7a8b08b 100644 --- a/features/core/step_definitions/shared.os +++ b/features/core/step_definitions/shared.os @@ -41,6 +41,7 @@ ВсеШаги.Добавить("ЯСоздаюНовыйОбъектМенеджерсинхронизации"); ВсеШаги.Добавить("ЯУстанавливаюАвторизациюВХранилищеПользователяСПаролем"); ВсеШаги.Добавить("ЯУстанавливаюВерсиюПлатформы"); + ВсеШаги.Добавить("ЯУстанавливаюВерсиюПлатформыВыгрузки"); ВсеШаги.Добавить("ЯВыполняюСинхронизацию"); ВсеШаги.Добавить("ВыводЛогаСодержит"); @@ -254,6 +255,14 @@ КонецПроцедуры +//Я устанавливаю версию платформы выгрузки "8.3" +Процедура ЯУстанавливаюВерсиюПлатформыВыгрузки(Знач ВерсияПлатформы) Экспорт + + МенеджерСинхронизации = БДД.ПолучитьИзКонтекста("МенеджерСинхронизации"); + МенеджерСинхронизации.ВерсияПлатформыВыгрузки(ВерсияПлатформы); + +КонецПроцедуры + //Я выполняю синхронизацию Процедура ЯВыполняюСинхронизацию() Экспорт diff --git a/features/core/sync.core.feature b/features/core/sync.core.feature index 1db902cf..cfc6ebb9 100644 --- a/features/core/sync.core.feature +++ b/features/core/sync.core.feature @@ -23,6 +23,15 @@ Когда Я выполняю синхронизацию Тогда Вывод лога содержит "Завершена синхронизации с git" +Сценарий: Синхронизация хранилища с отдельной версией платформы для выгрузки + Допустим Я устанавливаю авторизацию в хранилище пользователя "Администратор" с паролем "" + И Я устанавливаю версию платформы "8.3" + И Я устанавливаю версию платформы выгрузки "8.3" + Когда Я выполняю синхронизацию + Тогда Вывод лога содержит "Для работы с хранилищем используется платформа 1С версии <8.3>" + И Вывод лога содержит "Для выгрузки используется платформа 1С версии <8.3>" + И Вывод лога содержит "Завершена синхронизации с git" + Сценарий: Cинхронизация хранилища с git-репозиторием c плагинами Допустим Я устанавливаю авторизацию в хранилище пользователя "Администратор" с паролем "" И Я устанавливаю версию платформы "8.3" diff --git a/readme.md b/readme.md index 632c7a5c..0b54e905 100644 --- a/readme.md +++ b/readme.md @@ -217,13 +217,15 @@ #### Глобальные переменные окружения -| Имя | Описание | -| ------------------- | --------------------------------------------------------------------------- | -| `GITSYNC_V8VERSION` | маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.) | -| `GITSYNC_V8_PATH` | путь к исполняемому файлу платформы 1С (Например, /opt/1C/v8.3/x86_64/1cv8) | -| `GITSYNC_VERBOSE` | вывод отладочной информации в процессе выполнения | -| `GITSYNC_TEMP` | путь к каталогу временных файлов | -| `GITSYNC_EMAIL` | домен почты для пользователей git | +| Имя | Описание | +| --------------------------- | ---------------------------------------------------------------------------------------------- | +| `GITSYNC_V8VERSION` | маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.) | +| `GITSYNC_V8_PATH` | путь к исполняемому файлу платформы 1С (Например, /opt/1C/v8.3/x86_64/1cv8) | +| `GITSYNC_EXPORT_V8VERSION` | маска версии платформы 1С для выгрузки конфигурации в файлы | +| `GITSYNC_EXPORT_V8_PATH` | путь к исполняемому файлу платформы 1С для выгрузки конфигурации в файлы | +| `GITSYNC_VERBOSE` | вывод отладочной информации в процессе выполнения | +| `GITSYNC_TEMP` | путь к каталогу временных файлов | +| `GITSYNC_EMAIL` | домен почты для пользователей git | #### Переменные окружения команды @@ -306,8 +308,10 @@ export GITSYNC_STORAGE_USER=Admin export GITSYNC_STORAGE_PASSWORD=Secret export GITSYNC_V8VERSION=8.3.7 + export GITSYNC_EXPORT_V8VERSION=8.3.27 # Указание конкретного исполняемого файла платформы 1С. Путь надо обернуть в кавычки если он содержит пробелы. #export GITSYNC_V8_PATH=/opt/1C/v8.3/x86_64/1cv8 + #export GITSYNC_EXPORT_V8_PATH=/opt/1C/v8.3/x86_64/1cv8 export GITSYNC_VERBOSE=true #Можно использовать Да/Ложь/Нет/Истина export GITSYNC_TEMP=./temp/sync gitsync s @@ -322,8 +326,10 @@ set GITSYNC_STORAGE_USER=Admin set GITSYNC_STORAGE_PASSWORD=Secret set GITSYNC_V8VERSION=8.3.7 + set GITSYNC_EXPORT_V8VERSION=8.3.27 # Указание конкретного исполняемого файла платформы 1С. Путь надо обернуть в кавычки если он содержит пробелы. #set GITSYNC_V8_PATH="C:\Program Files (x86)\1cv8\8.3.12.1567\bin\1cv8.exe" + #set GITSYNC_EXPORT_V8_PATH="C:\Program Files (x86)\1cv8\8.3.27.1989\bin\1cv8.exe" set GITSYNC_VERBOSE=true #Можно использовать Да/Ложь/Нет/Истина set GITSYNC_TEMP=./temp/sync diff --git a/src/cmd/gitsync.os b/src/cmd/gitsync.os index 06fcc7ba..dabb47f1 100644 --- a/src/cmd/gitsync.os +++ b/src/cmd/gitsync.os @@ -19,6 +19,10 @@ .ВОкружении("GITSYNC_V8VERSION"); Приложение.Опция("v8-path", "", "путь к исполняемому файлу платформы 1С (Например, /opt/1C/v8.3/x86_64/1cv8)") .ВОкружении("GITSYNC_V8_PATH"); + Приложение.Опция("export-v8version", "", "маска версии платформы 1С для выгрузки конфигурации в файлы") + .ВОкружении("GITSYNC_EXPORT_V8VERSION"); + Приложение.Опция("export-v8-path", "", "путь к исполняемому файлу платформы 1С для выгрузки конфигурации в файлы") + .ВОкружении("GITSYNC_EXPORT_V8_PATH"); Приложение.Опция("v verbose", Ложь, "вывод отладочной информации в процессе выполнения") .Флаговый() @@ -74,6 +78,8 @@ ВерсияПлатформы = Команда.ЗначениеОпции("v8version"); ПутьКПлатформе = Команда.ЗначениеОпции("v8-path"); + ВерсияПлатформыВыгрузки = Команда.ЗначениеОпции("export-v8version"); + ПутьКПлатформеВыгрузки = Команда.ЗначениеОпции("export-v8-path"); ВыводДополнительнойИнформации = Команда.ЗначениеОпции("verbose"); ПутьКГит = Команда.ЗначениеОпции("git-path"); ВременныйКаталогРаботы = Команда.ЗначениеОпции("tempdir"); @@ -84,6 +90,8 @@ Лог.Отладка("Устанавливаю общие параметры"); ПараметрыПриложения.УстановитьВерсиюПлатформы(ВерсияПлатформы); ПараметрыПриложения.УстановитьПутьКПлатформе(ПутьКПлатформе); + ПараметрыПриложения.УстановитьВерсиюПлатформыВыгрузки(ВерсияПлатформыВыгрузки); + ПараметрыПриложения.УстановитьПутьКПлатформеВыгрузки(ПутьКПлатформеВыгрузки); ПараметрыПриложения.УстановитьПутьКГит(ПутьКГит); ПараметрыПриложения.УстановитьДоменПочты(ДоменПочты); ПараметрыПриложения.УстановитьВременныйКаталог(ВременныйКаталогРаботы); diff --git "a/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Sync.os" "b/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Sync.os" index e89bd964..46921db8 100644 --- "a/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Sync.os" +++ "b/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Sync.os" @@ -71,6 +71,8 @@ Распаковщик = Новый МенеджерСинхронизации(); Распаковщик.ВерсияПлатформы(ОбщиеПараметры.ВерсияПлатформы) .ПутьКПлатформе(ОбщиеПараметры.ПутьКПлатформе) + .ВерсияПлатформыВыгрузки(ОбщиеПараметры.ВерсияПлатформыВыгрузки) + .ПутьКПлатформеВыгрузки(ОбщиеПараметры.ПутьКПлатформеВыгрузки) .ДоменПочтыПоУмолчанию(ОбщиеПараметры.ДоменПочты) .ИсполняемыйФайлГит(ОбщиеПараметры.ПутьКГит) .УстановитьКонтекст(СтрокаСоединенияИБ, ПользовательИБ, ПарольПользователяИБ) diff --git "a/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" "b/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" index 2566bef8..1cd0f843 100644 --- "a/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" @@ -20,6 +20,8 @@ ОбщиеПараметры = Новый Структура(); ОбщиеПараметры.Вставить("ВерсияПлатформы", "8.3"); ОбщиеПараметры.Вставить("ПутьКПлатформе", ""); + ОбщиеПараметры.Вставить("ВерсияПлатформыВыгрузки", ""); + ОбщиеПараметры.Вставить("ПутьКПлатформеВыгрузки", ""); ОбщиеПараметры.Вставить("ДоменПочты", "localhost"); ОбщиеПараметры.Вставить("ПутьКГит", ""); @@ -124,6 +126,10 @@ ОбщиеПараметры.Вставить("ВерсияПлатформы", ВерсияПлатформы); КонецПроцедуры +Процедура УстановитьВерсиюПлатформыВыгрузки(Знач ВерсияПлатформыВыгрузки) Экспорт + ОбщиеПараметры.Вставить("ВерсияПлатформыВыгрузки", ВерсияПлатформыВыгрузки); +КонецПроцедуры + Процедура УстановитьПутьКГит(Знач ПутьКГит) Экспорт ОбщиеПараметры.Вставить("ПутьКГит", ПутьКГит); КонецПроцедуры @@ -132,6 +138,10 @@ ОбщиеПараметры.Вставить("ПутьКПлатформе", ПутьКПлатформе); КонецПроцедуры +Процедура УстановитьПутьКПлатформеВыгрузки(Знач ПутьКПлатформеВыгрузки) Экспорт + ОбщиеПараметры.Вставить("ПутьКПлатформеВыгрузки", ПутьКПлатформеВыгрузки); +КонецПроцедуры + Процедура УстановитьКаталогПлагинов(Знач ПутьККаталогуПлагинов) Экспорт ЛогПриложения.Отладка("Устанавливаю каталог плагинов <%1>", ПутьККаталогуПлагинов); diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" index db64f431..8f603f01 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" @@ -35,6 +35,8 @@ Перем ДоменПочтыДляGitПоУмолчанию Экспорт; // Строка, домен пользователей по умолчанию Перем ТекущаяВерсияПлатформы Экспорт; // Строка, используемая версия 1С.Предприятие Перем ТекущийПутьКПлатформе Экспорт; // Строка, путь к исполняемому файлу платформы 1С.Предприятие +Перем ТекущаяВерсияПлатформыВыгрузки Экспорт; // Строка, используемая версия 1С.Предприятие для выгрузки в файлы +Перем ТекущийПутьКПлатформеВыгрузки Экспорт; // Строка, путь к платформе 1С.Предприятие для выгрузки в файлы #Область Публичное_API @@ -211,6 +213,36 @@ КонецФункции +// Устанавливает версию платформы 1С для выгрузки конфигурации в файлы +// +// Параметры: +// НоваяВерсияПлатформы - Строка - версия платформы 1С, используемой для выгрузки в файлы +// +// Возвращаемое значение: +// Объект.МенеджерСинхронизации - ссылка на текущий объект класса <МенеджерСинхронизации> +// +Функция ВерсияПлатформыВыгрузки(Знач НоваяВерсияПлатформы) Экспорт + + ТекущаяВерсияПлатформыВыгрузки = НоваяВерсияПлатформы; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает путь к платформе 1С для выгрузки конфигурации в файлы +// +// Параметры: +// НовыйПутьКПлатформе - Строка - путь к исполняемому файлу платформы 1С.Предприятие +// +// Возвращаемое значение: +// Объект.МенеджерСинхронизации - ссылка на текущий объект класса <МенеджерСинхронизации> +// +Функция ПутьКПлатформеВыгрузки(Знач НовыйПутьКПлатформе) Экспорт + + ТекущийПутьКПлатформеВыгрузки = НовыйПутьКПлатформе; + Возврат ЭтотОбъект; + +КонецФункции + // Устанавливает путь к исполняемому файлу git // // Параметры: @@ -383,14 +415,18 @@ КаталогРабочейКопии, ПутьКХранилищу, НомерВерсии); - + + ПрименитьПлатформуХранилищаККонфигуратору(Конфигуратор); + ОбработчикПодписок.ПередЗагрузкойВерсииХранилищаКонфигурации(Конфигуратор, КаталогРабочейКопии, ПутьКХранилищу, НомерВерсии); ЗагрузитьВерсиюХранилищаВКонфигурацию(Конфигуратор, КаталогРабочейКопии, ПутьКХранилищу, НомерВерсии); - + + ПрименитьПлатформуВыгрузкиККонфигуратору(Конфигуратор); + КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог(); Лог.Отладка("Каталог выгрузки <%1> для версии <%2>", КаталогВыгрузки, НомерВерсии); @@ -762,6 +798,53 @@ КонецФункции +Процедура ПрименитьПлатформуХранилищаККонфигуратору(Знач Конфигуратор) + + Если ЗначениеЗаполнено(ТекущийПутьКПлатформе) Тогда + + Если Не ФС.ФайлСуществует(ТекущийПутьКПлатформе) Тогда + + ВызватьИсключение СтрШаблон("Исполняемый файл платформы 1С <%1> не найден", ТекущийПутьКПлатформе); + + КонецЕсли; + + Конфигуратор.ПутьКПлатформе1С(ТекущийПутьКПлатформе); + Лог.Информация("Для работы с хранилищем используется путь к платформе 1С <%1>", ТекущийПутьКПлатформе); + Возврат; + + КонецЕсли; + + Конфигуратор.ИспользоватьВерсиюПлатформы(ТекущаяВерсияПлатформы); + Лог.Информация("Для работы с хранилищем используется платформа 1С версии <%1>", ТекущаяВерсияПлатформы); + +КонецПроцедуры + +Процедура ПрименитьПлатформуВыгрузкиККонфигуратору(Знач Конфигуратор) + + Если ЗначениеЗаполнено(ТекущийПутьКПлатформеВыгрузки) Тогда + + Если Не ФС.ФайлСуществует(ТекущийПутьКПлатформеВыгрузки) Тогда + + ВызватьИсключение СтрШаблон("Исполняемый файл платформы 1С для выгрузки <%1> не найден", + ТекущийПутьКПлатформеВыгрузки); + + КонецЕсли; + + Конфигуратор.ПутьКПлатформе1С(ТекущийПутьКПлатформеВыгрузки); + Лог.Информация("Для выгрузки используется путь к платформе 1С <%1>", ТекущийПутьКПлатформеВыгрузки); + Возврат; + + КонецЕсли; + + Если ЗначениеЗаполнено(ТекущаяВерсияПлатформыВыгрузки) Тогда + + Конфигуратор.ИспользоватьВерсиюПлатформы(ТекущаяВерсияПлатформыВыгрузки); + Лог.Информация("Для выгрузки используется платформа 1С версии <%1>", ТекущаяВерсияПлатформыВыгрузки); + + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область Функциональность_работы_с_ГитРепозиторием @@ -1632,6 +1715,8 @@ ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; ТекущаяВерсияПлатформы = "8.3"; + ТекущаяВерсияПлатформыВыгрузки = ""; + ТекущийПутьКПлатформеВыгрузки = ""; КонтекстВыполнения = Новый Структура("СтрокаСоединения, Пользователь, Пароль", "", "", "");