Skip to content

Commit

Permalink
[FEAT] Добавлен параметр ibsrv для запуска команд с использование авт…
Browse files Browse the repository at this point in the history
…ономного сервера
  • Loading branch information
Segate-ekb committed Dec 4, 2024
1 parent cd57dc7 commit d4ec54b
Show file tree
Hide file tree
Showing 40 changed files with 1,388 additions and 145 deletions.
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
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

0 comments on commit d4ec54b

Please sign in to comment.