Модули для 1С\Обновление конфигураций 1С
Функция Выполнить()
// Обновление отмеченных конфигураций 1С
ПутьК1СОбщий = Главный.'Путь к программе 1С 8.3';
ЛогинОбщий = Главный.'Логин для 1С по умолчанию';
ПарольОбщий = Главный.'Пароль для 1С по умолчанию';
ПутьКПоставкеОбщий = Главный.'Путь к файлу поставки';
// можно задать конкретные имена баз без учета отмеченных
// НаименованияБД="";
// НаименованияБД.Добавить("Информационная база 1");
// НаименованияБД.Добавить("Информационная база 2");
// Для НаименованиеБД Из НаименованияБД Цикл
// БД=Главный.Найти("Наименование", НаименованиеБД,"Тип объекта", Объекты.'БД 1С 8');
// Если(БД<>0)Тогда
Для БД Из Главный Цикл
Если ((БД.Отмечен=1)И(БД.Тип()=Объекты.'БД 1С 8')) Тогда
Подключение = "";
Сервер = БД.'Кластер серверов 1С';
ИмяБД = БД.'Имя базы данных 1С';
Если (ИмяБД="") Тогда // файловый вариант
ПутьКБазе = БД.Путь;
Если (ПутьКБазе<>"") Тогда
ИмяБД = Строки.Справа(ПутьКБазе, 0, Символы.ОС);
Подключение = "/F"+ ПутьКБазе;
Конец;
Иначе
Подключение = "/S"+ Сервер + Символы.ОС + ИмяБД;
Конец;
ПутьК1С = БД.'Путь к программе 1С 8.3'; Если (ПутьК1С="") Тогда ПутьК1С = ПутьК1СОбщий; Конец;
ПутьКПоставке = БД.'Путь к файлу поставки'; Если (ПутьКПоставке="") Тогда ПутьКПоставке = ПутьКПоставкеОбщий; Конец;
Логин = БД.'Логин для 1С по умолчанию'; Если (Логин="") Тогда Логин = ЛогинОбщий; Конец;
Пароль = БД.'Пароль для 1С по умолчанию'; Если (Пароль="") Тогда Пароль = ПарольОбщий; Конец;
Если (Пароль<>"") Тогда Пароль = " /P"+ Пароль; Конец;
Если (Логин="") Тогда Сообщить("Не задан логин 1С"); Продолжить; Конец;
Если (Файлы.Есть(ПутьК1С)=0) Тогда Сообщить("Не найдена программа 1С", ПутьК1С); Продолжить; Конец;
Если (Файлы.Есть(ПутьКПоставке)=0) Тогда Сообщить("Не найдена файл поставки", ПутьКПоставке); Продолжить; Конец;
ПутьКФайлуЛог = Компьютеры.Директории("%DATA%")+ Символы.ОС + "Update-"+ БД.Наименование + ".log";
Файлы.Удалить(ПутьКФайлуЛог);
Сообщить("Обновление конфигурации", ИмяБД, "файл поставки - " + ПутьКПоставке);
СтрокаПараметров = "config /DisableStartupMessages "+ Подключение + " /N"+ Логин + Пароль + " /UpdateCfg """+ ПутьКПоставке + """ /UpdateDBCfg /OUT """+ ПутьКФайлуЛог + """";
// Сообщить(СтрокаПараметров);
// Продолжить;
Запустить(ПутьК1С, СтрокаПараметров, 0, 1);
Если (Файлы.Есть(ПутьКФайлуЛог)) Тогда
Лог = "";
Лог.Прочитать(ПутьКФайлуЛог);
Для Стр Из Лог Цикл
Сообщить(Стр);
Конец;
Иначе
Сообщить("Обновление не выполнено!");
Конец;
Сообщить("------");
Конец;
Конец;
Сообщения.Сохранить(); // сохраняем сообщения в папку Data\Messages
Конец