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