Пример кода, для автоматического обновления конфигурации базы данных 1С.
Процедура ОбновитьКонфигурациюБазыДанных() // Подключение к кластеру и поиск текущий базы данных. // 1545 порт, на котором расположен сервис ras. АдминистрированиеСервера = Новый АдминистрированиеСервера("127.0.0.1", 1545); АдминистрированиеСервера.ВыполнитьАутентификацию(); // <- Если необходимо, указать логин и пароль. ИмяБазыДанных = НСтр(СтрокаСоединенияИнформационнойБазы(), "Ref"); ТекущаяИнформационнаяБаза = Неопределено; Кластеры = АдминистрированиеСервера.ПолучитьКластеры(); Для каждого Кластер Из Кластеры Цикл Кластер.ВыполнитьАутентификацию(); // <- Если необходимо, указать логин и пароль. ИнформационныеБазы = Кластер.ПолучитьИнформационныеБазы(); Для каждого ИнформационнаяБаза Из ИнформационныеБазы Цикл Если ИнформационнаяБаза.Имя = ИмяБазыДанных Тогда ТекущаяИнформационнаяБаза = ИнформационнаяБаза; Прервать; КонецЕсли; КонецЦикла; КонецЦикла; Если ТекущаяИнформационнаяБаза = Неопределено Тогда ВызватьИсключение НСтр("ru = 'Не удалось определить текущую информационную базу.'"); КонецЕсли; // Установка блокировки начала сеансов. ТекущаяИнформационнаяБаза.ВыполнитьАутентификацию("Администратор"); // <- Если необходимо, указать логин и пароль. ТекущаяИнформационнаяБаза.ВключенаБлокировкаНачалаСеансов = Истина; ТекущаяИнформационнаяБаза.БлокировкаРегламентныхЗаданий = Истина; ТекущаяИнформационнаяБаза.КодРазрешенияНачалаСеансов = "123"; ТекущаяИнформационнаяБаза.СообщениеБлокировки = "Выполняется автоматическое обновление конфигурации базы данных."; ТекущаяИнформационнаяБаза.Записать(); // Завершение сеансов, кроме текущего. ТекущийСеанс = Неопределено; НомерТекущегоСеанса = НомерСеансаИнформационнойБазы(); Сеансы = ТекущаяИнформационнаяБаза.ПолучитьСеансы(); Для каждого Сеанс Из Сеансы Цикл Если Сеанс.НомерСеанса = НомерТекущегоСеанса Тогда ТекущийСеанс = Сеанс; Продолжить; КонецЕсли; Сеанс.ЗавершитьСеанс("Выполняется автоматическое обновление конфигурации базы данных."); КонецЦикла; // Подготовка и запуск конфигуратора в пакетном режиме. КомандаЗапуска = Новый Массив; Если ОбщегоНазначения.ЭтоWindowsСервер() Тогда КомандаЗапуска.Вставить(КаталогПрограммы() + "1cv8.exe"); Иначе КомандаЗапуска.Вставить(КаталогПрограммы() + "1cv8"); КонецЕсли; КомандаЗапуска.Добавить("DESIGNER"); КомандаЗапуска.Добавить("/IBConnectionString"); КомандаЗапуска.Добавить(СтрокаСоединенияИнформационнойБазы()); КомандаЗапуска.Добавить("/N"); КомандаЗапуска.Добавить("Администратор"); // <- Указать имя пользователя. КомандаЗапуска.Добавить("/P"); КомандаЗапуска.Добавить(""); // <- Указать пароль пользователя. КомандаЗапуска.Добавить("/UC"); КомандаЗапуска.Добавить("/123"); КомандаЗапуска.Добавить("/DisableStartupMessages"); КомандаЗапуска.Добавить("/DisableStartupDialogs"); КомандаЗапуска.Добавить("/UpdateDBCfg"); // Команда для снятие блокировки начала сеансов. КомандаЗапуска.Добавить("/RunEnterprise ""/CРазрешитьРаботуПользователей /UC123"""); ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы(); ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Ложь; ФайловаяСистема.ЗапуститьПрограмму(КомандаЗапуска, ПараметрыЗапускаПрограммы); ТекущийСеанс.ЗавершитьСеанс(); КонецПроцедуры
Думаю, что в блоке
вместо Вставить должно быть Добавить.