|
1 | 1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
|
2 | 2 | //
|
3 |
| -// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров |
| 3 | +// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей |
| 4 | +// запускаемых обработок и параметров |
4 | 5 | //
|
5 | 6 | // TODO добавить фичи для проверки команды
|
6 | 7 | //
|
|
11 | 12 | //
|
12 | 13 | ///////////////////////////////////////////////////////////////////////////////////////////////////
|
13 | 14 |
|
14 |
| -#Использовать logos |
15 |
| -#Использовать v8runner |
| 15 | +#Использовать fs |
16 | 16 |
|
17 |
| -Перем Лог; |
| 17 | +#Область ОписаниеПеременных |
18 | 18 |
|
19 |
| -/////////////////////////////////////////////////////////////////////////////////////////////////// |
20 |
| -// Прикладной интерфейс |
| 19 | +Перем Лог; // Экземпляер логгера |
| 20 | +Перем ПутьОбработкиДляЗапуска; // Путь внешней обработки 1С для запуска в предприятии |
| 21 | + |
| 22 | +#КонецОбласти |
| 23 | + |
| 24 | +#Область ОбработчикиСобытий |
21 | 25 |
|
22 | 26 | // Регистрация команды и ее аргументов/ключей
|
23 | 27 | //
|
|
55 | 59 | | Значение ""2"" означает выполнение запуска с предупреждением.
|
56 | 60 | | Любое другое значение эквивалентно отсутствию файла.");
|
57 | 61 |
|
| 62 | + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--ibsrv", |
| 63 | + "Запуск команды с использованием утилиты ibsrv"); |
| 64 | + |
58 | 65 | Парсер.ДобавитьКоманду(ОписаниеКоманды);
|
59 | 66 |
|
60 | 67 | КонецПроцедуры // ЗарегистрироватьКоманду
|
|
65 | 72 | // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений
|
66 | 73 | // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно)
|
67 | 74 | //
|
| 75 | +// Возвращаемое значение: |
| 76 | +// Число - Код возврата команды |
| 77 | +// |
68 | 78 | Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт
|
69 | 79 |
|
70 |
| - Лог = ДополнительныеПараметры.Лог; |
| 80 | + Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры); |
| 81 | + |
| 82 | + ПутьОбработкиДляЗапуска = ПутьОбработкиДляЗапуска(ПараметрыКоманды["--execute"]); |
| 83 | + |
| 84 | + ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера(); |
| 85 | + |
| 86 | + Действие = Новый Действие(ЭтотОбъект, "ЗапуститьВРежимеПредприятия"); |
| 87 | + Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера); |
| 88 | + |
| 89 | +КонецФункции |
| 90 | + |
| 91 | +#КонецОбласти |
| 92 | + |
| 93 | +#Область СлужебныйПрограммныйИнтерфейс |
| 94 | + |
| 95 | +Функция ЗапуститьВРежимеПредприятия(ПараметрыКоманды) Экспорт |
71 | 96 |
|
72 | 97 | // TODO отрефакторить получение ЗапускатьТолстыйКлиент
|
73 | 98 | ЗапускатьТолстыйКлиент = ОбщиеМетоды.УказанПараметрТолстыйКлиент(ПараметрыКоманды["--ordinaryapp"], Лог);
|
74 | 99 | ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"];
|
75 | 100 |
|
76 | 101 | МенеджерКонфигуратора = Новый МенеджерКонфигуратора;
|
77 |
| - |
78 |
| - ПутьОбработки1С = ПараметрыКоманды["--execute"]; |
79 |
| - ПутьОбработки1С = Заменить_runnerRoot_на_КаталогVanessaRunner(ПутьОбработки1С); |
80 |
| - ПутьОбработки1С = ОбщиеМетоды.ПолныйПуть(ПутьОбработки1С); |
| 102 | + МенеджерКонфигуратора.Конструктор(ДанныеПодключения, ПараметрыКоманды); |
81 | 103 |
|
82 | 104 | ОжидатьЗавершения = Не ПараметрыКоманды["--no-wait"];
|
83 | 105 |
|
84 |
| - МенеджерКонфигуратора.Конструктор(ДанныеПодключения, ПараметрыКоманды); |
85 |
| - |
86 | 106 | ПутьКФайлуСтатусаВыполнения = ПараметрыКоманды["--exitCodePath"];
|
87 | 107 | КомандаЗапуска = КомандаЗапуска(ПараметрыКоманды["--command"], ПутьКФайлуСтатусаВыполнения);
|
88 | 108 | ПутьЛогаВыполнения = ПараметрыКоманды["--online-file"];
|
|
102 | 122 | Попытка
|
103 | 123 | МенеджерКонфигуратора.ЗапуститьВРежимеПредприятияСПроверкойВыполнения(
|
104 | 124 | ДопСообщения,
|
105 |
| - КомандаЗапуска, ПутьОбработки1С, |
| 125 | + КомандаЗапуска, ПутьОбработкиДляЗапуска, |
106 | 126 | ЗапускатьТолстыйКлиент, ДополнительныеПараметры,
|
107 | 127 | ОжидатьЗавершения,
|
108 | 128 | ПутьЛогаВыполнения,
|
|
115 | 135 | МенеджерКонфигуратора.Деструктор();
|
116 | 136 |
|
117 | 137 | Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
|
| 138 | + |
118 | 139 | КонецФункции // ВыполнитьКоманду
|
119 | 140 |
|
| 141 | +#КонецОбласти |
| 142 | + |
| 143 | +#Область СлужебныеПроцедурыИФункции |
| 144 | + |
120 | 145 | Функция КомандаЗапуска(Знач ПараметрКомандаЗапуска, Знач ПутьКФайлуСтатусаВыполнения)
|
121 | 146 |
|
122 | 147 | КомандыЗапуска = Новый Массив;
|
|
148 | 173 | Функция Заменить_runnerRoot_на_КаталогVanessaRunner(Знач ИсходнаяСтрока)
|
149 | 174 | Возврат СтрЗаменить(ИсходнаяСтрока, "$runnerRoot", ОбщиеМетоды.КаталогПроекта());
|
150 | 175 | КонецФункции
|
| 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 | +#КонецОбласти |
0 commit comments