Кто, когда и что сделал в базе 1С: журналы, сеансы и аудит
Содержание
Посмотреть действия пользователей в 1С быстрее всего через журнал регистрации: Администрирование → Обслуживание → Журнал регистрации в БП 3.0, ЗУП 3.1 и УТ 11. Там видно, кто и когда вошёл в базу, какой документ создал, провёл или удалил. Кто работает прямо сейчас, показывает список активных пользователей. А вот старое и новое значение реквизита журнал не хранит: для этого нужна история изменений объектов.
Технологический журнал и SQL-запросы — инструменты администратора. Их берут, когда стандартного журнала мало: разобрать ошибку конкретного сотрудника, найти долгую операцию, выгрузить события за год в отчёт. Механизмы платформенные, поэтому почти всё ниже работает в любой типовой конфигурации на 8.3.
С чего начать: какой инструмент отвечает на ваш вопрос
Контроль работы пользователей в 1С — это несколько разных вопросов. Под каждый свой инструмент.
| Что нужно узнать | Инструмент | Кто может |
|---|---|---|
| Кто провёл, изменил или удалил документ | Журнал регистрации | Администратор базы |
| Кто сейчас в базе, с какого компьютера | Активные пользователи, консоль кластера | Администратор базы или сервера |
| Какую сумму или реквизит поменяли | История изменений (версии объектов) | Администратор, включается заранее |
| Почему у сотрудника падает ошибка, что тормозит | Технологический журнал | Администратор сервера |
| Отчёт по действиям за длинный период | Выгрузка журнала кодом или SQL-запрос к файлу журнала | Программист 1С |
| Постоянный аудит, оповещения | Внешние системы мониторинга | ИТ-отдел |
Журнал регистрации и активные пользователи доступны «из коробки». Историю изменений и технологический журнал нужно включить заранее: задним числом они ничего не покажут.
Журнал регистрации: как посмотреть действия пользователей в 1С
Журнал регистрации пишет сама платформа. Каждая запись — это событие: вход, выход, запись объекта, проведение, ошибка.
Как открыть
- В БП 3.0, ЗУП 3.1, УТ 11, КА 2 и ERP:
Администрирование → Обслуживание → Журнал регистрации. - В любой конфигурации:
Главное меню → Функции для технического специалиста → Стандартные → Журнал регистрации. Если команды нет в меню, включите её вГлавное меню → Сервис → Параметры(в старых релизах платформы команда называлась «Все функции»). - В конфигураторе:
Администрирование → Журнал регистрации.
Для просмотра нужны административные права. Обычный пользователь журнал не откроет — это защищает журнал от правок «под себя».
Как найти нужное действие
Без отбора журнал показывает тысячи строк. Нажмите кнопку установки отбора и сузьте выборку:
- 📅 Период — начните с одного дня, потом расширяйте;
- 👤 Пользователь — один или несколько;
- 🏷 Событие — например, «Данные. Проведение», «Данные. Удаление», «Сеанс. Начало»;
- 📂 Метаданные — вид объекта: документ «Реализация товаров и услуг», справочник «Контрагенты»;
- 🔎 Данные — конкретный документ или элемент справочника;
- 💻 Компьютер и Приложение — с какой машины и через какой клиент заходили.
Пример. Бухгалтер жалуется, что у акта за 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) это делается так:
- Откройте
Администрирование → Общие настройки. - В группе «История изменений» установите флажок «Хранить историю изменений».
- По ссылке настроек выберите, для каких видов документов и справочников хранить версии и сколько.
После этого в форме документа появится команда истории изменений (в меню «Ещё»). Она показывает список версий: дата, автор, комментарий. Две версии можно сравнить — программа подсветит изменённые реквизиты и строки табличных частей.
Версии начинают копиться только с момента включения. Если документ испортили вчера, а историю включили сегодня, восстановить старое значение по версиям не получится. Включите заранее хотя бы для документов с деньгами и складом.
Хранение версий увеличивает базу. Поэтому для служебных справочников и регламентных документов его обычно не включают, а срок хранения ограничивают.
Таблицы изменений и история данных
Есть ещё два механизма, которые путают с историей изменений:
- Таблицы изменений планов обмена. Платформа отмечает, какие объекты изменились и должны уйти в другую базу. Это очередь для обмена данными, а не аудит: автора изменения там нет. Посмотреть регистрацию можно обработкой регистрации изменений из комплекта БСП или в узле плана обмена.
- История данных — платформенный механизм (с версии 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-системы и учёт рабочего времени. Контролируют не базу, а компьютер: запущенные программы, снимки экрана. Их внедрение требует уведомить сотрудников о мониторинге.
Перед покупкой проверьте простую вещь: включены ли уровень журнала с информацией и история изменений. Часто этого хватает, чтобы ответить на вопрос «кто это сделал» без доплаты.
Частые вопросы
Можно ли узнать, кто изменил документ, если журнал регистрации был отключён?
Почему в журнале у всех действий один и тот же пользователь?
Администрирование → Настройки пользователей и прав.