Журнал регистрации 1С: кто, когда и что сделал в базе
Содержание
Все действия пользователя в 1С видны в журнале регистрации. В БП 3.0, ЗУП 3.1, УТ 11 он открывается по пути Администрирование → Обслуживание → Журнал регистрации, в Конфигураторе — Администрирование → Журнал регистрации. Дальше ставите отбор по пользователю и периоду и видите входы, выходы, создание, изменение, проведение и удаление объектов.
Есть условие: запись должна быть включена на уровне «Информация» или «Все события». При уровне «Ошибки» журнал молчит о том, кто провёл или удалил документ. Это механизм платформы, поэтому он одинаков во всех типовых конфигурациях на 8.3.
Что фиксирует журнал регистрации и чего в нём нет
Журнал ведёт сама платформа. Каждая запись — одно событие с набором полей.
| Поле | Что показывает |
|---|---|
| Дата | Время события с точностью до секунды |
| Пользователь | Имя пользователя информационной базы |
| Компьютер | Имя машины, с которой работали |
| Приложение | Тонкий клиент, веб-клиент, Конфигуратор, фоновое задание, COM-соединение |
| Событие | Тип действия: начало сеанса, изменение данных, ошибка |
| Метаданные | Вид объекта: «Документ. Реализация (акт, накладная, УПД)» |
| Данные | Ссылка на конкретный объект, можно открыть |
| Комментарий | Текст ошибки или пояснение |
| Сеанс, Транзакция | Номер сеанса и состояние транзакции |
Основные события, по которым восстанавливают картину дня:
- 🔑
Сеанс. НачалоиСеанс. Завершение— вход и выход; - 🚫
Сеанс. Ошибка аутентификации— неверный пароль или попытка войти чужим именем; - ➕
Данные. Добавление— создан новый документ или элемент справочника; - ✏️
Данные. Изменение— объект записан повторно; - 📗
Данные. ПроведениеиДанные. Отмена проведения; - ❌
Данные. Пометка удаленияиДанные. Удаление— второе бывает после удаления помеченных объектов; - 👤
Пользователи. Новый,Пользователи. Изменение— правки списка пользователей; - ⚙️ события Конфигуратора: обновление конфигурации , загрузка и выгрузка базы.
Чего журнал не покажет:
- старое и новое значение реквизита. Видно, что Петрова записала документ в 14:32, но не видно, что сумма была 12 000, а стала 21 000;
- открытие формы и просмотр отчёта — платформа такие события не пишет, если их не регистрирует сама конфигурация;
- действия под общим логином. Если пятеро работают под «Бухгалтер», журнал покажет одного «Бухгалтера». Различить людей поможет только поле «Компьютер».
Для ответа «что именно поменяли» включите историю изменений объектов: в БП 3.0 это флажок в Администрирование → Общие настройки. Тогда в карточке документа через меню «Ещё» доступна история версий с подсветкой отличий. Она работает только с момента включения — задним числом версии не появятся.
Как включить полную запись действий
Уровень детализации задаётся в Конфигураторе. Нужен пользователь с административными правами.
- Откройте базу в режиме Конфигуратор.
- Выберите
Администрирование → Настройка журнала регистрации. - Выберите уровень
Регистрировать ошибки, предупреждения и информациюилиРегистрировать все события. - Задайте разделение журнала по периодам, если база большая.
- Нажмите «ОК». Новые события начнут писаться сразу, перезапуск сеансов не нужен.
Монопольный режим для этой настройки не требуется.
Какой уровень выбрать
| Уровень | Что попадает | Когда ставить |
|---|---|---|
| Не регистрировать | Ничего | Не рекомендуется: при инциденте не останется следов |
| Ошибки | Только сбои | Тестовые и учебные базы |
| Ошибки и предупреждения | Сбои и предупреждения | Если места на диске очень мало |
| Ошибки, предупреждения, информация | Плюс входы и изменения данных | Рабочая база, где нужен аудит |
| Все события | Плюс примечания | Разбор инцидента, расследование |
Если сейчас стоит «Ошибки», всё, что было до переключения, восстановить нельзя. Журнал не пишет события задним числом. Поэтому настройку проверяют до того, как понадобилось искать виноватого.
Где хранится файл журнала
- Файловая база — каталог
1Cv8Logвнутри папки базы. - Клиент-серверная база
— на сервере 1С:
srvinfo\reg_1541\<идентификатор базы>\1Cv8Log.
Формат на платформе 8.3 бывает двух видов. Новый — один файл 1Cv8.lgd (база SQLite). Старый — текстовые файлы .lgp и словарь 1Cv8.lgf. Посмотреть, какой у вас, проще всего по расширениям в этой папке.
Как найти действия конкретного пользователя
Откройте журнал из пользовательского режима: Администрирование → Обслуживание → Журнал регистрации. Если раздела нет в интерфейсе, подойдёт Все функции → Стандартные → Журнал регистрации. Пункт «Все функции» включается в параметрах главного меню.
Отбор по человеку и периоду
- В форме журнала нажмите кнопку установки отбора.
- Задайте интервал: например, с 01.09 00:00 по 01.09 23:59.
- В поле «Пользователи» выберите сотрудника. Можно отметить нескольких.
- Если интересуют только правки данных, в поле «События» оставьте группу «Данные».
- Примените отбор.
По умолчанию форма показывает ограниченное число последних записей — обычно 200. Для длинного периода увеличьте это число в поле над списком. Иначе часть событий просто не попадёт в выборку, и покажется, что их не было.
История одного документа
Иногда нужен не человек, а объект: кто трогал реализацию № 457. Делается так:
- В отборе в поле «Метаданные» выберите вид документа.
- В поле «Данные» укажите сам документ.
- Оставьте пользователя пустым.
Получите хронологию: кто создал, кто перепровёл, кто ставил пометку удаления.
Как читать результат
Пример выборки по бухгалтеру за день:
| Время | Событие | Данные |
|---|---|---|
| 09:12 | Сеанс. Начало | — |
| 09:40 | Данные. Добавление | Поступление (акт, накладная) 00000312 |
| 09:41 | Данные. Проведение | Поступление 00000312 |
| 11:05 | Данные. Изменение | Контрагент «Альфа» |
| 16:58 | Данные. Пометка удаления | Счёт на оплату 00000088 |
| 18:03 | Сеанс. Завершение | — |
Строку с документом можно открыть двойным щелчком и перейти к самому объекту.
Одна запись документа часто даёт сразу два события: изменение и проведение. Это не двойная работа пользователя, а одна кнопка «Провести и закрыть».
Размер журнала и скорость работы базы
Полная запись событий — это нагрузка на диск. Активная база на 30–50 пользователей на уровне «Информация» может набирать гигабайты журнала за год. Последствия:
- 🐢 форма журнала долго открывается и долго применяет отбор;
- 💾 растёт место на диске сервера и время резервного копирования;
- ⏳ выгрузки за большой период идут десятки минут.
Что помогает:
- Разделение по периодам. В той же настройке Конфигуратора включите разбиение журнала по периодам. Платформа будет создавать отдельные файлы, и поиск за месяц не будет перебирать весь архив.
- Сокращение журнала. В Конфигураторе
Администрирование → Журнал регистрации, затем команда сокращения. Указываете дату, до которой удалить события. Удаляемые записи можно сразу сохранить в отдельный файл — так и делайте. - Узкий отбор. Всегда ставьте интервал и пользователя. Открывать журнал «за всё время» без отбора бессмысленно.
Не удаляйте файлы из папки 1Cv8Log вручную при работающих пользователях. Журнал открыт платформой, и вы рискуете получить повреждённый файл. Если чистка нужна на уровне файлов — делайте её в нерабочее время после завершения всех сеансов и после копии папки.
Журнал регистрации не путайте с технологическим журналом. Технологический настраивается файлом logcfg.xml, пишет запросы, блокировки и вызовы сервера. Он нужен для разбора тормозов и сбоев, а не для ответа «кто провёл документ».
Выгрузка журнала и автоматическая обработка
Ручная выгрузка
- Через форму. Поставьте отбор, выделите строки и скопируйте их или выведите список через меню «Ещё» в табличный документ. Оттуда — в Excel.
- В XML из Конфигуратора. В окне журнала есть сохранение в файл. Формат XML понятен любым скриптам.
- Копия файла
.lgd. Это обычная база SQLite. Скопируйте файл и откройте копию любым просмотрщиком SQLite. Основная таблица событий —EventLog, имена пользователей и метаданных лежат в отдельных справочных таблицах и связаны по кодам. Рабочий файл не открывайте — только копию.
Выгрузка кодом
Если разбор нужен регулярно, его делают обработкой. Платформенный метод ВыгрузитьЖурналРегистрации складывает отобранные события в таблицу значений или в файл.
Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени("Петрова Анна");
Отбор = Новый Структура;
Отбор.Вставить("ДатаНачала", НачалоДня(ТекущаяДата()));
Отбор.Вставить("ДатаОкончания", КонецДня(ТекущаяДата()));
Отбор.Вставить("Пользователь", Пользователь);
События = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(События, Отбор);
Для Каждого Запись Из События Цикл
Сообщить(Строка(Запись.Дата) + " | " + Запись.Событие + " | " + Строка(Запись.Данные));
КонецЦикла;
Код выполняется на сервере и требует права на журнал регистрации у того, кто его запускает. Если пользователя с таким именем нет, НайтиПоИмени вернёт Неопределено — в рабочей обработке это стоит проверить до отбора.
Конфигурация может и сама писать в журнал свои события методом ЗаписьЖурналаРегистрации. Так фиксируют то, чего платформа не видит: печать важной формы, выгрузку банковских файлов, открытие отчёта по зарплате.
Типовые сценарии автоматизации
- ⏰ Регламентное задание раз в сутки выгружает события за вчера в отдельный файл или внешнюю базу. Журнал на сервере можно сокращать, а архив хранится сколько нужно.
- 📊 Отчёт по активности: число входов, созданных и удалённых документов по каждому сотруднику за месяц.
- 🔔 Контроль аномалий: удаление документов закрытого периода или вход ночью — сигнал администратору.
Права на журнал и защита логов
Журнал содержит имена сотрудников, названия контрагентов и документов. Это чувствительные данные, и доступ к ним ограничивают.
- Право на просмотр задаётся на уровне конфигурации — оно называется «Журнал регистрации». В типовых конфигурациях оно входит в административные роли.
- Обычный бухгалтер или кладовщик журнал не видит, и это правильно.
- Право «Администрирование» даёт и настройку уровня записи. Человек с ним может отключить регистрацию. Таких пользователей должно быть один-два.
Что сделать для надёжного аудита:
- Уберите общие логины. У каждого сотрудника свой пользователь. Иначе журнал не ответит на вопрос «кто».
- Включите аутентификацию по паролю или через Windows. Пустые пароли сводят аудит на нет: под любым именем может войти кто угодно.
- Закройте папку
1Cv8Logна уровне ОС. Доступ к ней нужен службе сервера 1С и администраторам, а не всем пользователям сети. В файловом варианте это сложнее: пользователям нужен доступ к каталогу базы, а значит, и к журналу. Для серьёзного аудита файловая база подходит хуже. - Копируйте журнал вместе с резервной копией базы. Выгрузка
.dtжурнал не содержит — это отдельные файлы.
Когда журнал не помогает и как это обойти
| Ситуация | Почему пусто | Что делать |
|---|---|---|
| Нет событий за нужный день | Уровень был «Ошибки» или журнал сокращали | Проверить настройку; искать в сохранённом при сокращении файле |
| Есть запись, но непонятно, что изменили | Журнал не хранит значения полей | История изменений объектов или сравнение с бэкапом |
| Пользователь «Администратор» везде | Работали под общим логином | Смотреть поле «Компьютер», разделить логины на будущее |
| Изменения сделал «пустой» пользователь | В базе нет списка пользователей или это фоновое задание | Проверить поле «Приложение»: фоновое задание или обмен данными |
| Форма журнала висит | Огромный файл без разделения | Узкий отбор, разделение по периодам, сокращение |
Изменения по обмену данными тоже видны. Например, загрузка из УТ в БП оставляет записи от имени пользователя, под которым идёт обмен. Поэтому для синхронизации заводят отдельного служебного пользователя — так правки людей не смешиваются с автоматическими.