Кто, когда и что сделал в базе 1С: журналы, сеансы и аудит

· 10 мин

Содержание

Посмотреть действия пользователей в 1С быстрее всего через журнал регистрации: Администрирование → Обслуживание → Журнал регистрации в БП 3.0, ЗУП 3.1 и УТ 11. Там видно, кто и когда вошёл в базу, какой документ создал, провёл или удалил. Кто работает прямо сейчас, показывает список активных пользователей. А вот старое и новое значение реквизита журнал не хранит: для этого нужна история изменений объектов.

Технологический журнал и SQL-запросы — инструменты администратора. Их берут, когда стандартного журнала мало: разобрать ошибку конкретного сотрудника, найти долгую операцию, выгрузить события за год в отчёт. Механизмы платформенные, поэтому почти всё ниже работает в любой типовой конфигурации на 8.3.

С чего начать: какой инструмент отвечает на ваш вопрос

Контроль работы пользователей в 1С — это несколько разных вопросов. Под каждый свой инструмент.

Что нужно узнатьИнструментКто может
Кто провёл, изменил или удалил документЖурнал регистрацииАдминистратор базы
Кто сейчас в базе, с какого компьютераАктивные пользователи, консоль кластераАдминистратор базы или сервера
Какую сумму или реквизит поменялиИстория изменений (версии объектов)Администратор, включается заранее
Почему у сотрудника падает ошибка, что тормозитТехнологический журналАдминистратор сервера
Отчёт по действиям за длинный периодВыгрузка журнала кодом или SQL-запрос к файлу журналаПрограммист 1С
Постоянный аудит, оповещенияВнешние системы мониторингаИТ-отдел

Журнал регистрации и активные пользователи доступны «из коробки». Историю изменений и технологический журнал нужно включить заранее: задним числом они ничего не покажут.

Журнал регистрации: как посмотреть действия пользователей в 1С

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

Как открыть

  1. В БП 3.0, ЗУП 3.1, УТ 11, КА 2 и ERP: Администрирование → Обслуживание → Журнал регистрации.
  2. В любой конфигурации: Главное меню → Функции для технического специалиста → Стандартные → Журнал регистрации. Если команды нет в меню, включите её в Главное меню → Сервис → Параметры (в старых релизах платформы команда называлась «Все функции»).
  3. В конфигураторе: Администрирование → Журнал регистрации.

Для просмотра нужны административные права. Обычный пользователь журнал не откроет — это защищает журнал от правок «под себя».

Как найти нужное действие

Без отбора журнал показывает тысячи строк. Нажмите кнопку установки отбора и сузьте выборку:

  • 📅 Период — начните с одного дня, потом расширяйте;
  • 👤 Пользователь — один или несколько;
  • 🏷 Событие — например, «Данные. Проведение», «Данные. Удаление», «Сеанс. Начало»;
  • 📂 Метаданные — вид объекта: документ «Реализация товаров и услуг», справочник «Контрагенты»;
  • 🔎 Данные — конкретный документ или элемент справочника;
  • 💻 Компьютер и Приложение — с какой машины и через какой клиент заходили.

Пример. Бухгалтер жалуется, что у акта за 15-е число пропало проведение. Ставим отбор: период — с 15-го по сегодня, метаданные — нужный вид документа, данные — сам документ. В журнале видна строка «Данные. Отмена проведения», время и пользователь.

Какие события стоит знать

Событие в журналеЧто значит
Сеанс. Начало / Сеанс. ЗавершениеВход и выход из базы
Сеанс. АутентификацияУспешный вход под пользователем
Сеанс. Ошибка аутентификацииНеверный пароль или попытка входа под чужим именем
Данные. ДобавлениеСоздан новый объект
Данные. ИзменениеОбъект записан с изменениями
Данные. Проведение / Отмена проведенияРабота с проведением документа
Данные. УдалениеОбъект удалён непосредственно, без пометки

Пометка на удаление записывается как изменение объекта. Само удаление помеченных объектов администратор выполняет обработкой — и это тоже попадёт в журнал под его именем.

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

Уровень детализации задают в конфигураторе: Администрирование → Настройка журнала регистрации. Варианты — от «Не регистрировать» до «Регистрировать ошибки, предупреждения, информацию и примечания». Для контроля действий нужен уровень, который включает информацию и примечания: именно так пишутся события записи и проведения.

Там же настраивают разделение журнала на файлы по периодам. На большой базе журнал за год занимает гигабайты. Старые записи можно выгрузить в файл и сократить журнал — команда сокращения есть в том же меню конфигуратора.

Журнал хранит факт изменения, но не содержимое. Вы увидите «Иванов изменил документ в 14:32», но не узнаете, что было в поле «Сумма» до этого.

Где лежат файлы журнала:

  • файловая база — каталог 1Cv8Log внутри папки базы;
  • клиент-серверная база — srvinfo\reg_1541\<идентификатор базы>\1Cv8Log на сервере 1С.

С платформы 8.3.5 используется формат с одним файлом 1Cv8.lgd (база SQLite). Старый формат — набор файлов .lgf и .lgp. Формат переключают в той же настройке журнала.

Кто сейчас в базе: активные пользователи и сеансы

Когда надо выгнать всех перед обновлением или понять, кто держит базу, смотрите текущие сеансы.

В режиме 1С:Предприятие

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

Тот же список есть в Функции для технического специалиста → Стандартные → Активные пользователи и в конфигураторе: Администрирование → Активные пользователи.

В консоли кластера серверов

Для клиент-серверной базы откройте «Администрирование серверов 1С Предприятия», раскройте кластер, затем Информационные базы → <база> → Сеансы. Здесь больше данных: номер сеанса, рабочий процесс, время последней активности, захваченная лицензия, объём обращений к СУБД.

Через командную строку то же самое показывает утилита rac (нужен запущенный сервер администрирования ras):

rac cluster list
rac infobase summary list --cluster=<id_кластера>
rac session list --cluster=<id_кластера> --infobase=<id_базы>

В выводе session list смотрите поля user-name, host, app-id, started-at и last-active-at. Флаги для отбора и вывода лицензий есть в справке rac help session.

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

Что именно изменили в документе: история изменений и версии

Чтобы видеть не только «кто», но и «что именно», включите хранение версий объектов. В конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11, КА, ERP) это делается так:

  1. Откройте Администрирование → Общие настройки.
  2. В группе «История изменений» установите флажок «Хранить историю изменений».
  3. По ссылке настроек выберите, для каких видов документов и справочников хранить версии и сколько.

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

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

Хранение версий увеличивает базу. Поэтому для служебных справочников и регламентных документов его обычно не включают, а срок хранения ограничивают.

Таблицы изменений и история данных

Есть ещё два механизма, которые путают с историей изменений:

  • Таблицы изменений планов обмена. Платформа отмечает, какие объекты изменились и должны уйти в другую базу. Это очередь для обмена данными, а не аудит: автора изменения там нет. Посмотреть регистрацию можно обработкой регистрации изменений из комплекта БСП или в узле плана обмена.
  • История данных — платформенный механизм (с версии 8.3.11). Программист включает его в конфигураторе для нужных объектов, и платформа хранит изменённые значения реквизитов с автором и датой. Читать историю нужно кодом или доработанной формой.

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

Технологический журнал для разбора действий пользователей

Технологический журнал (ТЖ) пишет внутренние события платформы: исключения, вызовы сервера, запросы к СУБД, ожидания на блокировках. Он нужен, когда вопрос не «кто провёл», а «почему у Петровой всё падает» или «что делал сеанс, который повесил базу».

Как включить

ТЖ включается файлом logcfg.xml в каталоге conf установленной платформы на компьютере, где идут вычисления: на сервере 1С для клиент-серверной базы или на рабочей станции для файловой. Например, C:\Program Files\1cv8\conf\logcfg.xml.

Пример: исключения и события соединений одного пользователя, хранение 24 часа.

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\techlog" history="24">
    <event>
      <eq property="name" value="EXCP"/>
      <eq property="Usr" value="Петрова"/>
    </event>
    <event>
      <eq property="name" value="CONN"/>
    </event>
    <property name="all"/>
  </log>
</config>

Условия внутри одного <event> действуют вместе (И), разные <event> — независимо. Атрибут history задаёт срок хранения в часах. Платформа подхватывает изменение файла сама, примерно в течение минуты, перезапуск не нужен.

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

  • ❗ EXCP — исключения, то есть ошибки, которые видит пользователь;
  • 🔌 CONN и SESN — соединения и сеансы;
  • 🧮 CALL — вызовы сервера с длительностью;
  • 🗄 DBMSSQL, DBPOSTGRS — запросы к СУБД;
  • 🔒 TLOCK — управляемые блокировки.

ТЖ с событиями СУБД без отбора за час может занять десятки гигабайт и заполнить диск сервера. Всегда указывайте отбор, отдельный диск в location и короткий history. Закончили разбор — удалите или переименуйте logcfg.xml.

Файлы ТЖ — текстовые логи, разложенные по папкам процессов (rphost_<номер>) и часам. Искать в них удобно через findstr или grep по имени пользователя или тексту ошибки.

Действия пользователей через SQL и выгрузку журнала

Если нужен отчёт за квартал или сводка по сотрудникам, ручной просмотр журнала не годится. Есть три пути.

Выгрузка журнала кодом 1С

Функция ВыгрузитьЖурналРегистрации выполняется на сервере и кладёт записи в таблицу значений. Пример — все изменения данных за сегодня:

&НаСервере
Процедура ВыгрузитьИзмененияЗаСегодня()
    Таблица = Новый ТаблицаЗначений;
    Отбор = Новый Структура;
    Отбор.Вставить("ДатаНачала", НачалоДня(ТекущаяДатаСеанса()));
    Отбор.Вставить("ДатаОкончания", КонецДня(ТекущаяДатаСеанса()));
    Отбор.Вставить("Событие", "_$Data$_.Update");
    ВыгрузитьЖурналРегистрации(Таблица, Отбор);
    Для Каждого Запись Из Таблица Цикл
        Сообщить(Строка(Запись.Дата) + " | " + Запись.ИмяПользователя + " | " + Запись.ПредставлениеДанных);
    КонецЦикла;
КонецПроцедуры

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

SQL-запрос к файлу журнала

Файл 1Cv8.lgd — обычная база SQLite. Скопируйте его (рабочий файл занят платформой) и откройте любым клиентом SQLite. Основная таблица — EventLog, имена пользователей и событий лежат в справочных таблицах UserCodes и EventCodes. Дата хранится числом в десятитысячных долях секунды от 01.01.0001:

SELECT datetime(e.date / 10000 - 62135596800, 'unixepoch') AS dt,
       u.name  AS usr,
       ev.name AS event,
       e.dataPresentation
FROM EventLog e
LEFT JOIN UserCodes  u  ON u.code  = e.userCode
LEFT JOIN EventCodes ev ON ev.code = e.eventCode
ORDER BY e.date DESC
LIMIT 200;

Время в результате сверьте с журналом в 1С по одной-двум записям: при расхождении на несколько часов сдвиньте выборку на часовой пояс.

Запросы к базе СУБД

Таблицы информационной базы в MS SQL или PostgreSQL называются служебно: _Document123, _Reference45. Соответствие имён объектам 1С возвращает функция ПолучитьСтруктуруХраненияБазыДанных().

Но для аудита действий этот путь слабый. Все пользователи 1С ходят в СУБД под одной учётной записью сервера 1С. Аудит СУБД покажет запросы, но не скажет, какой бухгалтер их вызвал. Связать запрос с пользователем можно только через ТЖ, где событие DBMSSQL несёт свойство Usr.

Ничего не меняйте в таблицах базы напрямую через SQL. Это обходит логику платформы, ломает итоги регистров и нарушает лицензионное соглашение. Только чтение, лучше на копии.

Внешние системы аудита и постоянный контроль работы

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

  • 📊 Сборщики логов (Elasticsearch с Kibana, Graylog и аналоги). Журнал регистрации и ТЖ регулярно выгружаются в хранилище, где есть быстрый поиск, графики и оповещения: например, письмо при массовом удалении документов или при входе администратора ночью.
  • 🛠 Инструменты фирмы 1С из «Корпоративного инструментального пакета» — «Центр контроля качества» и «Центр управления производительностью». Они нацелены на производительность и ошибки, но тоже показывают активность по пользователям.
  • 🧩 Отраслевые обработки и расширения аудита. Добавляют отчёты по журналу, хранение старых и новых значений реквизитов, уведомления. Устанавливайте расширением, а не правкой типовой конфигурации, чтобы не снимать её с поддержки.
  • 🖥 DLP-системы и учёт рабочего времени. Контролируют не базу, а компьютер: запущенные программы, снимки экрана. Их внедрение требует уведомить сотрудников о мониторинге.

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

Минимальная настройка аудита в типовой базе
Выполнено: 0 / 6

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

Можно ли узнать, кто изменил документ, если журнал регистрации был отключён?
Нет. Платформа не хранит автора изменений вне журнала. Частичную подсказку даёт реквизит «Ответственный» или «Автор» документа, но он показывает создателя, а не последнего правившего.
Почему в журнале у всех действий один и тот же пользователь?
Сотрудники работают под общей учётной записью или в базе нет списка пользователей. Тогда журнал пишет пустое имя. Решение — завести каждому свой логин в Администрирование → Настройки пользователей и прав.
Видит ли пользователь, что администратор смотрит его действия?
Нет. Просмотр журнала регистрации и списка сеансов никак не отображается у пользователя. Никаких уведомлений на его экран не приходит.
Можно ли удалить записи из журнала регистрации?
Отдельные записи — нет. Администратор может только сократить журнал целиком до выбранной даты, и это делается в конфигураторе. Для защиты от такого сокращения журнал регулярно выгружают в архив вне сервера.
Сколько хранится журнал регистрации?
Пока его не сократят вручную. Срок ограничен только местом на диске. На активной базе на 50 пользователей журнал за год может занять несколько гигабайт, поэтому его делят на файлы по месяцам.