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