forked from vanessa-opensource/vanessa-runner
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Перенесена команда "ЗапуститьВРежимеПредприятия"
Добавлен доп.параметры запуска в режиме Предприятия Исправлена ошибка, возникающая в некоторых режимах запуска команды
- Loading branch information
Showing
3 changed files
with
131 additions
and
77 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
/////////////////////////////////////////////////////////////////////////////////////////////////// | ||
// | ||
// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/тонкого клиента с передачей запускаемых обработок и параметров | ||
// | ||
// TODO добавить фичи для проверки команды | ||
// | ||
// Служебный модуль с набором методов работы с командами приложения | ||
// | ||
// Структура модуля реализована в соответствии с рекомендациями | ||
// oscript-app-template (C) EvilBeaver | ||
// | ||
/////////////////////////////////////////////////////////////////////////////////////////////////// | ||
|
||
#Использовать logos | ||
#Использовать v8runner | ||
|
||
Перем Лог; | ||
|
||
/////////////////////////////////////////////////////////////////////////////////////////////////// | ||
// Прикладной интерфейс | ||
|
||
Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт | ||
|
||
ТекстОписания = | ||
" Выполнение команды/действия в 1С:Предприятие в режиме тонкого/тонкого клиента с передачей запускаемых обработок и параметров | ||
| "; | ||
|
||
ОписаниеКоманды = Парсер.ОписаниеКоманды(ПараметрыСистемы.ВозможныеКоманды().ЗапуститьВРежимеПредприятия, | ||
ТекстОписания); | ||
|
||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--uccode", "Ключ разрешения запуска"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--command", "Строка, передаваемая в ПараметрыЗапуска /C''"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--execute", "Путь внешней обработки 1С для запуска в предприятии"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--additional", | ||
"Дополнительные параметры для запуска предприятия."); | ||
|
||
Парсер.ДобавитьКоманду(ОписаниеКоманды); | ||
|
||
КонецПроцедуры // ЗарегистрироватьКоманду | ||
|
||
// Выполняет логику команды | ||
// | ||
// Параметры: | ||
// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений | ||
// ДополнительныеПараметры (необязательно) - Соответствие - дополнительные параметры | ||
// | ||
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт | ||
|
||
Лог = ДополнительныеПараметры.Лог; | ||
|
||
// TODO отрефакторить получение ЗапускатьТолстыйКлиент | ||
ЗапускатьТолстыйКлиент = ОбщиеМетоды.УказанПараметрТолстыйКлиент(ПараметрыКоманды["--ordinaryapp"], Лог); | ||
|
||
ЗапуститьВРежимеПредприятия(ПараметрыКоманды["--ibname"], ПараметрыКоманды["--db-user"], ПараметрыКоманды["--db-pwd"], | ||
ПараметрыКоманды["--uccode"], ПараметрыКоманды["--command"], | ||
ОбщиеМетоды.ПолныйПуть(ПараметрыКоманды["--execute"]), | ||
ЗапускатьТолстыйКлиент, ПараметрыКоманды["--v8version"], | ||
ПараметрыКоманды["--additional"]); | ||
|
||
Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; | ||
КонецФункции // ВыполнитьКоманду | ||
|
||
// Выполнить команду/действие в режиме 1С:Предприятия | ||
// | ||
// Параметры: | ||
// СтрокаПодключения - <Строка> - Строка подключения к БД | ||
// Пользователь - <Строка> - Пользователь | ||
// Пароль - <Строка> - Пароль для пользователя | ||
// КлючРазрешенияЗапуска - <Строка> - <описание параметра> | ||
// ПараметрЗапуска - <Строка> - <описание параметра> | ||
// ОбработкаДляЗапуска - <Строка> - <описание параметра> | ||
// ТолстыйКлиент - <Булево> - признак запуска толстого клиента | ||
// ВерсияПлатформы - <Строка> - <описание параметра> | ||
// ДополнительныеКлючиЗапуска - <Строка> - <описание параметра> | ||
// | ||
Процедура ЗапуститьВРежимеПредприятия(Знач СтрокаПодключения, Знач Пользователь="", Знач Пароль="", | ||
Знач КлючРазрешенияЗапуска = "", Знач ПараметрЗапуска="", | ||
Знач ОбработкаДляЗапуска="", Знач ТолстыйКлиент = Ложь, | ||
Знач ВерсияПлатформы="", Знач ДополнительныеКлючиЗапуска = "") | ||
|
||
ТекущаяПроцедура = "ЗапуститьВРежимеПредприятия"; | ||
|
||
Ожидаем.Что(СтрокаПодключения, ТекущаяПроцедура+" не задана строка подключения").Заполнено(); | ||
|
||
Конфигуратор = Новый УправлениеКонфигуратором(); | ||
|
||
КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог(); | ||
Конфигуратор.КаталогСборки(КаталогВременнойИБ); | ||
|
||
Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); | ||
Если НЕ ПустаяСтрока(ВерсияПлатформы) Тогда | ||
Конфигуратор.ИспользоватьВерсиюПлатформы(ВерсияПлатформы); | ||
КонецЕсли; | ||
|
||
Если Не ТолстыйКлиент Тогда | ||
ТонкийКлиент1С = Конфигуратор.ПутьКТонкомуКлиенту1С(Конфигуратор.ПутьКПлатформе1С()); | ||
Конфигуратор.ПутьКПлатформе1С(ТонкийКлиент1С); | ||
КонецЕсли; | ||
|
||
Если Не ПустаяСтрока(КлючРазрешенияЗапуска) Тогда | ||
Конфигуратор.УстановитьКлючРазрешенияЗапуска(КлючРазрешенияЗапуска); | ||
КонецЕсли; | ||
|
||
ДополнительныеКлючи = ДополнительныеКлючиЗапуска; | ||
Если Не ПустаяСтрока(ОбработкаДляЗапуска) Тогда | ||
ДополнительныеКлючи = "" + ДополнительныеКлючи + "/Execute"+ОбщиеМетоды.ОбернутьПутьВКавычки(ОбработкаДляЗапуска); | ||
КонецЕсли; | ||
|
||
Лог.Отладка("ДополнительныеКлючи:"+ДополнительныеКлючи); | ||
Лог.Отладка("ПараметрЗапуска:"+ПараметрЗапуска); | ||
|
||
Попытка | ||
Конфигуратор.ЗапуститьВРежимеПредприятия(ПараметрЗапуска, Истина, ДополнительныеКлючи); | ||
Текст = Конфигуратор.ВыводКоманды(); | ||
Если Не ПустаяСтрока(Текст) Тогда | ||
Лог.Информация(Текст); | ||
КонецЕсли; | ||
|
||
Исключение | ||
Лог.Ошибка(Конфигуратор.ВыводКоманды()); | ||
ВызватьИсключение ТекущаяПроцедура; | ||
КонецПопытки; | ||
|
||
КонецПроцедуры | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters