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