1С:Предприятие 8 - обновление информационных баз в пакетном режиме.

  • Автор:

1cv8-batch-update-000.jpgКаждый, кто занимался обновлением информационных баз 1С:Предприятие знает, что эта, в общем-то простая, операция становится очень трудоемкой и отнимает много времени если обновляемых баз много. Процесс обновления требует постоянного внимания со стороны специалиста: там подтвердить, там принять изменения, там согласиться, хотя сам процесс вмешательства, как правило, не требует (мы будем рассматривать находящиеся на поддержке конфигурации). Существенно облегчить жизнь поможет автоматизация этого процесса, о чем мы сегодня и поговорим.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Если у вас случайно оказались лишние 14 700 руб, то вы можете приобрести специализированный продукт 1С:Обновление информационных баз в пакетном режиме, остальным мы хотим предложить вспомнить возможности ключей запуска 1С, которые в умелых руках позволяют творить чудеса, причем совершенно бесплатно.

Специальный ключ:

/UpdateCfg <имя cf | cfu файла>

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

Второй ключ:

/UpdateDBCfg

производит обновление конфигурации базы данных.

Как видим, все необходимые инструменты есть, осталось научиться их правильно применять. Откроем блокнот и начнем написание нашего скрипта:

:: Устанавливаем кодировку
chcp 1251

Так как очень часто в названиях папок с базами присутствуют русские буквы, установим кодировку  cp1251, иначе доступ к ним окажется невозможным. Несмотря на это в окне интерпретатора вы все равно будете видеть "крякозябры".

Следующим шагом зададим переменные. Это нужно сделать для того, чтобы, например при обновлении платформы или смене релиза не править весь скрипт, а изменить всего-лишь одну переменную. Обращаем внимание, что если значение переменных или опций содержат пробелы, то их необходимо заключать в кавычки.

:: Задаем переменные
setlocal

:: Задаем пути и релиз платформы 1С
set bin_dir="C:\Program Files (x86)\1cv8"
set bin_ver=8.3.5.1248

:: Задаем путь к обновлениям 1С
set cfu_dir=C:\Users\User_Name\AppData\Roaming\1C\1Cv82\tmplts\1c\

:: Задаем путь к папке с логами
set log_dir=C:\Users\User_Name\Documents\1C_Update_log

Если посмотреть внутрь каталога обновлений, то мы увидим следующую структуру:

1cv8-batch-update-001.jpgВнутри находятся папки конфигураций: Accounting - Бухгалтерия, Trade - Управление торговлей и т.д., которые содержат каталоги с номерами релизов. Таким образом путь к обновлениям содержит только одно изменяемое значение - номер релиза. Обратите внимание, что разделителем здесь является не точка, а нижнее подчеркивание. Продолжим наш скрипт:

:: Указываем релиз обновления
:: Бухгалтерия 2.0
set cfu_acc20=2_0_62_4

:: Бухгалтерия 3.0
set cfu_acc30=3_0_36_19

Таким образом можно следует указать пути ко всем необходимым каталогам обновлений. После чего можно переходить непосредственно к обновлению.

:: Обновляем Бухгалтерию 2.0 - ООО "Рога и Копыта"
%bin_dir%\%bin_ver%\bin\1cv8.exe CONFIG /F D:\1C_bases\Horns_and_Hooves /N"Иванов И.И." /PПаРоЛь /UpdateCfg %cfu_dir%\Accounting\%cfu_acc20%\1Cv8.cfu /UpdateDBCfg /Out %log_dir%\Horns_and_Hoove_%cfu_acc20%.log

Рассмотрим ключи подробнее:

  • CONFIG - запуск в режиме Конфигуратора;
  • /F - путь к базе данных в файловом режиме;
  • /S - путь к базе на сервере, задается в формате Имя_Сервера\Название_Базы;
  • /N - пользователь ИБ, если имя содержит пробелы, то его нужно взять в кавычки;
  • /P - пароль пользователя ИБ;
  • /UpdateCfg - обновление конфигурации, находящейся на поддержке, в аргументе указывается путь с cfu/cf - файлу;
  • /UpdateDBCfg - обновление конфигурации базы данных;
  • /Out - вывод лога в указанный файл.

Для примера, вторую запись сделаем для обновления ИБ на сервере:

:: Обновляем Бухгалтерию 3.0 - ООО "Вектор"
%bin_dir%\%bin_ver%\bin\1cv8.exe CONFIG /S SRV-1C83\Vector /N"Иванов И.И." /PПаРоЛь /UpdateCfg %cfu_dir%\Accounting\%cfu_acc30%\1Cv8.cfu /UpdateDBCfg /Out %log_dir%\Vector_%cfu_acc30%.log

Добавив строки для всех требующих обновления баз сохраним файл как update-1C.bat, после чего запускаем его в конце рабочего дня и смело уходим домой, к утру все необходимые базы будут обновлены. 

Обратите внимание, скрипт запускает 1С в фоновом режиме, т.е. внешне как-бы ничего не происходит, но если мы откроем диспетчер задач, то найдем там запущенный фоновый процесс.

1cv8-batch-update-002.jpg

После обновления не будет лишним изучить файлы логов, чтобы убедиться, что все прошло как надо, либо оперативно обнаружить и исправить ошибки.

1cv8-batch-update-003.jpg

При выходе новых обновлений нам будет необходимо изменить в скрипте несколько переменных - номера релизов и номер платформы (при необходимости). Также, после некоторых изменений, данный скрипт можно использовать для последовательного обновления ИБ при пропуске нескольких обновлений, это будет более предпочтительно, чем перепрыгивание через несколько релизов, обновляясь из cf-файла.

И, конечно же, не забывайте делать резервные копии баз, особенно перед обновлением.

Дополнительные материалы:

  1. Автоматизация резервного копирования баз 1С Предприятие.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.


Loading Comments