Каким образом просмотреть действия пользователей и внесенные изменения в 1С:Бухгалтерии предприятия?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

В процессе эксплуатации любой информационной системы, особенно такой комплексной, как 1С:Бухгалтерия предприятия, мы часто сталкиваемся с необходимостью контролировать действия пользователей. Это может быть важно как для аудита и обеспечения безопасности данных, так и для разрешения спорных ситуаций или анализа эффективности работы сотрудников. Нам может потребоваться узнать, кто, когда и какие именно изменения вносил в документы и справочники, или просто проверить общую активность пользователей в системе. Давайте разберем основные типовые механизмы, предоставляемые платформой 1С:Предприятие, для решения этой задачи.

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

Механизм 1: Журнал регистрации (ЖР)

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

Что фиксирует Журнал регистрации?

  1. Действия пользователей: Входы и выходы из системы, создание, изменение, проведение, отмена проведения, удаление документов и элементов справочников. Например, в Журнале регистрации можно увидеть запись типа Документ.РеализацияТоваровУслуг создан или Документ.ПриходныйКассовыйОрдер изменен.
  2. Системные события: Запуск и остановка регламентных заданий, ошибки, критические события платформы.
  3. Важные события: Изменение прав доступа, настройка пользователей, и другие события, которые могут быть важны для безопасности и администрирования.

Преимущества Журнала регистрации

Ограничения Журнала регистрации

Несмотря на свою полезность, Журнал регистрации имеет существенные ограничения, особенно если наша задача — понять, *что именно* было изменено в объекте:

  1. Отсутствие детализации изменений: ЖР показывает факт изменения объекта (например, Документ.РеализацияТоваровУслуг изменен), но не раскрывает *содержание* этих изменений. Мы не увидим, какие именно реквизиты были изменены, какие были их старые и новые значения. Это часто является камнем преткновения для пользователей, которые ищут более глубокий анализ. Например, если пользователь просто открыл документ и нажал кнопку "ОК", не изменив ничего, ЖР все равно может зафиксировать событие "Изменение", что приводит к появлению "лишней" информации, как отмечалось в обсуждении.
  2. Объем данных: При активной работе большого количества пользователей ЖР может стремительно расти, что затрудняет его просмотр и анализ. Без правильной настройки фильтров мы увидим огромное количество записей, многие из которых будут нерелевантны для нашей конкретной задачи.
  3. Хранение данных: Важно понимать, что данные Журнала регистрации хранятся в специальном формате (в файлах с расширением .lgp для файловых баз или в специализированных таблицах СУБД для клиент-серверных баз), а не в обычных регистрах информационной базы, как ошибочно предполагали некоторые участники обсуждения. Платформа 1С:Предприятие предоставляет API для чтения данных ЖР, что позволяет создавать внешние отчеты и обработки для его анализа, но это требует специфических знаний и методов работы.

Типовые отчеты на основе Журнала регистрации

Для упрощения анализа данных Журнала регистрации в конфигурациях 1С, таких как 1С:Бухгалтерия предприятия, часто присутствуют типовые отчеты, основанные на его данных. Например, отчеты "Активность пользователей" или "Анализ активности пользователей". Эти отчеты предоставляют сводную информацию о работе пользователей, такую как количество созданных, измененных или проведенных документов и справочников за определенный период. Они полезны для общей оценки активности, но, как и сам ЖР, не дают детального представления о *содержании* изменений.

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

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

Механизм 2: Версионирование объектов (История изменений)

Если нам необходимо увидеть, какие именно реквизиты были изменены в документе или элементе справочника, кто внес эти изменения и когда, то нам потребуется использовать механизм версионирования объектов, также известный как "История изменений". Этот механизм значительно мощнее Журнала регистрации в контексте детального аудита изменений.

Принцип работы версионирования

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

Настройка версионирования объектов

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

  1. Включение для объекта: В настройках конфигурации или в режиме "Предприятие" (часто через раздел "Администрирование" - "Поддержка и обслуживание" - "История изменений" или "Версионирование объектов") мы можем найти список всех объектов метаданных. Рядом с каждым объектом, для которого можно включить версионирование, обычно есть флажок "Хранить историю изменений" или аналогичная опция.
  2. Детализированная настройка: Рядом с этим флажком часто находится гиперссылка "Настройка" (как упоминалось в обсуждении). При нажатии на нее открывается окно настроек, где мы можем указать:
    • Объекты для версионирования: Какие именно документы и справочники будут версионироваться. Это позволяет нам сосредоточиться только на критически важных для аудита данных (например, только Документ.РеализацияТоваровУслуг и Справочник.Контрагенты).
    • Условия сохранения версий: Например, сохранять версию при записи, при проведении или только при изменении определенных реквизитов (хотя стандартный платформенный механизм версионирует объект целиком, а не отдельные реквизиты, как будет объяснено ниже).
    • Срок хранения версий: Мы можем указать, сколько версий хранить (например, последние 5) или как долго хранить версии объектов (например, 3 месяца). Это критически важно для контроля размера базы данных.

Критически важный аспект: Версионирование объекта целиком

Очень важно понимать, что стандартный платформенный механизм версионирования в 1С:Предприятии сохраняет объект целиком при каждом изменении. Это означает, что невозможно настроить версионирование только для отдельных реквизитов (например, только для ИНН контрагента, как предполагалось в обсуждении), если речь идет о типовом функционале платформы. Если мы включили версионирование для Справочник.Контрагенты, то при изменении любого реквизита контрагента (даже второстепенного) будет создана новая версия всего объекта "Контрагент". Это является ключевым отличием от более специализированных подсистем аудита.

Влияние на размер базы данных

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

Преимущества версионирования

Другие подходы и возможности

Помимо стандартных механизмов Журнала регистрации и версионирования объектов, существуют и другие подходы к аудиту действий пользователей и изменений данных:

  1. Разработка собственных отчетов и обработок: Если типовых отчетов недостаточно, а стандартные средства просмотра Журнала регистрации или истории изменений не полностью удовлетворяют нашим требованиям, мы можем разработать собственные внешние отчеты и обработки. Это позволяет нам получить максимально адаптированную информацию под конкретные требования, например, агрегировать данные ЖР, представить их в удобном виде или создать специальные средства для просмотра версий объектов. Для работы с Журналом регистрации потребуется использовать специальные методы платформы для его чтения, так как данные хранятся не в обычных регистрах.
  2. Специализированные подсистемы для аудита и контроля изменений: Для более сложных сценариев, когда требуется отслеживание изменений на уровне отдельных реквизитов (а не всего объекта), хранение истории в отдельной базе данных (чтобы основная база не "распухала") или более гибкие настройки, могут использоваться специализированные подсистемы. Некоторые конфигурации могут иметь встроенные расширенные механизмы аудита, либо же могут применяться сторонние разработки. Эти подсистемы часто предоставляют гораздо более широкие возможности по сравнению со стандартным функционалом 1С, но их внедрение и поддержка требуют дополнительных ресурсов.

Заключение

Итак, если нам необходимо просто понять, кто и когда создал, изменил или провел документ, а также получить общую статистику активности пользователей, то Журнал регистрации и основанные на нем типовые отчеты (например, "Активность пользователей") будут достаточными. Мы должны научиться эффективно использовать фильтры ЖР, чтобы отсеять лишнюю информацию.

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

Выбор подходящего механизма зависит от наших конкретных задач, требуемого уровня детализации и готовности к компромиссам между объемом хранимых данных и полнотой информации.

← На главную