К статье
Практический материал

Администрирование · 13 мин

Как работает версионирование в 1С и как его настроить

Как работает версионирование в 1С: хранение версий объектов, настройка истории изменений, восстановление данных, ограничения и типичные ошибки администраторов.

Версионирование объектов в 1С — это механизм, который автоматически сохраняет снимки данных при каждом изменении документа или элемента справочника. Благодаря ему можно ответить на вопросы «кто и когда изменил цену в карточке товара» или «как выглядел документ до правки», а при необходимости — восстановить прежнее состояние записи. Механизм реализован в составе Библиотеки стандартных подсистем (БСП) и присутствует в большинстве типовых конфигураций: «Управление торговлей», «ERP», «Комплексная автоматизация», «Бухгалтерия предприятия» и других.

Важно понимать: версионирование не заменяет резервное копирование и не является журналом регистрации. Журнал регистрации фиксирует факт события (пользователь записал документ), а версионирование сохраняет само содержимое объекта — значения реквизитов, табличных частей и движений. Это разные инструменты, которые дополняют друг друга.

Механизм работает прозрачно для пользователя: при записи объекта система сравнивает новые данные с предыдущей версией и, если есть изменения, сохраняет копию в служебный регистр сведений. Хранение выполняется в сериализованном виде (обычно XML внутри сжатого двоичного значения), поэтому версии не видны в обычных формах списков и не участвуют в стандартных отчётах.

Как устроен механизм версионирования изнутри

Технически версионирование построено на подписке на событие «ПриЗаписи» объектов. Когда пользователь или фоновое задание записывает документ, подсистема перехватывает событие, сериализует объект в XML-формат, упаковывает результат и записывает его в регистр сведений «Версии объектов». Каждая запись содержит ссылку на объект, номер версии, автора изменения, дату и сам снимок данных.

Номер версии назначается последовательно: первая запись объекта после включения механизма получает номер 1, каждое следующее изменение увеличивает счётчик. Если объект записали без фактических изменений данных, новая версия обычно не создаётся — система сравнивает сериализованное содержимое и пропускает дубликаты. Это уменьшает объём хранимых данных, но не исключает роста регистра полностью.

Хранение версий ведётся внутри самой информационной базы, а не во внешних файлах. Это упрощает администрирование, но означает, что активное использование механизма увеличивает размер базы. Для баз с интенсивным документооборотом это существенный фактор, который нужно учитывать при настройке.

Где включить версионирование и какие есть режимы

В типовых конфигурациях настройка находится в разделе «Администрирование» → «Общие настройки» → «История изменений» (в некоторых конфигурациях путь может отличаться, например «Поддержка и обслуживание»). Там включается сам механизм и задаётся список типов объектов, для которых ведётся история.

Для каждого вида объектов доступны три режима: не версионировать, версионировать при записи и версионировать при проведении. Режим «при проведении» имеет смысл только для документов и экономит место: версии создаются только при проведении, а промежуточные сохранения черновика не фиксируются. Режим «при записи» фиксирует каждое изменение, включая пометку на удаление и отмену проведения.

Как включить версионирование
  1. 1
    Откройте «Администрирование» → «Общие настройки» → «История изменений»
  2. 2
    Установите флаг использования истории изменений
  3. 3
    В списке типов объектов выберите нужные документы и справочники
  4. 4
    Для каждого типа задайте режим: при записи или при проведении
  5. 5
    Сохраните настройки и проверьте на тестовом объекте: измените его и откройте «История изменений»

Не стоит включать версионирование «для всего подряд». Справочники с редкими изменениями (например, валюты или единицы измерения) почти не дают пользы, а документы с массовой автоматической перезаписью (регламентными заданиями) способны раздувать регистр тысячами версий в день. Разумный подход — включать историю для критичных объектов: договоров, цен, карточек контрагентов, ключевых документов продаж и закупок.

Как посмотреть историю изменений и сравнить версии

Просмотр версий выполняется из формы объекта: в карточке документа или элемента справочника есть команда «История изменений» (обычно в меню «Ещё»). Открывается список версий с датой, автором и номером каждой записи. Если команду не видно, проверьте, включено ли версионирование для этого типа объектов и есть ли у пользователя соответствующие права.

При открытии конкретной версии система показывает объект в том виде, в каком он был на момент записи. Функция сравнения позволяет выбрать две версии и получить отчёт о различиях: какие реквизиты изменились, какие строки добавлены или удалены из табличных частей. Это основной инструмент разбора спорных ситуаций — например, когда сумма документа «сама собой» поменялась после согласования.

Автор версииПользователь, записавший объект

Совпадает ли с тем, кто должен был вносить правку

Дата и времяМомент записи версии

Не попадает ли изменение на время после закрытия периода

Состав измененийИзменённые реквизиты и строки

Какие именно поля затронуты правкой

Номер версииПорядковый номер снимка

Сколько раз объект менялся за период

Учтите ограничение: версии фиксируют данные самого объекта, но не контекст его окружения. Если изменилась связанная информация — например, движения по регистрам пересчитаны обработкой, — восстановить картину полностью по версиям объекта не получится. Для таких случаев дополнительно используют журнал регистрации и резервные копии.

Как восстановить объект из версии

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

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

Ограничения и влияние на производительность

Главная плата за версионирование — рост объёма базы. Каждая версия хранит полный снимок объекта, а не только отличия, поэтому документ с большой табличной частью при частых правках может порождать заметный объём данных. В файловых базах это дополнительно сказывается на скорости записи: сериализация и запись версии добавляют время к каждой транзакции.

Второе ограничение — версии не создаются при определённых условиях: если объект изменён механизмами обмена данными с признаком загрузки, при некоторых служебных операциях или если у пользователя нет прав на запись версий. Поэтому история изменений не гарантирует полноты картины при интеграциях: данные, пришедшие из другой системы, могут менять объект без создания версии.

Для контроля объёма в типовых конфигурациях предусмотрена очистка устаревших версий — регламентное задание удаляет записи старше заданного срока. Настройте срок хранения осознанно: для аудиторских задач может требоваться история за несколько лет, для оперативного контроля достаточно нескольких месяцев.

Типичные ошибки
01
Включение версионирования для всех объектов — регистр версий быстро разрастается, база тяжелеет, а полезной информации в истории мало
02
Отсутствие очистки старых версий — за годы работы регистр накапливает гигабайты неактуальных снимков
03
Ожидание версий при обмене данными — загрузка из интеграций часто идёт в обход механизма, и история оказывается неполной
04
Восстановление версии без анализа последствий — перепроведение старого документа меняет регистры и ломает закрытые периоды
05
Выдача прав на просмотр истории всем пользователям — версии могут содержать чувствительные данные, например персональные сведения и цены

Права доступа и безопасность версий

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

Разграничение важно по двум причинам. Во-первых, версии содержат полное содержимое объекта, включая данные, которые в текущей версии уже скрыты или изменены, — фактически это обход части ограничений на уровне записи. Во-вторых, право восстановления версии — это право массовой правки данных в обход привычных сценариев, его стоит оставить узкому кругу ответственных сотрудников.

Альтернативы и дополнения к штатному механизму

Журнал регистрации — первое дополнение: он фиксирует все действия пользователей, включая те, что не порождают версий (чтение, отказ в доступе, работу обменов). Связка «журнал регистрации + история изменений» закрывает большинство аудиторских задач: журнал отвечает на вопрос «кто что делал», версии — «что именно изменилось в данных».

Для задач, где штатного механизма недостаточно, применяют доработки: собственные регистры истории с хранением только изменённых полей, подписки на события с записью в отдельную базу аудита, запреты изменения данных после закрытия периода. Такие решения требуют разработки, но дают контроль над объёмом хранения и детализацией. Выбирать их стоит, когда типовое версионирование либо слишком громоздко, либо не фиксирует нужные события.

Сравнение инструментов контроля изменений

История изменений (версионирование)

Хранит полные снимки объектов, позволяет сравнивать и восстанавливать. Подходит для критичных документов и справочников, но увеличивает размер базы

Журнал регистрации

Фиксирует события без содержимого объектов. Работает всегда, почти не влияет на объём, но не позволяет восстановить данные

Даты запрета изменения

Не хранят историю, а блокируют правки в закрытых периодах. Профилактика, а не аудит

Собственный аудит (доработка)

Гибкая детализация и контроль объёма, но требует разработки и сопровождения

Как проверить, что версионирование работает корректно

Простейшая проверка: откройте тестовый документ нужного типа, измените любой реквизит, запишите и откройте «Историю изменений». В списке должна появиться новая версия с вашим именем и текущим временем. Затем сравните её с предыдущей — отчёт о различиях должен показать именно то поле, которое вы меняли.

Дополнительно проверьте работу регламентного задания очистки версий и убедитесь, что пользователи с ограниченными правами не видят историю, а ответственные сотрудники — видят. Периодически оценивайте размер регистра версий: резкий рост обычно означает, что под версионирование попал объект с массовой автоматической перезаписью.

Контрольные точки

Как проверить результат

Новая версия после записи объекта
Норма

Версия появляется с корректными автором и временем

Тревожный признак

Версий нет — механизм выключен или тип объекта не настроен

Сравнение версий
Норма

Отчёт показывает только реально изменённые поля

Тревожный признак

Отличия показывают лишние поля или пусты при фактических правках

Размер регистра версий
Норма

Рост соответствует интенсивности правок

Тревожный признак

Резкий скачок объёма без роста числа пользователей

Права доступа
Норма

Историю видят только ответственные сотрудники

Тревожный признак

Команда «История изменений» доступна всем пользователям

Частые вопросы о версионировании в 1С

Замедляет ли версионирование работу базы?

Да, но умеренно: каждая запись объекта дополнительно сериализует данные и пишет строку в регистр. На обычных объектах задержка незаметна, но при массовых перезаписях больших документов эффект накапливается. Ограничьте список версионируемых типов и настройте очистку старых версий.

Можно ли восстановить удалённый документ через версии?

Если документ помечен на удаление — да: снимите пометку и при необходимости восстановите нужную версию. Если объект удалён физически (включая операцию «Удаление помеченных объектов»), штатное восстановление невозможно — поможет только резервная копия базы.

Почему в истории изменений нет версий, хотя объект менялся?

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

Хранит ли версионирование движения документа по регистрам?

Нет, версия содержит данные самого объекта — реквизиты и табличные части. Движения по регистрам в снимок не входят, поэтому после восстановления старой версии документ обычно нужно перепровести, чтобы регистры пришли в соответствие.

Как ограничить рост регистра версий?

Три меры: включайте версионирование только для действительно важных типов объектов, используйте режим «при проведении» вместо «при записи» там, где это допустимо, и настройте регламентное задание очистки версий старше нужного срока хранения.

Чем версионирование отличается от журнала регистрации?

Журнал регистрации фиксирует факт события — кто, когда и какое действие выполнил, — но не содержит данных объекта. Версионирование сохраняет само содержимое объекта и позволяет сравнивать и восстанавливать данные. Для полного аудита используют оба инструмента вместе.

Итог

Что важно запомнить

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