Как узнать, когда база 1С была обновлена из хранилища конфигурации

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе разработки и сопровождения решений на платформе «1С:Предприятие» часто возникает необходимость выяснить точный момент времени, когда в конкретную информационную базу были помещены или применены обновления из хранилища конфигурации. Рассмотрим подробно особенности работы хранилища и выясним, как найти точную дату обновления.

Особенности платформы при работе с хранилищем

Разберем важный нюанс: в платформе «1С:Предприятие» отсутствует встроенный реквизит или системная константа, где автоматически сохранялась бы дата последнего получения изменений из хранилища. Кроме того, важно различать три разных состояния конфигурации:

  1. Конфигурация поставщика — исходная конфигурация от разработчика вендора.
  2. Основная конфигурация — конфигурация, редактируемая в конфигураторе (в которую затягиваются изменения из хранилища).
  3. Конфигурация базы данных — работающая структура таблиц базы данных, с которой взаимодействуют пользователи.

Загрузка изменений из хранилища обновляет основную конфигурацию. Однако применение этих изменений к физическим таблицам базы происходит только при обновлении конфигурации базы данных (по клавише F7 или при запуске с соответствующими ключами). Проанализируем основные способы определения момента обновления.

Способ 1. Анализ Журнала регистрации

Основным инструментом для определения времени применения изменений является системный журнал регистрации 1С. Выясним, как найти нужную запись:

  1. Откроем Журнал регистрации в режиме «1С:Предприятие» или через Конфигуратор (меню Администрирование — Журнал регистрации).
  2. Нажмем кнопку настройки отбора (значок фильтра).
  3. В поле Событие выберем значение: Информационная база. Изменение конфигурации базы данных.
  4. Укажем предполагаемый период поиска и применим фильтр.

Важное замечание: данное событие фиксирует момент применения изменений к конфигурации базы данных. Платформа не разделяет в журнале регистрации источник этих изменений (были ли они получены из хранилища, загружены из файла .cf или внесены вручную). Тем не менее, это дает точное время, когда структура базы была обновлена.

Способ 2. Сравнение конфигурации с хранилищем

Если требуется понять, актуальна ли текущая база относительно хранилища, выполним сравнение конфигураций:

  1. В Конфигураторе откроем меню Конфигурация — Хранилище конфигурации — Сравнить конфигурацию базы данных с хранилищем (или сравнить основную конфигурацию).
  2. Если объекты не имеют различий, значит, в базу загружена последняя версия из хранилища.
  3. Перейдем в меню Конфигурация — Хранилище конфигурации — История хранилища.
  4. Найдем последнюю версию и посмотрим дату и время помещения этой версии разработчиком. Это даст ориентир времени создания загруженных изменений.

Способ 3. Анализ лог-файлов пакетного запуска

Если обновление баз из хранилища автоматизировано через скрипты командной строки, проанализируем файлы логов. При пакетном обновлении обычно используются параметры запуска Конфигуратора:

/ConfigurationRepositoryUpdateCfg — для получения изменений из хранилища;

/UpdateDBCfg — для обновления конфигурации базы данных;

/Out "C:\logs\update.log" — для записи результатов в текстовый лог.

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

Рекомендации для точной фиксации обновлений в будущем

Чтобы в дальнейшем точно знать дату и номер версии полученных обновлений, рекомендуется использовать следующие практики:

  1. Подсистема «Обновление ИБ» (БСП): При использовании Библиотеки стандартных подсистем при выполнении процедур обновления даты и версии фиксируются автоматически в специализированных регистрах сведений.
  2. Собственный регистр учета: Можно создать программный обработчик при начале работы системы или обновлении БД, который будет записывать текущую дату, пользователя и номер версии в специальный регистр сведений.
  3. Использование CI/CD: При применении систем автоматической сборки логировать каждый этап обновления во внешних сервисах контроля развертывания.
← На главную