Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
///////////////////////////////////////////////////////////////////////////////////////////////////
// Прикладной интерфейс
Перем Лог;
Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт
ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, "Обновить из хранилища подключенную базу");
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "СтрокаПодключения", "Строка подключения к рабочему контуру");
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "АдресХранилища", "Путь или сетевой адрес хранилища 1С");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды,
"-db-user",
"Пользователь информационной базы");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды,
"-db-pwd",
"Пароль пользователя информационной базы");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды,
"-storage-user",
"Пользователь хранилища конфигурации");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды,
"-storage-pwd",
"Пароль пользователя хранилища конфигурации");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды,
"-storage-ver",
"Версия (номер) закладки в хранилище - необязательно");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды,
"-v8version",
"Маска версии платформы 1С");
Парсер.ДобавитьКоманду(ОписаниеКоманды);
КонецПроцедуры
Функция ВыполнитьКоманду(Знач ПараметрыКоманды) Экспорт
СтрокаПодключения = ПараметрыКоманды["СтрокаПодключения"];
АдресХранилища = ПараметрыКоманды["АдресХранилища"];
ПользовательБазы = ПараметрыКоманды["-db-user"];
ПарольПользователяБазы = ПараметрыКоманды["-db-pwd"];
ПользовательХранилища = ПараметрыКоманды["-storage-user"];
ПарольПользователяХранилища = ПараметрыКоманды["-storage-pwd"];
ВерсияХранилища = ПараметрыКоманды["-storage-ver"];
МаскаВерсии = ПараметрыКоманды["-v8version"];
ВозможныйРезультат = МенеджерКомандПриложения.РезультатыКоманд();
Если ПустаяСтрока(СтрокаПодключения) Тогда
Лог.Ошибка("Не задана строка подключения к базе");
Возврат ВозможныйРезультат.НеверныеПараметры;
КонецЕсли;
Если ПустаяСтрока(АдресХранилища) Тогда
Лог.Ошибка("Не задана строка подключения к хранилищу");
Возврат ВозможныйРезультат.НеверныеПараметры;
КонецЕсли;
Если ПустаяСтрока(ПользовательХранилища) Тогда
Лог.Ошибка("Не задан пользователь хранилища");
Возврат ВозможныйРезультат.НеверныеПараметры;
КонецЕсли;
Конфигуратор = ЗапускПриложений.НастроитьКонфигуратор(СтрокаПодключения, ПользовательБазы, ПарольПользователяБазы);
Параметры = Конфигуратор.СтандартныеПараметрыЗапускаКонфигуратора();
Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаПодключения+"""");
Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+"""");
Если Не ПустаяСтрока(ПарольПользователяХранилища) Тогда
Параметры.Добавить("/ConfigurationRepositoryP """+ПарольПользователяХранилища+"""");
КонецЕсли;
Параметры.Добавить("/ConfigurationRepositoryUpdateCfg");
Параметры.Добавить("-force");
Если Не ПустаяСтрока(ВерсияХранилища) Тогда
Параметры.Добавить("-v" + ВерсияХранилища);
КонецЕсли;
Попытка
Конфигуратор.ВыполнитьКоманду(Параметры);
Текст = Конфигуратор.ВыводКоманды();
Если Не ПустаяСтрока(Текст) Тогда
Лог.Информация(Текст);
КонецЕсли;
Возврат ВозможныйРезультат.Успех;
Исключение
Лог.Ошибка(Конфигуратор.ВыводКоманды());
Возврат ВозможныйРезультат.ОшибкаВремениВыполнения;
КонецПопытки;
КонецФункции
Лог = Логирование.ПолучитьЛог("vanessa.app.deployka");