При сопровождении информационных баз на платформе «1С:Предприятие 8» часто возникает необходимость провести аудит: когда было установлено конкретное обновление, какие релизы проходила база и какая версия конфигурации была актуальна на момент совершения той или иной операции. Прямой «единой таблицы» со всеми историческими данными в платформе не предусмотрено, однако, используя комбинацию механизмов Библиотеки стандартных подсистем (БСП) и системных логов, мы можем восстановить полную картину «боевого пути» конфигурации.
Рассмотрим подробно все доступные инструменты и методы, которые помогут нам получить информацию об истории обновлений.
В современных типовых конфигурациях (таких как Бухгалтерия предприятия 3.0, Управление торговлей 11, ERP) учет версий ведется программно через механизмы БСП. Это наиболее удобный способ для пользователя и администратора, так как данные хранятся непосредственно в базе данных.
Разберем основные регистры, которые нам помогут:
Если нам необходимо получить юридически значимые данные или восстановить хронологию, когда регистры БСП по какой-то причине недоступны, мы обратимся к Журналу регистрации. Это самый достоверный источник, так как он фиксирует события на уровне платформы.
Для поиска истории обновлений в Журнале регистрации выполним следующие шаги:
.cfu или .cf), а «Изменение конфигурации базы данных» — момент фактического применения новой структуры данных (нажатие F7 в конфигураторе).В записи журнала будет четко указан пользователь, выполнивший действие, компьютер и точное серверное время. Это незаменимо при «разборках», какой релиз был активен в конкретный момент времени.
В случае, если разработка или обновление базы ведется с использованием Хранилища конфигурации, мы можем извлечь информацию оттуда. Выясним причину изменений, просмотрев «Историю хранилища».
Рассмотрим нюансы этого метода:
Иногда программисту требуется программно определить, какая версия конфигурации сейчас запущена, чтобы логика программы адаптировалась под актуальный релиз. Для этого используем встроенный язык.
Посмотрим на пример кода, позволяющий получить версию конфигурации:
ВерсияКонфигурации = Метаданные.Версия;
Сообщить("Текущая версия конфигурации: " + ВерсияКонфигурации);
// Если используется БСП, можно получить версию через менеджер обновлений
ТекущаяВерсияБСП = СтандартныеПодсистемыСервер.ВерсияПодсистемы("СтандартныеПодсистемы");
Проанализируем ситуацию, когда нам нужно отследить момент изменения метаданных. Для этого можно использовать справочник «Идентификаторы объектов метаданных». Записи в этом справочнике создаются или обновляются при каждом изменении состава объектов в системе. Дата создания записи о новом справочнике или документе может служить маркером даты установки обновления, принесшего эти изменения. Для быстрого поиска методов и процедур библиотечных подсистем пригодится справочник по методам БСП с примерами использования.
Для системных администраторов и специалистов, работающих с клиент-серверным вариантом, существует возможность заглянуть «под капот» на уровне СУБД (MS SQL, PostgreSQL). Информация о конфигурации хранится в системных таблицах базы данных.
Выясним, где именно искать данные:
В таблице Config хранятся записи с именами root, versions и confinfo. По дате последнего изменения этих записей (столбец modified или аналогичный в зависимости от СУБД) можно определить время последней реструктуризации базы данных. Это наиболее точный технический способ узнать время применения обновления на уровне таблиц SQL.
Подводя итог, можно сказать: хотя специализированной «карточки истории» в 1С нет, мы имеем широкий арсенал средств. Для быстрого просмотра используем регистры БСП (Результаты обновления), для детального аудита — Журнал регистрации, а для технологического анализа — данные хранилища и системные таблицы СУБД. Сочетание этих методов позволяет с высокой точностью восстановить историю любых изменений в системе.