Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Установка версии для внешних обработок\отчетов 1С в поле "Комментарий" #507

Draft
wants to merge 5 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@
ИмяПроекта = Новый Файл(СтрокаПутиБазы).ИмяБезРасширения;
Ожидаем.Что(Парсер.НайтиПоИмени(ИмяПроекта)).Существует();


КонецПроцедуры

// { Служебные функции
Expand Down
16 changes: 14 additions & 2 deletions features/СборкаОбработок.feature
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,20 @@
И файл "build/out/extdp.epf" существует
И файл "file.txt" не существует

# Сценарий: Сборка одной внешней обработки
# Когда TODO
Сценарий: Сборка внешней обработки в отдельном каталоге с изменением номера сборки

# Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf build/out --build-number 4567 --for-meta-comment --language ru --debuglogfile build/a.log"
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf build/out --build-number 4567 --for-meta-comment --language ru"
И Вывод команды "oscript" содержит "Собирали: fixture изменен"
# И Я добавляю параметр "--debuglogfile build/a.log" для команды "oscript"

# Когда Я выполняю команду "oscript"
И Я сообщаю вывод команды "oscript"
# И я показываю текст файла "build/a.log"
Тогда Код возврата команды "oscript" равен 0
И файл "build/out/Тест1.epf" существует
И файл "file.txt" не существует
Тогда файл "build/out/fixture-epf/fixture/Тест1.xml" содержит "<Comment>1.0.0.4567</Comment>"

# Сценарий: Сборка одной внешней обработки с явно заданной базой
# Когда TODO
Expand Down

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/main.os
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,7 @@
СтруктураПодключения.Вставить("КодЯзыка", ЗначенияПараметров["--language"]);
СтруктураПодключения.Вставить("КодЯзыкаСеанса", ЗначенияПараметров["--locale"]);
СтруктураПодключения.Вставить("РазрядностьПлатформы", ЗначенияПараметров["--bitness"]);
СтруктураПодключения.Вставить("ВерсияПлатформы", ЗначенияПараметров["--v8version"]);

Рез = Новый Структура;
Для каждого КлючЗначение Из СтруктураПодключения Цикл
Expand Down Expand Up @@ -310,7 +311,6 @@
Возврат;
КонецЕсли;


ФайлЖурнала = Новый ВыводЛогаВФайл;
ФайлЖурнала.ОткрытьФайл(ПутьФайлаВывода);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,14 @@
"Ключ кэшированных значений файлов, default: compileepfrunner");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--onlycopy",
"Флаг, только копировать. Без сборки обработки, даже если выглядит как обработка");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--build-number",
"Номер сборки для установки в последний разряд номера версии");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--for-meta-comment",
"Версия указана в комментарии внешнего файла");

Парсер.ДобавитьКоманду(ОписаниеКоманды);

КонецПроцедуры // ЗарегистрироватьКоманду
КонецПроцедуры

// Выполняет логику команды
//
Expand All @@ -45,14 +49,19 @@
УпаковщикВнешнихОбработок.УстановитьЛог(ДополнительныеПараметры.Лог);

ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"];
НастройкаИзмененияВерсии = Новый Структура;
НастройкаИзмененияВерсии.Вставить("НомерСборки", ПараметрыКоманды["--build-number"]);
НастройкаИзмененияВерсии.Вставить("ВерсияВКомментарииМетаданного", ПараметрыКоманды["--for-meta-comment"]);
Если ЗначениеЗаполнено(НастройкаИзмененияВерсии.НомерСборки) И Не НастройкаИзмененияВерсии.ВерсияВКомментарииМетаданного Тогда
ВызватьИсключение "При указании номера сборки нужно указывать флаг ""--for-meta-comment"", т.к. других вариантов установки версии пока не реализовано."
КонецЕсли;

УпаковщикВнешнихОбработок.Собрать(
ОбщиеМетоды.ПолныйПуть(ПараметрыКоманды["inputPath"]),
ОбщиеМетоды.ПолныйПуть(ПараметрыКоманды["outputPath"]),
ДанныеПодключения.СтрокаПодключения, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль,
ПараметрыКоманды["--v8version"],
ПараметрыКоманды["--onlycopy"],
ПараметрыКоманды["--cachekey"]);
ДанныеПодключения,
ПараметрыКоманды["--onlycopy"], ПараметрыКоманды["--cachekey"],
НастройкаИзмененияВерсии);

Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
КонецФункции // ВыполнитьКоманду
КонецФункции
12 changes: 8 additions & 4 deletions src/Классы/КомандаУстановкаВерсии.os
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@
ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, " Установка номера версии файлов 1С (конфигурации, расширения, внешние обработки\отчеты).");

Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--new-version",
"Номер версии, который нужно установить");
"Номер версии, который нужно установить. Внимание - требуется 4х-разрядная версия!");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--for-meta-comment",
"Версия указана в комментарии внешнего файла");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--src",
"Путь Configuration.xml или каталога, содержащего этот файл, или корневого каталога для поиска в подкаталогах - для исходников конфигурации или расширения");

Expand All @@ -43,13 +45,15 @@

Лог = ДополнительныеПараметры.Лог;

НомерВерсии = ПараметрыКоманды["--new-version"];
ПутьФайла = ПараметрыКоманды["--src"];
НомерВерсии = ПараметрыКоманды["--new-version"];
НастройкиУстановки = Новый Структура;
НастройкиУстановки.Вставить("ВерсияВКомментарииМетаданного", ПараметрыКоманды["--for-meta-comment"]);

Лог.Информация("Изменяю версию в исходниках конфигурации 1С на %1 - %2", НомерВерсии, ПутьФайла);
Лог.Информация("Изменяю версию в исходниках конфигурации или внешнего файла 1С на %1 - %2", НомерВерсии, ПутьФайла);

МенеджерВерсийФайлов1С = Новый МенеджерВерсийФайлов1С;
СтарыеВерсии = МенеджерВерсийФайлов1С.УстановитьВерсиюКонфигурации(ПутьФайла, НомерВерсии);
СтарыеВерсии = МенеджерВерсийФайлов1С.УстановитьВерсиюКонфигурации(ПутьФайла, НомерВерсии, НастройкиУстановки);

Для каждого КлючЗначение Из СтарыеВерсии Цикл
Лог.Информация(" Старая версия %1, файл - %2", КлючЗначение.Значение, КлючЗначение.Ключ);
Expand Down
Loading