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

[FEAT] Добавлен параметр ibsrv для запуска команд с использование автономного сервера #645

Closed
wants to merge 34 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
adff514
Улучшена диагностика ошибок при запуске в режиме предприятия
yukon39 Nov 12, 2024
a4ea7bd
Добавлен класс обертка для запуска ibcmd
yukon39 Nov 13, 2024
0090fed
Добавлен параметр --ibsrv для команды xunit
yukon39 Nov 13, 2024
b0dcb26
Добавлен параметр --ibsrv для команды vanessa
yukon39 Nov 13, 2024
a1d082f
Добавлен параметр --ibsrv для команды run
yukon39 Nov 13, 2024
43df4f4
Добавлен параметр --ibsrv для команды designer
yukon39 Nov 13, 2024
5f1a43f
Улучшена диагностика выполнения команд
yukon39 Nov 13, 2024
82c14c9
Добавлены параметры для работы с ibsrv в схему настроек
yukon39 Nov 13, 2024
49b0ae3
Доработаны тесты
yukon39 Nov 13, 2024
9c959ef
Подтянули изменения из ветки разработки
yukon39 Nov 13, 2024
95feb68
Исправление замечаний Сонара
yukon39 Nov 14, 2024
e6504e5
Логирование реализовано в методах обработчиках
yukon39 Nov 14, 2024
07fa822
Исправления по замечениям ревью
yukon39 Nov 14, 2024
c6c4260
.ЗависитОт("ibcmdrunner", "0.3.0")
artbear Nov 16, 2024
394f1a8
Исправлены замечания ревью
yukon39 Nov 18, 2024
9157d10
Изменен порт отладки по умолчанию
yukon39 Nov 18, 2024
eb366dd
Merge branch 'develop' into issue-619-1
yukon39 Nov 22, 2024
da82c88
Убираем нестабильный функционал платформы
yukon39 Nov 22, 2024
d071d42
Улучшена диагностика ошибок
yukon39 Nov 23, 2024
f5b204d
Добавлена отладка в команде run
yukon39 Nov 23, 2024
e2ba405
Добавлен шаг сборки проекта перед тестированием
yukon39 Nov 23, 2024
fab3653
Добавлена проверка существования файла внешней обработки
yukon39 Nov 23, 2024
7db0c68
Исправлены замечания ревью
yukon39 Nov 23, 2024
f8df061
Добавлена отладка шага vanessa
yukon39 Nov 23, 2024
46c8ef8
Исправлены замечания ревью
yukon39 Nov 23, 2024
77be806
Добавлена сборка внешних обработок для запуска тестов
yukon39 Dec 2, 2024
b3f7e5c
Фикс vanessa. Переделал пустую ИБ на фикстуру.
Segate-ekb Dec 3, 2024
d720c17
Добавил обновление конфигурации для фикса повисания add
Segate-ekb Dec 3, 2024
176c763
Рефакторинг теста vanessa
yukon39 Dec 3, 2024
09bfda9
Используем фикстуры для запуска теста xunit
yukon39 Dec 3, 2024
98538f6
Рефакторинг тестов команды update-dev
yukon39 Dec 3, 2024
440a47b
Убран шаг сборки проекта перед тестированием
yukon39 Dec 3, 2024
eb38885
Добавлено принудительное использование русской локали про вызове тестов
yukon39 Dec 3, 2024
b3ae018
Исправлен режим совместимости в фикстуре
yukon39 Dec 3, 2024
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
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
.ЗависитОт("cmdline", "1.0.0")
.ЗависитОт("fluent", "0.6.1")
.ЗависитОт("fs", "1.2.0")
.ЗависитОт("ibcmdrunner", "0.2.5")
.ЗависитОт("ibcmdrunner", "0.3.0")
.ЗависитОт("json", "1.1.1")
.ЗависитОт("logos", "1.7.0")
.ЗависитОт("ParserFileV8i", "0.0.5")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
///////////////////////////////////////////////////////////////////////////////////////////////////
//
// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров
// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей
// запускаемых обработок и параметров
//
// TODO добавить фичи для проверки команды
//
Expand All @@ -11,13 +12,16 @@
//
///////////////////////////////////////////////////////////////////////////////////////////////////

#Использовать logos
#Использовать v8runner
#Использовать fs

Перем Лог;
#Область ОписаниеПеременных

///////////////////////////////////////////////////////////////////////////////////////////////////
// Прикладной интерфейс
Перем Лог; // Экземпляер логгера
Перем ПутьОбработкиДляЗапуска; // Путь внешней обработки 1С для запуска в предприятии

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

#Область ОбработчикиСобытий

// Регистрация команды и ее аргументов/ключей
//
Expand Down Expand Up @@ -55,6 +59,9 @@
| Значение ""2"" означает выполнение запуска с предупреждением.
| Любое другое значение эквивалентно отсутствию файла.");

Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--ibsrv",
"Запуск команды с использованием утилиты ibsrv");

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

КонецПроцедуры // ЗарегистрироватьКоманду
Expand All @@ -65,24 +72,37 @@
// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений
// ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно)
//
// Возвращаемое значение:
// Число - Код возврата команды
//
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт

Лог = ДополнительныеПараметры.Лог;
Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры);

ПутьОбработкиДляЗапуска = ПутьОбработкиДляЗапуска(ПараметрыКоманды["--execute"]);

ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера();

Действие = Новый Действие(ЭтотОбъект, "ЗапуститьВРежимеПредприятия");
Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера);

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

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

#Область СлужебныйПрограммныйИнтерфейс

Функция ЗапуститьВРежимеПредприятия(ПараметрыКоманды) Экспорт

// TODO отрефакторить получение ЗапускатьТолстыйКлиент
ЗапускатьТолстыйКлиент = ОбщиеМетоды.УказанПараметрТолстыйКлиент(ПараметрыКоманды["--ordinaryapp"], Лог);
ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"];

МенеджерКонфигуратора = Новый МенеджерКонфигуратора;

ПутьОбработки1С = ПараметрыКоманды["--execute"];
ПутьОбработки1С = Заменить_runnerRoot_на_КаталогVanessaRunner(ПутьОбработки1С);
ПутьОбработки1С = ОбщиеМетоды.ПолныйПуть(ПутьОбработки1С);
МенеджерКонфигуратора.Конструктор(ДанныеПодключения, ПараметрыКоманды);

ОжидатьЗавершения = Не ПараметрыКоманды["--no-wait"];

МенеджерКонфигуратора.Конструктор(ДанныеПодключения, ПараметрыКоманды);

ПутьКФайлуСтатусаВыполнения = ПараметрыКоманды["--exitCodePath"];
КомандаЗапуска = КомандаЗапуска(ПараметрыКоманды["--command"], ПутьКФайлуСтатусаВыполнения);
ПутьЛогаВыполнения = ПараметрыКоманды["--online-file"];
Expand All @@ -102,7 +122,7 @@
Попытка
МенеджерКонфигуратора.ЗапуститьВРежимеПредприятияСПроверкойВыполнения(
ДопСообщения,
КомандаЗапуска, ПутьОбработки1С,
КомандаЗапуска, ПутьОбработкиДляЗапуска,
ЗапускатьТолстыйКлиент, ДополнительныеПараметры,
ОжидатьЗавершения,
ПутьЛогаВыполнения,
Expand All @@ -115,8 +135,13 @@
МенеджерКонфигуратора.Деструктор();

Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;

КонецФункции // ВыполнитьКоманду

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

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

Функция КомандаЗапуска(Знач ПараметрКомандаЗапуска, Знач ПутьКФайлуСтатусаВыполнения)

КомандыЗапуска = Новый Массив;
Expand Down Expand Up @@ -148,3 +173,23 @@
Функция Заменить_runnerRoot_на_КаталогVanessaRunner(Знач ИсходнаяСтрока)
Возврат СтрЗаменить(ИсходнаяСтрока, "$runnerRoot", ОбщиеМетоды.КаталогПроекта());
КонецФункции

Функция ПутьОбработкиДляЗапуска(Знач ПутьОбработки1С)

Если ПустаяСтрока(ПутьОбработки1С) Тогда
Возврат "";
КонецЕсли;

ПутьОбработки1С = Заменить_runnerRoot_на_КаталогVanessaRunner(ПутьОбработки1С);
ПутьОбработки1С = ОбщиеМетоды.ПолныйПуть(ПутьОбработки1С);

Если ФС.ФайлСуществует(ПутьОбработки1С) Тогда
Возврат ПутьОбработки1С;
Иначе
ВызватьИсключение СтрШаблон("Файл внешней обработки ""%1"" не существует на диске!",
ПутьОбработки1С);
КонецЕсли;

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

#КонецОбласти
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
//
///////////////////////////////////////////////////////////////////////////////////////////////////

#Использовать logos
#Использовать v8runner
#Область ОписаниеПеременных

Перем Лог;

///////////////////////////////////////////////////////////////////////////////////////////////////
// Прикладной интерфейс
#КонецОбласти

#Область ОбработчикиСобытий

// Регистрация команды и ее аргументов/ключей
//
Expand All @@ -39,6 +39,9 @@
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль");

Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--ibsrv",
"Запуск команды с использованием утилиты ibsrv");

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

КонецПроцедуры // ЗарегистрироватьКоманду
Expand All @@ -51,7 +54,21 @@
//
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт

Лог = ДополнительныеПараметры.Лог;
Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры);

ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера();
ПараметрыАвтономногоСервера.ИспользоватьПрямоеСоединение = Истина;

Действие = Новый Действие(ЭтотОбъект, "ЗапуститьКонфигуратор");
Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера);

КонецФункции // ВыполнитьКоманду

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

#Область СлужебныйПрограммныйИнтерфейс

Функция ЗапуститьКонфигуратор(ПараметрыКоманды) Экспорт

ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"];

Expand Down Expand Up @@ -87,4 +104,6 @@
МенеджерКонфигуратора.Деструктор();

Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
КонецФункции // ВыполнитьКоманду
КонецФункции

#КонецОбласти
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@
#Область ОписаниеПеременных

Перем Лог; // Экземпляр логгера
Перем КорневойПутьПроекта;
Перем КорневойПутьПроекта; // Путь к корневой папке проекта

// Параметры команды
Перем ДанныеПодключения;
Перем ПараметрыХранилища;
Перем РежимыРеструктуризации;
Перем РежимРазработчика;
Перем ПутьКФайлуКонфигурации;
Перем ПутьКИсходникам;
Перем ПутьКФайлуВыгрузки;
Перем ДанныеПодключения; // Данные подключения к ИБ
Перем ПараметрыХранилища; // Параметры подключения к хранилищу
Перем РежимыРеструктуризации; // Доступные режимы реструктуризации
Перем РежимРазработчика; // Режим разработчика
Перем ПутьКФайлуКонфигурации; // Путь к файлу конфигурации
Перем ПутьКИсходникам; // Путь к исходным файлам кофнигурации
Перем ПутьКФайлуВыгрузки; // Путь к файлу выгрузки информационной базы

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,22 @@
// oscript-app-template (C) EvilBeaver
//
///////////////////////////////////////////////////////////////////

#Использовать gitrunner

#Область ОписаниеПеременных

Перем Лог; // Экземпляр логгера
Перем КорневойПутьПроекта;

Перем ДанныеПодключения;
Перем ПараметрыХранилища;
Перем РежимыРеструктуризации;
Перем РежимРазработчика;
Перем ПутьКИсходникам;
Перем ПутьКФайлуВыгрузки;
Перем ИнкрементальнаяЗагрузкаGit;
Перем СниматьСПоддержки;
Перем КорневойПутьПроекта; // Путь к корневой папке проекта

Перем ДанныеПодключения; // Данные подключения к ИБ
Перем ПараметрыХранилища; // Параметры подключения к хранилищу
Перем РежимыРеструктуризации; // Доступные режимы реструктуризации
Перем РежимРазработчика; // Режим разработчика
Перем ПутьКИсходникам; // Путь к исходным файлам кофнигурации
Перем ПутьКФайлуВыгрузки; // Путь к файлу выгрузки информационной базы
Перем ИнкрементальнаяЗагрузкаGit; // Использовать инкрементальную загрузку из репозитория git
Перем СниматьСПоддержки; // Снимать конфигурацию с поддержки перед загрузкой

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

Expand Down Expand Up @@ -47,7 +49,7 @@
"Снимает конфигурации с поддержки перед загрузкой исходников");

Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--git-increment",
СтрШаблон("Инкременальная загрузка по git diff

Check warning on line 52 in src/Классы/КомандаОбновлениеОкружения.os

View check run for this annotation

sonar.openbsl.ru qa-bot / Vanessa-Runner Sonarqube Results

src/Классы/КомандаОбновлениеОкружения.os#L52

Уберите инициализацию параметров метода "СтрШаблон" вложенными методами
| Схема работы
| При загрузке в каталоге исходников (--src) ищется файл
| %1 (необходимо добавить в .gitignore).
Expand Down Expand Up @@ -263,10 +265,10 @@
Функция ПолучитьХэшПоследнегоЗагруженногоКоммита(Знач ПутьИсходников)

ИмяФайла = ФайлПредыдущегоГитКоммита(ПутьИсходников).ПолноеИмя;
Лог.Отладка("Путь файла предыдущего коммита git %1", ИмяФайла);

Check notice on line 268 in src/Классы/КомандаОбновлениеОкружения.os

View check run for this annotation

sonar.openbsl.ru qa-bot / Vanessa-Runner Sonarqube Results

src/Классы/КомандаОбновлениеОкружения.os#L268

Возможная опечатка в "коммита"

Если Не ФС.ФайлСуществует(ИмяФайла) Тогда
Лог.Отладка("Не существует файл предыдущего коммита git %1", ИмяФайла);

Check notice on line 271 in src/Классы/КомандаОбновлениеОкружения.os

View check run for this annotation

sonar.openbsl.ru qa-bot / Vanessa-Runner Sonarqube Results

src/Классы/КомандаОбновлениеОкружения.os#L271

Возможная опечатка в "коммита"
Возврат "";
КонецЕсли;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
МенеджерСборки.Деструктор();
ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
КонецПопытки;
Лог.Информация("Сборка расширения из исходников завершена.");
Лог.Информация("Сборка расширения %1 из исходников завершена.", ИмяРасширения);

МенеджерСборки.Деструктор();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,21 @@
//
///////////////////////////////////////////////////////////////////////////////////////////////////

#Использовать logos
#Использовать v8runner
#Область ОписаниеПеременных

Перем Лог;
Перем МенеджерКонфигуратора;
Перем МенеджерВерсий;
Перем Лог; // Экземпляр логгера
Перем МенеджерКонфигуратора; // Экземпляр менеджера работы с конфигурацией
Перем МенеджерВерсий; // Эксземпляр менеджера работы с версиями

// Параметры команды
Перем ИмяФайлаПоставки;
Перем КаталогИсходников;
Перем НомерСборки;
Перем ЗагружатьВТекущую;
Перем ИмяФайлаПоставки; // Путь к файлу конфигурации поставки
Перем КаталогИсходников; // Каталог с исходниками конфигурации
Перем НомерСборки; // Текущий номер сборки
Перем ЗагружатьВТекущую; // Флаг загрузки в текущую информационную базу

///////////////////////////////////////////////////////////////////////////////////////////////////
// Прикладной интерфейс
#КонецОбласти

#Область ОбработчикиСобытий

Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт

Expand All @@ -41,7 +41,8 @@
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--src", "Каталог с исходниками конфигурации");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--build-number", "Номер сборки");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--current", "Флаг загрузки в указанную базу или -с");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-c", "Флаг загрузки в указанную базу, краткая форма от --current");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-c",
"Флаг загрузки в указанную базу, краткая форма от --current");

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

Expand All @@ -53,6 +54,9 @@
// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений
// ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно)
//
// Возвращаемое значение:
// Число - Код возврата команды.
//
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт

Лог = ДополнительныеПараметры.Лог;
Expand Down Expand Up @@ -86,6 +90,10 @@

КонецФункции // ВыполнитьКоманду

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

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

Процедура СоздатьФайлПоставки()

Если ЗначениеЗаполнено(КаталогИсходников) Тогда
Expand Down Expand Up @@ -119,3 +127,5 @@
КонецЦикла;

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

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