Skip to content

Commit d4ec54b

Browse files
committed
[FEAT] Добавлен параметр ibsrv для запуска команд с использование автономного сервера
1 parent cd57dc7 commit d4ec54b

File tree

40 files changed

+1388
-145
lines changed

40 files changed

+1388
-145
lines changed

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
.ЗависитОт("cmdline", "1.0.0")
127127
.ЗависитОт("fluent", "0.6.1")
128128
.ЗависитОт("fs", "1.2.0")
129-
.ЗависитОт("ibcmdrunner", "0.2.5")
129+
.ЗависитОт("ibcmdrunner", "0.3.0")
130130
.ЗависитОт("json", "1.1.1")
131131
.ЗависитОт("logos", "1.7.0")
132132
.ЗависитОт("ParserFileV8i", "0.0.5")

src/Классы/КомандаЗапуститьВРежимеПредприятия.os

Lines changed: 59 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
///////////////////////////////////////////////////////////////////////////////////////////////////
22
//
3-
// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров
3+
// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей
4+
// запускаемых обработок и параметров
45
//
56
// TODO добавить фичи для проверки команды
67
//
@@ -11,13 +12,16 @@
1112
//
1213
///////////////////////////////////////////////////////////////////////////////////////////////////
1314

14-
#Использовать logos
15-
#Использовать v8runner
15+
#Использовать fs
1616

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

19-
///////////////////////////////////////////////////////////////////////////////////////////////////
20-
// Прикладной интерфейс
19+
Перем Лог; // Экземпляер логгера
20+
Перем ПутьОбработкиДляЗапуска; // Путь внешней обработки 1С для запуска в предприятии
21+
22+
#КонецОбласти
23+
24+
#Область ОбработчикиСобытий
2125

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

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

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

70-
Лог = ДополнительныеПараметры.Лог;
80+
Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры);
81+
82+
ПутьОбработкиДляЗапуска = ПутьОбработкиДляЗапуска(ПараметрыКоманды["--execute"]);
83+
84+
ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера();
85+
86+
Действие = Новый Действие(ЭтотОбъект, "ЗапуститьВРежимеПредприятия");
87+
Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера);
88+
89+
КонецФункции
90+
91+
#КонецОбласти
92+
93+
#Область СлужебныйПрограммныйИнтерфейс
94+
95+
Функция ЗапуститьВРежимеПредприятия(ПараметрыКоманды) Экспорт
7196

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

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

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

84-
МенеджерКонфигуратора.Конструктор(ДанныеПодключения, ПараметрыКоманды);
85-
86106
ПутьКФайлуСтатусаВыполнения = ПараметрыКоманды["--exitCodePath"];
87107
КомандаЗапуска = КомандаЗапуска(ПараметрыКоманды["--command"], ПутьКФайлуСтатусаВыполнения);
88108
ПутьЛогаВыполнения = ПараметрыКоманды["--online-file"];
@@ -102,7 +122,7 @@
102122
Попытка
103123
МенеджерКонфигуратора.ЗапуститьВРежимеПредприятияСПроверкойВыполнения(
104124
ДопСообщения,
105-
КомандаЗапуска, ПутьОбработки1С,
125+
КомандаЗапуска, ПутьОбработкиДляЗапуска,
106126
ЗапускатьТолстыйКлиент, ДополнительныеПараметры,
107127
ОжидатьЗавершения,
108128
ПутьЛогаВыполнения,
@@ -115,8 +135,13 @@
115135
МенеджерКонфигуратора.Деструктор();
116136

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

141+
#КонецОбласти
142+
143+
#Область СлужебныеПроцедурыИФункции
144+
120145
Функция КомандаЗапуска(Знач ПараметрКомандаЗапуска, Знач ПутьКФайлуСтатусаВыполнения)
121146

122147
КомандыЗапуска = Новый Массив;
@@ -148,3 +173,23 @@
148173
Функция Заменить_runnerRoot_на_КаталогVanessaRunner(Знач ИсходнаяСтрока)
149174
Возврат СтрЗаменить(ИсходнаяСтрока, "$runnerRoot", ОбщиеМетоды.КаталогПроекта());
150175
КонецФункции
176+
177+
Функция ПутьОбработкиДляЗапуска(Знач ПутьОбработки1С)
178+
179+
Если ПустаяСтрока(ПутьОбработки1С) Тогда
180+
Возврат "";
181+
КонецЕсли;
182+
183+
ПутьОбработки1С = Заменить_runnerRoot_на_КаталогVanessaRunner(ПутьОбработки1С);
184+
ПутьОбработки1С = ОбщиеМетоды.ПолныйПуть(ПутьОбработки1С);
185+
186+
Если ФС.ФайлСуществует(ПутьОбработки1С) Тогда
187+
Возврат ПутьОбработки1С;
188+
Иначе
189+
ВызватьИсключение СтрШаблон("Файл внешней обработки ""%1"" не существует на диске!",
190+
ПутьОбработки1С);
191+
КонецЕсли;
192+
193+
КонецФункции
194+
195+
#КонецОбласти

src/Классы/КомандаЗапуститьКонфигуратор.os

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99
//
1010
///////////////////////////////////////////////////////////////////////////////////////////////////
1111

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

1514
Перем Лог;
1615

17-
///////////////////////////////////////////////////////////////////////////////////////////////////
18-
// Прикладной интерфейс
16+
#КонецОбласти
17+
18+
#Область ОбработчикиСобытий
1919

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

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

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

54-
Лог = ДополнительныеПараметры.Лог;
57+
Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры);
58+
59+
ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера();
60+
ПараметрыАвтономногоСервера.ИспользоватьПрямоеСоединение = Истина;
61+
62+
Действие = Новый Действие(ЭтотОбъект, "ЗапуститьКонфигуратор");
63+
Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера);
64+
65+
КонецФункции // ВыполнитьКоманду
66+
67+
#КонецОбласти
68+
69+
#Область СлужебныйПрограммныйИнтерфейс
70+
71+
Функция ЗапуститьКонфигуратор(ПараметрыКоманды) Экспорт
5572

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

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

89106
Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
90-
КонецФункции // ВыполнитьКоманду
107+
КонецФункции
108+
109+
#КонецОбласти

src/Классы/КомандаИнициализацияОкружения.os

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@
1010
#Область ОписаниеПеременных
1111

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

1515
// Параметры команды
16-
Перем ДанныеПодключения;
17-
Перем ПараметрыХранилища;
18-
Перем РежимыРеструктуризации;
19-
Перем РежимРазработчика;
20-
Перем ПутьКФайлуКонфигурации;
21-
Перем ПутьКИсходникам;
22-
Перем ПутьКФайлуВыгрузки;
16+
Перем ДанныеПодключения; // Данные подключения к ИБ
17+
Перем ПараметрыХранилища; // Параметры подключения к хранилищу
18+
Перем РежимыРеструктуризации; // Доступные режимы реструктуризации
19+
Перем РежимРазработчика; // Режим разработчика
20+
Перем ПутьКФайлуКонфигурации; // Путь к файлу конфигурации
21+
Перем ПутьКИсходникам; // Путь к исходным файлам кофнигурации
22+
Перем ПутьКФайлуВыгрузки; // Путь к файлу выгрузки информационной базы
2323

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

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

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,22 @@
66
// oscript-app-template (C) EvilBeaver
77
//
88
///////////////////////////////////////////////////////////////////
9+
910
#Использовать gitrunner
11+
1012
#Область ОписаниеПеременных
1113

1214
Перем Лог; // Экземпляр логгера
13-
Перем КорневойПутьПроекта;
14-
15-
Перем ДанныеПодключения;
16-
Перем ПараметрыХранилища;
17-
Перем РежимыРеструктуризации;
18-
Перем РежимРазработчика;
19-
Перем ПутьКИсходникам;
20-
Перем ПутьКФайлуВыгрузки;
21-
Перем ИнкрементальнаяЗагрузкаGit;
22-
Перем СниматьСПоддержки;
15+
Перем КорневойПутьПроекта; // Путь к корневой папке проекта
16+
17+
Перем ДанныеПодключения; // Данные подключения к ИБ
18+
Перем ПараметрыХранилища; // Параметры подключения к хранилищу
19+
Перем РежимыРеструктуризации; // Доступные режимы реструктуризации
20+
Перем РежимРазработчика; // Режим разработчика
21+
Перем ПутьКИсходникам; // Путь к исходным файлам кофнигурации
22+
Перем ПутьКФайлуВыгрузки; // Путь к файлу выгрузки информационной базы
23+
Перем ИнкрементальнаяЗагрузкаGit; // Использовать инкрементальную загрузку из репозитория git
24+
Перем СниматьСПоддержки; // Снимать конфигурацию с поддержки перед загрузкой
2325

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

src/Классы/КомандаСборкаРасширений.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
МенеджерСборки.Деструктор();
6262
ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
6363
КонецПопытки;
64-
Лог.Информация("Сборка расширения из исходников завершена.");
64+
Лог.Информация("Сборка расширения %1 из исходников завершена.", ИмяРасширения);
6565

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

src/Классы/КомандаСоздатьФайлПоставки.os

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,21 @@
99
//
1010
///////////////////////////////////////////////////////////////////////////////////////////////////
1111

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

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

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

25-
///////////////////////////////////////////////////////////////////////////////////////////////////
26-
// Прикладной интерфейс
24+
#КонецОбласти
25+
26+
#Область ОбработчикиСобытий
2727

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

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

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

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

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

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

93+
#КонецОбласти
94+
95+
#Область СлужебныеПроцедурыИФункции
96+
8997
Процедура СоздатьФайлПоставки()
9098

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

121129
КонецПроцедуры
130+
131+
#КонецОбласти

0 commit comments

Comments
 (0)