Администрирование · 10 мин
Где хранятся версии объектов в 1С и как их найти
Разбираем, где хранятся версии объектов 1С: регистр ВерсииОбъектов, настройка версионирования, просмотр истории изменений, восстановление и очистка старых версий.
Версии объектов в 1С — это снимки состояния справочников и документов, которые платформа сохраняет при каждом изменении, если включён механизм версионирования. Они позволяют узнать, кто и когда поменял элемент, сравнить «было/стало» и при необходимости вернуть объект к прежнему состоянию. Однако физическое место хранения этих версий неочевидно: это не отдельные файлы, а данные внутри информационной базы.
В типовых конфигурациях на базе Библиотеки стандартных подсистем (БСП) версии хранятся в специальном регистре сведений, а сами данные объекта сериализуются и сжимаются. Поэтому открыть версию «напрямую» через СУБД или проводник нельзя — работать с ними нужно штатными средствами 1С. Ниже разберём, где именно лежат версии, как включить их запись, как посмотреть историю и что делать, если регистр разросся.
Что такое версионирование объектов и когда оно работает
Версионирование — это подсистема, которая при записи объекта (справочника или документа) сохраняет его предыдущее состояние. Каждая версия фиксирует автора изменения, дату и время, номер версии и само содержимое объекта на момент записи. Механизм входит в состав Библиотеки стандартных подсистем и присутствует в большинстве типовых решений: «1С:Бухгалтерия», «1С:ERP», «1С:Зарплата и управление персоналом», «1С:Управление торговлей» и других.
Важно понимать: версии пишутся только для тех типов объектов, для которых администратор включил версионирование в настройках. По умолчанию в ряде конфигураций механизм может быть отключён или охватывать лишь часть объектов. Если история изменений по конкретному справочнику пуста — сначала проверьте настройку, а не ищите сбой.
Отдельно стоит различать версионирование объектов и журнал регистрации. Журнал регистрации фиксирует сам факт события (кто, когда, с каким объектом работал), но не хранит содержимое объекта. Версии, наоборот, содержат полные данные, благодаря чему объект можно сравнить и восстановить.
Где физически хранятся версии: регистр «Версии объектов»
В конфигурациях на БСП версии записываются в регистр сведений с именем ВерсииОбъектов. Это обычная таблица информационной базы: в файловом варианте она находится внутри файла 1Cv8.1CD, в клиент-серверном — в базе данных на MS SQL Server, PostgreSQL или другой поддерживаемой СУБД. Отдельных файлов версий на диске не существует.
Структура регистра включает измерение «Объект» (ссылка на версионируемый элемент), номер версии, автора, дату, а также реквизит, в котором хранится сама версия. Содержимое объекта сериализуется в XML-подобное представление и сжимается, поэтому при прямом просмотре таблицы на уровне СУБД вы увидите нечитаемые двоичные данные.
В самописных конфигурациях без БСП механизм может отсутствовать или быть реализован иначе — через собственные регистры, подписки на события записи или внешние хранилища. В таком случае место хранения определяется логикой конкретного решения, и искать его нужно в конфигураторе по подпискам на события ПриЗаписи.
Как включить и настроить запись версий
Настройка выполняется в режиме 1С:Предприятие пользователем с правами администратора. В типовых конфигурациях путь обычно такой: раздел «Администрирование» → «Общие настройки» (или «Поддержка и обслуживание») → «Версионирование объектов». Точное расположение пункта может отличаться между конфигурациями и релизами.
- 1Откройте раздел «Администрирование» и найдите настройку «Версионирование объектов».
- 2Установите флаг «Хранить историю изменений» (или аналогичный переключатель).
- 3Для каждого типа объектов выберите режим: версионировать при записи, при проведении или не версионировать.
- 4При необходимости задайте срок хранения версий, чтобы регистр не разрастался.
- 5Сохраните настройки и проверьте: измените тестовый объект и откройте его историю изменений.
Режимы версионирования различаются по моменту срабатывания. «При записи» фиксирует любое сохранение объекта, «при проведении» — только проведение документов. Для справочников доступен вариант записи. Чем шире охват и чем чаще меняются объекты, тем быстрее растёт регистр, поэтому для массовых документов часто выбирают версионирование только при проведении.
Как посмотреть историю изменений конкретного объекта
Самый простой способ — из формы самого объекта. Откройте элемент справочника или документ, затем в меню «Ещё» выберите пункт «История изменений» (в некоторых конфигурациях — «Перейти» → «История изменений»). Если команда отсутствует, проверьте, включено ли версионирование для этого типа объектов и есть ли у вас соответствующие права.
В открывшемся списке версий видны номер версии, дата, автор и комментарий. Выберите две версии и нажмите «Сравнить», чтобы увидеть табличное сопоставление «было/стало» по реквизитам и табличным частям. Кнопка «Открыть версию» показывает объект в том виде, в каком он был на момент записи.
Если нужно найти, кто изменил конкретный реквизит (например, банковский счёт контрагента), быстрее всего открыть историю изменений объекта и сравнить последние версии — изменённое поле будет подсвечено в отчёте о сравнении, а рядом указан автор версии.
Для массового анализа удобнее открыть сам регистр: через «Все функции» (включается в параметрах: Сервис → Параметры → отображать команду «Все функции») найдите «Регистры сведений» → «Версии объектов». Здесь можно отобрать записи по конкретному объекту или автору. Этот способ требует аккуратности: регистр служебный, и ручное редактирование его записей недопустимо.
Как восстановить объект из версии
Восстановление выполняется из той же формы истории изменений. Откройте нужную версию и используйте команду «Восстановить» (или «Перейти на версию»). Платформа запишет объект со значениями из выбранной версии — при этом создастся новая версия с текущей датой, то есть само восстановление тоже попадёт в историю. Это правильно с точки зрения аудита: след отката остаётся видимым.
Учтите ограничение: версия хранит состояние самого объекта, но не состояние всей базы на тот момент. Если после изменения объекта были созданы связанные документы или выполнены регламентные операции, откат объекта не отменит их. Для возврата базы целиком к прошлому состоянию существует только восстановление из резервной копии.
Хранение версий при обмене и в распределённых базах
При обмене данными (РИБ, планы обмена, синхронизация с другими системами) версии объектов по умолчанию не передаются между базами — регистр «Версии объектов» служебный и локальный. Каждая база ведёт свою историю изменений независимо. Поэтому в узле РИБ вы увидите только те версии, которые были записаны именно в этом узле.
Если версионирование критично для аудита в распределённой схеме, настройте его в каждой базе отдельно и учитывайте, что авторы и нумерация версий в разных узлах будут различаться. Для централизованного аудита изменений обычно используют журнал регистрации с выгрузкой, а не версионирование.
Очистка устаревших версий и контроль размера регистра
Регистр «Версии объектов» при активной работе растёт заметно: каждая запись документа добавляет новую строку со сжатым содержимым. В крупных базах он может занимать значительную долю объёма. В типовых конфигурациях предусмотрена штатная очистка: в настройках версионирования задаётся срок хранения (например, хранить версии за последние месяцы), а регламентное задание удаляет устаревшие записи.
Оценить объём регистра можно через отчёт о размерах таблиц базы данных (в некоторых конфигурациях доступен в разделе администрирования) или средствами СУБД для клиент-серверного варианта. Если таблица версий занимает непропорционально много места, пересмотрите настройки: сократите срок хранения и отключите версионирование для объектов, где история не нужна.
Как проверить результат
После изменения объекта в истории появилась новая строка с текущим временем и автором
История пуста — версионирование для этого типа не включено или нет прав
В регистре нет версий старше установленного срока хранения
Накоплены версии за всё время — регламентное задание очистки не выполняется
Отчёт о сравнении показывает различия по реквизитам
Команда сравнения недоступна — выбрана только одна версия или нет прав
FAQ
Можно ли посмотреть версии объектов без БСП, в самописной конфигурации?
Только если разработчик реализовал собственный механизм истории. Проверьте в конфигураторе подписки на события записи объектов и наличие регистров с похожим назначением. Если ничего этого нет — история изменений содержимого не ведётся, и ориентироваться остаётся на журнал регистрации.
Сохраняются ли версии при удалении объекта?
Да, записи регистра «Версии объектов» остаются после пометки и даже после физического удаления объекта, пока их не удалит регламентная очистка. Это позволяет посмотреть, что содержал удалённый элемент, и при необходимости вручную восстановить его данные по версии.
Почему команда «История изменений» не отображается в форме объекта?
Наиболее частые причины: версионирование не включено для этого типа объектов, у пользователя нет прав на просмотр версий, либо конфигурация не содержит подсистемы версионирования. Проверьте настройки в разделе администрирования и роль пользователя.
Можно ли выгрузить версии объектов во внешний файл?
Штатной массовой выгрузки версий в типовых конфигурациях обычно нет. Данные можно получить программно через запрос к регистру сведений с последующей десериализацией, но это задача для разработчика. Для аудита проще использовать выгрузку журнала регистрации.
Влияет ли версионирование на производительность?
Да, умеренно: каждая запись объекта сопровождается сериализацией и добавлением строки в регистр. На большинстве баз это незаметно, но при массовой перезаписи тысяч документов время операции увеличивается. Поэтому для редко изменяемых или несущественных объектов версионирование разумно отключать.
Чем версии объектов отличаются от резервной копии базы?
Версия — это снимок одного объекта, доступный для сравнения и отката прямо в рабочей базе. Резервная копия — снимок всей базы целиком, восстановление из которой заменяет все данные. Версии удобны для точечных откатов, копия — для аварийного восстановления; одно другого не заменяет.