Документы и Печать · 9 мин
Как узнать версию документа в 1С
Как узнать версию документа в 1С: история изменений, версионирование объектов, сравнение версий, просмотр кто и когда менял документ. Пошаговые инструкции для пользователя и администратора.
Под «версией документа» в 1С обычно понимают одно из трёх: номер сохранённой версии в механизме версионирования объектов, запись в истории изменений (кто, когда и что поменял) или редакцию печатной формы. Способ проверки зависит от того, включён ли в базе механизм версионирования и какая конфигурация используется — «Управление торговлей», «ERP», «Бухгалтерия предприятия» или самописная.
В типовых конфигурациях на Библиотеке стандартных подсистем (БСП) есть штатный механизм «Версионирование объектов». Если он включён, каждая запись документа сохраняет отдельную версию, и можно посмотреть, как документ выглядел на любой момент, сравнить две версии и даже откатиться к предыдущей. Если механизм не включён, доступна только журнальная информация: дата создания, автор и признак проведения.
Ниже разобраны все рабочие способы: от простого просмотра истории изменений до программного получения номера версии через встроенный язык, а также что делать, если версионирование в базе не настроено.
Что считается версией документа в 1С
В платформе 1С:Предприятие нет автоматического поля «версия», которое увеличивается при каждой записи документа. Версия появляется только тогда, когда администратор включает подсистему версионирования объектов. После этого при каждой записи объекта система сохраняет его снимок в служебный регистр и присваивает ему порядковый номер — 1, 2, 3 и так далее.
Важно не путать номер версии с номером документа и с датой. Номер документа — это реквизит, который виден в журнале и печатных формах, он не меняется при редактировании. Версия — это технический порядковый номер сохранённого состояния, который виден только в отчёте по истории изменений.
Как посмотреть историю изменений документа
Основной способ для пользователя — команда «История изменений». Откройте нужный документ из журнала, затем нажмите кнопку «Ещё» в командной панели формы и выберите пункт «История изменений». В некоторых конфигурациях команда называется «История версий» или находится в разделе «Все функции».
Откроется отчёт со списком версий: номер версии, дата и время записи, пользователь, который внёс изменение, и способ записи (проведение, отмена проведения, простая запись). Самая свежая версия — с максимальным номером — соответствует текущему состоянию документа.
Двойной щелчок по строке или кнопка «Открыть версию» показывает документ в том виде, в каком он был на момент этой записи. Форма открывается в режиме просмотра — редактировать старую версию напрямую нельзя, но можно восстановить её как актуальную.
- 1Откройте документ из журнала документов
- 2Нажмите «Ещё» в командной панели формы
- 3Выберите «История изменений»
- 4Найдите нужную версию по дате и пользователю
- 5Откройте версию двойным щелчком или сравните две версии кнопкой «Сравнить»
Как сравнить две версии и восстановить прежнюю
В отчёте по истории изменений можно выделить две версии (с зажатой клавишей Ctrl) и нажать «Сравнить». Система покажет табличный отчёт: какие реквизиты изменились, старое и новое значение, какие строки табличных частей добавлены, удалены или изменены. Это самый быстрый способ понять, что именно поправил пользователь, не открывая каждую версию по отдельности.
Если документ испорчен ошибочным изменением, старую версию можно восстановить. Для этого откройте нужную версию и нажмите кнопку «Перейти на версию» или «Восстановить». Система создаст новую версию, содержимое которой совпадает с выбранной старой, — то есть история не стирается, а дополняется ещё одной записью.
Как включить версионирование, если история пуста
Если команда «История изменений» отсутствует или отчёт пуст, скорее всего, версионирование не настроено. В типовых конфигурациях настройка находится в разделе «Администрирование» → «Общие настройки» → «Версионирование объектов» (в некоторых конфигурациях — «Настройки программы» → «Версионирование»). Требуются права администратора.
В настройках нужно включить флаг «Версионирование объектов» и указать, для каких типов документов и справочников хранить версии: при проведении, при записи или не хранить вовсе. Также задаётся срок хранения версий — без ограничения или с автоматической очисткой старых версий, чтобы база не разрасталась.
Как узнать, кто и когда менял документ, без версионирования
Если версионирование не включалось, базовую информацию даёт журнал регистрации: «Администрирование» → «Обслуживание» → «Журнал регистрации». Отфильтруйте события по типу «Данные. Изменение» и укажите в отборе представление документа. Вы увидите пользователя, дату и время каждой записи, но не увидите, какие именно поля были изменены.
Дополнительно в самом документе часто доступны служебные реквизиты: автор (кто создал) и дата создания. В ряде конфигураций они выведены на форму или доступны через «Ещё» → «Сведения». Это позволяет хотя бы установить создателя документа, но не отслеживает последующие правки.
Как получить версию документа программно
Разработчику номер последней версии и сами версии доступны через встроенный язык — менеджер «ВерсионированиеОбъектов». Также у каждого объекта базы есть техническое поле «ВерсияДанных» — это хеш-счётчик, который платформа меняет при каждой записи; его удобно использовать для проверки, изменился ли объект с момента чтения, например при обменах.
// Номер последней версии документа
Ссылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000-000123", ТекущаяДатаСеанса());
НомерВерсии = ВерсионированиеОбъектов.НомерПоследнейВерсии(Ссылка);
// Техническая версия данных объекта (меняется при каждой записи)
Объект = Ссылка.ПолучитьОбъект();
Сообщить(Объект.ВерсияДанных);Учтите, что функция «НомерПоследнейВерсии» вернёт значение только если для данного вида объектов включено версионирование, иначе результат будет пустым. Поле «ВерсияДанных» работает всегда, но это не порядковый номер, а внутренний маркер платформы — сравнивать его с номером версии из истории изменений нельзя.
Частые ошибки и ограничения
Ещё одно ограничение: версионирование фиксирует состояние объекта целиком, но не показывает, какие движения по регистрам были сформированы в каждой версии, если документ перепроводился. Для анализа движений придётся открывать версию и смотреть связанные записи отдельно или использовать журнал регистрации вместе с отчётами по регистрам.
Как выбрать способ
Что важно запомнить
Версия документа существует только при включённом версионировании объектов: смотрите её через «Ещё → История изменений», там же доступны сравнение версий и откат. Без версионирования остаются журнал регистрации и реквизиты автора. Откат проведённого документа к старой версии меняет учётные данные — делайте его осознанно.
Частые вопросы
Почему в меню «Ещё» нет пункта «История изменений»?
Наиболее вероятная причина — не включено версионирование объектов в настройках программы либо у пользователя нет прав на просмотр версий. Проверьте раздел «Администрирование → Общие настройки» и права роли. В самописных конфигурациях без Библиотеки стандартных подсистем этой команды может не быть в принципе.
Можно ли узнать, кто удалил документ?
Да, через журнал регистрации: отфильтруйте события «Данные. Удаление» и укажите вид документа или период. Если документ помечен на удаление, а не удалён физически, его видно в журнале с соответствующей пометкой, и версионирование также зафиксирует установку пометки как отдельную версию.
Сколько места занимают версии документов?
Каждая версия — это сериализованная копия объекта в служебном регистре сведений. В базах с интенсивной перезаписью документов регистр может вырасти до значительной доли объёма базы. Чтобы контролировать рост, задайте срок хранения версий в настройках версионирования и периодически запускайте штатную очистку устаревших версий.
Можно ли посмотреть версию документа в закрытом периоде?
Просмотр истории изменений доступен независимо от даты запрета редактирования — запрет ограничивает только изменение данных. Однако восстановить старую версию документа из закрытого периода без снятия даты запрета не получится: система заблокирует запись.
Чем версия отличается от редакции печатной формы?
Версия документа — это снимок данных объекта в базе. Редакция печатной формы — это вариант макета, по которому документ выводится на печать; он выбирается в настройках печати и никак не связан с историей изменений. Если нужно узнать, какая форма использовалась, смотрите настройки печатных форм конфигурации, а не историю версий.
Работает ли версионирование в файловой базе?
Да, механизм версионирования объектов работает и в файловом, и в клиент-серверном варианте — это функциональность прикладной конфигурации, а не СУБД. Разница только в производительности: в файловой базе рост регистра версий заметнее сказывается на скорости записи документов.