Пакетное автообновление нескольких типовых бухгалтерий 1С 8

Последнее время зачастили выпуски обновлений конфигурации "Бухгалтерия предприятия" 1С 8. Если количество баз более 10 и они находятся на поддержке (т.е. не вносились изменения) имеет смысл в автоматизации этой работы.
Поиск не принёс плодов: есть мощные решения даже для конфигураций с изменениями, но чего-то простого для нашего случая не нашлось. Хотя проблема, уверен, распространенная.
За обновление отвечает встроенная обработка ОбновлениеКонфигурации. Предполагается что эта обработка в каждой базе настроена для обновления через интернет. Т.е. уже введены номер пользовательского соглашения и пароль.
Т.к. наши базы данных на поддержке и изменения в конфигурацию вносить не можем, то нам придется сделать внешнюю обработку startupd.epf, которая вызовет "ОбновлениеКонфигурации" и проведет процедуру обновления. В примитивной обработке startupd.epf всего одня процедура.

Процедура ПриОткрытии()

   
// будем вести запись изменений в лог, который будем хранить
    // рядом с файлом внешней обработки
   
ИмяФайла = СтрЗаменить(ЭтотОбъект.ИспользуемоеИмяФайла,".epf",".log");
   
ЛогФайл = Новый ТекстовыйДокумент;
    Попытка
       
ЛогФайл.Прочитать(ИмяФайла);
    Исключение
    КонецПопытки;
   
ЛогФайл.ДобавитьСтроку(""+ТекущаяДата()+" ; версия "+Константы.НомерВерсииКонфигурации.Получить()
                           +
" ; "+СтрокаСоединенияИнформационнойБазы());
   
ЛогФайл.Записать(ИмяФайла);


   
ЗначениеПроверятьПриЗапуске = ВосстановитьЗначение("ПроверкаНаличияОбновленияПроверятьПриЗапуске");
   
//временно выставляем флажок, иначе поиск обновлений не произойдет
   
СохранитьЗначение("ПроверкаНаличияОбновленияПроверятьПриЗапуске", Истина);
   
Обр = Обработки.ОбновлениеКонфигурации.Создать();
   
Обр.ИнициализироватьПеременные();
   
Обр.ПроверитьНаличиеОбновлений();
    Если
Обр.ДоступныеОбновления <> Неопределено Тогда
       
//если нашлись доступные обновления, то обновляемся
       
Обр.ВыполнитьОбновлениеКонфигурации();
    КонецЕсли;
   
//возвращаем флажок на место
   
СохранитьЗначение("ПроверкаНаличияОбновленияПроверятьПриЗапуске", ЗначениеПроверятьПриЗапуске);

   
//закрываемся, работа завершена
   
ЗавершитьРаботуСистемы(Ложь);

КонецПроцедуры

Теперь батник, который будет последовательно открывать базы и выполнять данную обработку. Не самое лучшее решение. Ключ /WAIT не работает скорее всего потому, что 1cstart.exe завершается и порождает новый процесс 1cv8.exe
Я просто выжидаю паузу в 10 минут между запусками. Если есть лучшее решение напишите в комментах.

set EXEC1C=start "" /WAIT Путь_К_1С\1cestart.exe ENTERPRISE /S
set KEYS1C=/executeПуть_к_обработке_и_логу\startupd.epf /DisableStartupMessages
set PAUSE1C=@ping localhost -n 600 > nul

%EXEC1C% srv8\buh_base1 %KEYS1C%
%PAUSE1C%
%EXEC1C% srv8\buh_base2 %KEYS1C%
%PAUSE1C%
%EXEC1C% srv8\buh_base3 %KEYS1C%
%PAUSE1C%
...


обработка тестировалась при обновлении с 2.0.34.11 на 2.0.34.13, на более ранних версиях и на других конфигурациях работа не гарантируется. используйте на свой страх и риск

Прикрепленный файлРазмер
скачать бесплатно обработку startupd.epf5.79 кб

Похожие материалы

Справочники

Документы

Отчеты

Обработки