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

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

Как отследить события в 1С: рабочие способы контроля действий пользователей

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

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

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

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

Журнал регистрации: главный источник событий

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

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

Чтобы найти нужное событие в большом объёме записей, обязательно используйте отбор через кнопку «Отбор». Доступны фильтры по периоду, пользователю, уровню важности (информация, предупреждение, ошибка), виду события, объекту метаданных и конкретным данным. Например, чтобы узнать, кто изменил конкретный документ, установите отбор по событию «Данные. Изменение» и укажите ссылку на документ в поле «Данные».

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

Как найти, кто изменил документ
  1. 1
    Откройте Администрирование → Обслуживание → Журнал регистрации
  2. 2
    Нажмите «Отбор» и задайте период, в который могло произойти изменение
  3. 3
    В поле «Событие» выберите «Данные. Изменение» (и при необходимости «Данные. Удаление»)
  4. 4
    В поле «Данные» укажите ссылку на нужный документ или элемент справочника
  5. 5
    Нажмите «ОК» — в списке останутся все изменения объекта с указанием пользователя и времени
  6. 6
    Откройте запись двойным щелчком и проверьте сеанс и комментарий

Что фиксирует журнал регистрации, а что нет

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

ФиксируетсяНе фиксируется штатно
Вход, выход, неудачные попытки входа пользователейКакие именно поля документа изменились и какими были старые значения
Добавление, изменение, пометка удаления объектовПросмотр данных без изменения (кто открыл отчёт)
Ошибки, предупреждения, исключенияДетали печати документов
Запуск и завершение фоновых заданийСодержимое запросов к базе
Операции с доступом и ролямиДействия, выполненные до смены режима журнала

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

Объём фиксируемых событий можно настроить: в конфигураторе откройте «Администрирование» → «Настройка журнала регистрации». Там выбирается режим — от регистрации только ошибок до регистрации всех событий. Полный режим полезен при расследовании инцидентов, но ускоряет рост журнала.

История изменений объектов: версионирование

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

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

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

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

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

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

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

bsl
Процедура АудитЗаписиДокументаПриЗаписи(Источник, Отказ)
	Если Отказ Тогда Возврат; КонецЕсли;
	Запись = РегистрыСведений.АудитИзменений.СоздатьМенеджерЗаписи();
	Запись.Период = ТекущаяДатаСеанса();
	Запись.Объект = Источник.Ссылка;
	Запись.Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
	Запись.Записать();
КонецПроцедуры

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

Контроль фоновых заданий и обменов данными

Значительная часть «событий» в 1С происходит без участия пользователя — это регламентные и фоновые задания: обмены, расчёты итогов, рассылки отчётов. Их отслеживают в разделе «Администрирование» → «Обслуживание» → «Регламентные и фоновые задания».

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

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

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

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

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

Свежие записи появляются сразу после действий пользователя

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

Записей нет или они с большой задержкой — проверьте настройку уровня регистрации и место на диске

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

В карточке документа доступен пункт «Ещё → История изменений» с версиями

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

Пункта нет — версионирование не включено для этого вида объектов

Фоновые задания
Норма

Задания в состоянии «Выполнено», дата последнего запуска актуальна

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

Статус «Ошибка» или задание давно не запускалось

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

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

Маршрут решения

Как выбрать инструмент

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

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

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

Производительность и хранение журналов

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

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

Итог

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

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

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

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

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

Как долго хранится журнал регистрации?

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

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

Возможные причины: установлен минимальный режим регистрации (только ошибки), журнал был сокращён, либо изменение выполнено в период вне вашего отбора. Проверьте настройку уровня регистрации в конфигураторе и расширьте период поиска.

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

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

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

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

Как отследить события в базе, если нет прав администратора?

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