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

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

Как в 1С проверить изменение документа

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

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

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

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

Как найти факт изменения через журнал регистрации

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

Откройте раздел Администрирование → Обслуживание → Журнал регистрации (в некоторых конфигурациях путь: Администрирование → Поддержка и обслуживание → Журнал регистрации). Нажмите кнопку «Отбор» и задайте условия: в поле «Данные» укажите нужный документ, в списке событий отметьте «Данные. Изменение» и «Данные. Добавление», при необходимости ограничьте период и конкретного пользователя.

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

Порядок действий в журнале регистрации
  1. 1
    Откройте Администрирование → Обслуживание → Журнал регистрации
  2. 2
    Нажмите «Отбор» и укажите документ в поле «Данные»
  3. 3
    Отметьте события «Данные. Изменение» и «Данные. Добавление»
  4. 4
    Ограничьте период и пользователя при необходимости
  5. 5
    Откройте запись двойным кликом и посмотрите детали события

Ограничение способа принципиально: журнал показывает, что документ изменён, но не показывает, что именно поменялось. Если пользователь просто перепровёл документ без правок, событие изменения всё равно появится. Поэтому для анализа содержимого правок нужен версионирование.

Как включить версионирование объектов и видеть, что именно изменилось

Версионирование объектов — механизм Библиотеки стандартных подсистем, встроенный в большинство типовых конфигураций (Бухгалтерия предприятия, Управление торговлей, ERP, ЗУП и другие). Он сохраняет снимки объекта при каждой записи и позволяет сравнить любые две версии.

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

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

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

Как проверить изменение через дату модификации и отборы в списках

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

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

Для защиты от правок закрытых периодов используйте дату запрета изменения данных (Администрирование → Поддержка и обслуживание → Даты запрета изменения данных). Это не способ проверки, а профилактика: после установки даты пользователи без специальных прав не смогут изменять документы раньше неё, и необходимость разбирать «кто поменял прошлый квартал» резко сократится.

Программная проверка изменений для разработчиков

Если проверку нужно выполнять в коде — например, при записи документа сравнивать новые значения со старыми — используйте объектную модель. Перед изменением объекта старые значения доступны через ссылку: запросом к базе можно получить реквизиты «как в базе» и сравнить с текущими данными объекта.

bsl
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	Если Не ЭтоНовый() Тогда
		СтараяСумма = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "СуммаДокумента");
		Если СтараяСумма <> СуммаДокумента Тогда
			ЗаписьЖурналаРегистрации("Изменение суммы", УровеньЖурналаРегистрации.Информация, , Ссылка,
				"Было: " + СтараяСумма + ", стало: " + СуммаДокумента);
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры

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

Готовый отчёт «Анализ версий объектов» и типовые подписки есть в составе БСП; если конфигурация самописная, механизм версионирования внедряется разработчиком по типовой методике. Не модифицируйте типовую конфигурацию без необходимости — это усложнит обновления.

Как восстановить прежнюю версию документа

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

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

Типичные ошибки при проверке изменений

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

Ещё одна частая ситуация: пользователь уверен, что документ «исчез» или «сам поменялся». На практике почти всегда это либо пометка удаления (событие «Данные. Удаление» в журнале), либо изменение через обмен, либо перепроведение с изменением реквизитов. Журнал регистрации с правильным отбором отвечает на этот вопрос за минуту.

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

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

Запись в журнале регистрации по документу
Норма

Видны автор, время и тип события (изменение/проведение)

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

Записей нет — возможно, журнал очищался или документ не изменялся

История изменений документа
Норма

Есть версии с авторами, сравнение показывает различия реквизитов

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

Команда отсутствует или версий нет — версионирование не включено

Автор изменения
Норма

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

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

Изменение под служебной учётной записью — ищите источник в настройках обмена

Итог

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

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

Частые вопросы

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

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

Почему в журнале регистрации нет записей об изменении документа?

Возможные причины: задан слишком узкий отбор или неверный период; журнал регистрации был настроен на уменьшенный уровень регистрации событий; старые записи удалены при сокращении журнала. Проверьте настройки в разделе «Администрирование → Обслуживание → Настройка журнала регистрации».

Как понять, что документ изменила синхронизация, а не пользователь?

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

Влияет ли версионирование на быстродействие базы?

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

Кто может смотреть историю изменений и журнал регистрации?

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

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

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