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

Добавлена возможность поиска файла по шаблону с номером версии #565

Merged
merged 7 commits into from
Apr 27, 2023
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
Перем Лог;
Перем КорневойПутьПроекта;

// Параметры команды
Перем ПутьКФайлуКонфигурации;

///////////////////////////////////////////////////////////////////////////////////////////////////
// Прикладной интерфейс

Expand All @@ -31,6 +34,7 @@
| указываем версию платформы, которую хотим использовать,
| и получаем по пути build\ib готовую базу для тестирования.");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--dt", "Путь к файлу с dt выгрузкой");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--cf", "Путь к cf-файлу конфигурации");
artbear marked this conversation as resolved.
Show resolved Hide resolved
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--dev",
"Признак dev режима, создаем и загружаем автоматом структуру конфигурации");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--storage", "Признак обновления из хранилища");
Expand Down Expand Up @@ -73,6 +77,8 @@
РежимыРеструктуризации.Вставить("Первый", ПараметрыКоманды["--v1"]);
РежимыРеструктуризации.Вставить("Второй", ПараметрыКоманды["--v2"]);

ПутьКФайлуКонфигурации = ПараметрыКоманды["--cf"];

ИнициализироватьБазуДанных(РежимыРеструктуризации, ПараметрыКоманды["--src"], ПараметрыКоманды["--dt"],
ДанныеПодключения, ПараметрыКоманды["--uccode"],
ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"],
Expand Down Expand Up @@ -199,6 +205,16 @@
ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;

Если ЗначениеЗаполнено(ПутьКФайлуКонфигурации) Тогда

Лог.Информация("Запускаем загрузку конфигурации из cf-файла");
МенеджерВерсий = Новый МенеджерВерсийФайлов1С();
ПутьКФайлуСВерсией = МенеджерВерсий.НайтиФайлСВерсией(ПутьКФайлуКонфигурации);
МенеджерКонфигуратора.ЗагрузитьФайлКонфигурации(ПутьКФайлуСВерсией, Ложь);
МенеджерКонфигуратора.ОбновитьКонфигурациюБазыДанных(Ложь);
artbear marked this conversation as resolved.
Show resolved Hide resolved

КонецЕсли;

МенеджерКонфигуратора.Деструктор();

Если НЕ НеДобавлятьВСписокБаз Тогда
Expand Down
42 changes: 42 additions & 0 deletions src/Классы/МенеджерВерсийФайлов1С.os
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,48 @@

КонецФункции

// Поиск файла полходящего под шаблон номера версии.
artbear marked this conversation as resolved.
Show resolved Hide resolved
//
// Параметры:
// ПутьКФайлуКонфигурации - Строка - Файл с шаблоном номера версии. Например: 1cv8_$version.cf
//
// Возвращаемое значение:
// Строка - Имя файла подходящего под шаблон версии. Например: 1cv8_1.2.3.4.cf
//
Функция НайтиФайлСВерсией(Знач ПутьКФайлуКонфигурации) Экспорт

ШаблонВерсии = "$version";

Если СтрНайти(ПутьКФайлуКонфигурации, ШаблонВерсии) = 0 Тогда
Возврат ПутьКФайлуКонфигурации;
КонецЕсли;

Файл = Новый Файл(ПутьКФайлуКонфигурации);
Путь = Файл.Путь;

ПутьКФайлу = "";
ШаблонПоиска = СтрЗаменить(Файл.Имя, ШаблонВерсии, "(\d+.\d+.\d+.\d+|\d+.\d+.\d+)");
artbear marked this conversation as resolved.
Show resolved Hide resolved
РегулярноеВыражение = Новый РегулярноеВыражение(ШаблонПоиска);

НайденныеФайлы = НайтиФайлы(Путь, ПолучитьМаскуВсеФайлы());
Для каждого НайденныйФайл Из НайденныеФайлы Цикл

Если РегулярноеВыражение.Совпадает(НайденныйФайл.Имя) Тогда
artbear marked this conversation as resolved.
Show resolved Hide resolved
ПутьКФайлу = НайденныйФайл.ПолноеИмя;
Лог.Информация("Используем файл с версией " + ПутьКФайлу);
Прервать;
КонецЕсли;

КонецЦикла;

Если ПустаяСтрока(ПутьКФайлу) Тогда
ВызватьИсключение "Не найден файл с шаблоном версии " + ПутьКФайлуКонфигурации;
КонецЕсли;

Возврат ПутьКФайлу;

КонецФункции

#КонецОбласти

#Область СлужебныеПроцедурыИФункции
Expand Down