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