Часто в процессе внедрения или активной разработки конфигурации возникает необходимость ежедневного обновления конфигурации базы данных. Предлагаемый сценарий:
1. Вечером, перед тем, как уйти с работы, программист копирует файл 1Cv8.cf в определенную папку, например c:\AutoUpdate\
2. Ночью с помощью планировщика Windows запускается файл AutoUpdate.bat, который выполняет следующие действия:
а) завершает все сеансы пользователей
б) выгружает базу в файл base_01.03.2019.dt
в) ищет файл c:\AutoUpdate\1Cv8.cf, и если находит, то загружает его в базу данных
г) обновляет конфигурацию базы данных
д) переименовывает файл 1Cv8.cf в 1Cv8_01.03.2019.cf (чтобы в дальнейшем его снова не загрузить)
е) записывает в файл info.txt информацию о выполненных действиях
3. Утром пользователи начинают работать в обновленной базе
4. Программист может контролировать успешность обновления с помощью файла info.txt.
Пример файла info.txt
=== Начало обновления ===========================================================
Завершение работы пользователей
Выгрузка sss\bbb в архив 01.03.2019 23:30
Выгрузка информационной базы успешно завершена
Начало обновления sss\bbb 01.03.2019 23:49
Загрузка конфигурации успешно завершена
Обработка структуры базы данных...
Сбор служебной информации...
Объект изменен: Справочник.Номенклатура
Объект изменен: РегистрНакопления.ТоварыКПередачеСоСкладов
Принятие изменений...
Построение индекса справки...
Обновление конфигурации успешно завершено
=================================================================================
Если база не обновилась, то в файле info.txt будет отображена причина:
=== Начало обновления ===========================================================
Завершение работы пользователей
Выгрузка sss\bbb в архив 02.03.2019 23:35
Ошибка разделенного доступа к информационной базе
Активные сеансы и соединения:
компьютер: User31, соединение: 463266, начато: 02.03.2019 в 23:35:01, приложение: Толстый клиент
ВАЖНО! Если в обновлении нет изменения метаданных, то обновление будет выполнено "динамически". Чтобы избежать динамических обновлений, следует создать служебный справочник (например, "Обновления") и добавлять туда новый реквизит перед каждым обновлением.
Требования: 1С:Предприятие 8.2 и выше (8.2 и 8.3 любых версий)