Кто, когда и что менял в базе: работаем с журналом регистрации 1С
Содержание
В типовых конфигурациях 1С 8.3 журнал регистрации открывается через Администрирование → Поддержка и обслуживание → Журнал регистрации. Если раздела нет или он скрыт, тот же журнал доступен в Конфигураторе: Администрирование → Журнал регистрации. Физически записи лежат в папке 1Cv8Log — в каталоге файловой базы или в каталоге кластера на сервере.
Журнал регистрации — встроенный протокол платформы 1С:Предприятие 8. В нём видно, кто входил в программу, какие документы создавал, проводил и удалял, какие ошибки получал и когда упали фоновые задания. Смотреть его может только пользователь с административными правами.
Где находится журнал регистрации в режиме Предприятия
Путь одинаков для конфигураций на Библиотеке стандартных подсистем (БСП). Это почти все современные типовые решения.
| Конфигурация | Путь к журналу регистрации |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Поддержка и обслуживание → Журнал регистрации |
| ЗУП 3.1 | Администрирование → Поддержка и обслуживание → Журнал регистрации |
| Управление торговлей 11 | НСИ и администрирование → Администрирование → Поддержка и обслуживание → Журнал регистрации |
| Любая конфигурация | Все функции → Стандартные → Журнал регистрации |
Как включить «Все функции»
Последняя строка таблицы — универсальный запасной путь. Он работает даже в нетиповых и самописных базах, где раздела администрирования нет.
- Нажмите на значок меню в левом верхнем углу окна (кнопка с тремя полосками или шестерёнка — зависит от релиза платформы).
- Откройте
Сервис и настройки → Параметры. - Поставьте флажок «Отображать команду “Все функции”» и нажмите «Применить».
- В том же главном меню появится пункт
Все функции. В дереве откройте веткуСтандартныеи выберите «Журнал регистрации».
В конфигурациях на БСП журнал из раздела «Администрирование» удобнее стандартного: в нём есть быстрый отбор по объекту, переход к документу и форма события с полной расшифровкой.
Почему команды нет в меню
Команду не видят пользователи без права на просмотр журнала. В типовых конфигурациях оно входит в роли «Полные права» и «Администратор системы». Бухгалтер с обычным профилем доступа журнал не откроет — это не сбой, а защита: в журнале видны действия всех сотрудников.
Если журнал нужен руководителю или главбуху, администратор добавляет его в группу доступа с административным профилем. Выдавать полные права ради одного журнала не лучшая идея: проще выгрузить нужный отрезок и передать файлом.
Журнал регистрации в Конфигураторе и папка 1Cv8Log
Конфигуратор открывает тот же журнал, но в своей форме. Это выход, когда пользователь не может войти в Предприятие: база падает при запуске, сломана роль, не грузится интерфейс.
- Запустите базу в режиме «Конфигуратор» под пользователем с административными правами.
- Выберите в меню
Администрирование → Журнал регистрации. - Платформа покажет записи за весь срок хранения. Для быстрой работы сразу задайте отбор по периоду кнопкой на панели окна.
Конфигуратор не блокирует базу монопольно при просмотре журнала. Пользователи могут продолжать работать.
Где лежат файлы журнала
| Вариант базы | Где искать папку журнала |
|---|---|
| Файловая | <каталог базы>\1Cv8Log\ — рядом с файлом 1Cv8.1CD |
| Клиент-серверная (Windows) | <каталог данных кластера>\reg_1541\<GUID базы>\1Cv8Log\ |
На сервере каталог данных по умолчанию — C:\Program Files\1cv8\srvinfo\. Если служба агента запущена с другим параметром -d, ищите путь там. GUID базы сопоставляют с её именем по файлу 1CV8Clst.lst в папке reg_1541: откройте его копию в блокноте и найдите имя базы — идентификатор стоит рядом.
Старый и новый формат
| Формат | Файлы | Особенность |
|---|---|---|
| Новый (с 8.3.5) | 1Cv8.lgd | Одна база SQLite, быстрые отборы |
| Старый (текстовый) | 1Cv8.lgf + множество *.lgp | Каждый период — отдельный файл |
Базы, созданные на старых платформах, могут вести журнал в старом формате годами — платформа его сама не меняет. Это одна из причин, почему журнал открывается минутами.
Не удаляйте и не переименовывайте файлы в 1Cv8Log вручную при работающих пользователях. Если очистка всё же нужна — делайте её штатно, через Конфигуратор (раздел ниже), а файлы сначала скопируйте.
Какие события пишутся: уровень регистрации и срок хранения
Что именно попадёт в журнал, задаёт администратор. Настройка открывается в Конфигураторе: Администрирование → Настройка журнала регистрации.
Уровень регистрации
| Уровень | Что пишется | Когда выбирать |
|---|---|---|
| Не регистрировать | Ничего | Почти никогда: теряются все следы |
| Регистрировать ошибки | Только ошибки | Слабый сервер, мало места на диске |
| Ошибки и предупреждения | + предупреждения | Компромисс для небольших баз |
| Ошибки, предупреждения и информацию | + входы, изменения данных | Рабочий вариант для учёта |
| Все события | + примечания | Расследование, разбор инцидентов |
Если стоит уровень «Регистрировать ошибки», журнал не покажет, кто изменил или удалил документ. Записи «Данные. Изменение» и «Данные. Удаление» относятся к уровню «Информация» и при таком уровне просто не появятся. Включение уровня задним числом ничего не восстановит.
Уровень можно поменять и программно — методом УстановитьУровеньЖурналаРегистрации(). Это удобно для внешней обработки, если в Конфигуратор зайти нельзя:
// Включить запись ошибок, предупреждений и информации
УстановитьУровеньЖурналаРегистрации(УровеньЖурналаРегистрации.Информация);
Деление по периодам и сокращение
В том же окне настройки для нового формата есть параметр деления журнала по периодам. Деление по дням или месяцам держит файлы небольшими, отборы работают быстрее.
Глубину хранения задают кнопкой сокращения журнала:
- В окне
Настройка журнала регистрациинажмите кнопку сокращения журнала. - Укажите дату: все события раньше неё будут удалены.
- Отметьте сохранение удаляемых событий в файл и укажите путь. Так старые записи останутся в архиве.
- Подтвердите. На большом журнале операция идёт долго — планируйте её на вечер.
Ориентир для бухгалтерской базы: держать в рабочем журнале 1–2 последних года, а более старое — в архивных файлах. Срок, нужный при проверках, удобно привязать к сроку хранения учётных данных в вашей компании.
Отбор и поиск событий в журнале регистрации
Без отбора журнал выводит тысячи строк. Почти все задачи решаются двумя-тремя условиями.
Где задаётся отбор
- 🧩 В форме журнала из раздела «Администрирование» — кнопка установки отбора над списком.
- 🖥️ В стандартной форме (
Все функции) и в Конфигураторе — кнопка отбора на панели окна.
Поля отбора совпадают почти полностью: период, пользователь, компьютер, приложение, событие, метаданные, данные, комментарий, уровень, статус транзакции, сеанс.
Готовые сценарии отбора
| Задача | Что указать в отборе |
|---|---|
| Кто удалил документ | Событие «Данные. Удаление» + метаданные «Документ…» + период |
| Кто перепровёл документ | Событие «Данные. Проведение» или «Данные. Изменение» + метаданные |
| Кто заходил в базу ночью | События «Сеанс. Начало» и «Сеанс. Завершение» + период |
| Почему не пускает пользователя | Событие «Сеанс. Ошибка аутентификации» + пользователь |
| Что упало за день | Уровень «Ошибка» + период «сегодня» |
| Действия одного сотрудника | Пользователь + период, без отбора по событиям |
Как найти конкретный документ
Отбор «по метаданным» сужает поиск до вида объекта — например, до всех документов «Реализация (акт, накладная)». Дальше смотрите колонку «Данные» или «Представление данных»: там номер и дата документа.
В форме журнала на БСП из открытого события можно перейти к самому документу. В стандартной форме ищите строку визуально, после отбора их обычно немного.
Статус транзакции
Колонка, которую часто игнорируют, хотя она многое объясняет.
- ✅ «Зафиксирована» — изменение реально записано в базу.
- ↩️ «Отменена» — пользователь пытался записать, но транзакция откатилась. Документ в базе остался прежним.
- ⏳ «Не завершена» — транзакция ещё идёт или сеанс оборвался.
- ➖ «Нет транзакции» — событие вне транзакции, например вход в программу.
Если в журнале есть «Данные. Удаление» со статусом «Отменена», документ никто не удалял. Его пытались удалить, и платформа не дала.
Разбор ошибок и технических записей
Журнал регистрации — первое место, куда стоит смотреть при жалобе «у меня всё сломалось». Пользователь часто закрывает окно ошибки, не прочитав. Журнал хранит полный текст.
Порядок разбора
- Отберите уровень «Ошибка» и период ±15 минут от времени жалобы.
- Добавьте отбор по пользователю, если жалуется один человек.
- Откройте событие двойным щелчком. В поле «Комментарий» — полный текст ошибки с местом в модуле.
- Скопируйте первую строку текста ошибки и ищите по ней решение — это точнее, чем пересказ пользователя.
- Сверьте колонку «Приложение»: ошибка в тонком клиенте, в фоновом задании и в COM-соединении — это разные истории.
Типичные технические записи
| Событие | Что это обычно значит |
|---|---|
| «Сеанс. Ошибка аутентификации» | Неверный пароль, удалённый пользователь, сбой входа под Windows |
| «Фоновое задание. Ошибка выполнения» | Упало регламентное задание: обмен, загрузка курсов, обновление классификаторов |
| «Информационная база. Изменение параметров» | Кто-то менял настройки базы или блокировку сеансов |
| «Пользователи. Изменение» | Меняли права, пароль или профиль пользователя |
| «Данные. Изменение» с уровнем «Ошибка» | Не удалось записать объект: проверки заполнения, блокировки |
Журнал регистрации и технологический журнал
Журнал регистрации пишет события на уровне прикладной логики. Если нужно поймать медленные запросы, взаимоблокировки или падения процесса rphost, его не хватит. Для этого включают технологический журнал через файл logcfg.xml на сервере. Он настраивается отдельно и создаёт заметную нагрузку на диск, поэтому включайте его точечно и на ограниченное время.
Выгрузка журнала и анализ во внешних программах
Иногда журнал нужно передать: аудитору, специалисту поддержки, службе безопасности. Есть три пути — от простого к техническому.
1. Вывести список в таблицу
В форме журнала после отбора откройте меню «Ещё» и выберите «Вывести список». Платформа сформирует табличный документ. Его сохраняют как .xlsx или .mxl через стандартное сохранение файла.
Способ подходит для сотен и тысяч строк. Для сотен тысяч — нет: форма будет формироваться долго.
2. Программная выгрузка
Метод ВыгрузитьЖурналРегистрации() сохраняет события в XML-файл с отбором. Его можно вызвать из внешней обработки под администратором:
Отбор = Новый Структура;
Отбор.Вставить("ДатаНачала", НачалоДня(ТекущаяДата()));
Отбор.Вставить("ДатаОкончания", КонецДня(ТекущаяДата()));
Отбор.Вставить("Уровень", УровеньЖурналаРегистрации.Ошибка);
ВыгрузитьЖурналРегистрации("C:\Temp\errors_today.xml", Отбор);
Путь в первом параметре — путь на той машине, где выполняется код. В клиент-серверной базе при вызове на сервере файл окажется на сервере 1С, а не у вас на компьютере.
Тот же метод умеет выгружать события в таблицу значений — тогда их можно сразу обработать кодом: посчитать ошибки по пользователям, сгруппировать по событиям.
3. Прямое чтение файла
Файл 1Cv8.lgd нового формата — база SQLite. Её открывает любой SQLite-клиент, а для аналитики подключают внешние системы сбора логов.
Работайте только с копией 1Cv8.lgd. Открытый внешней программой рабочий файл может помешать платформе записывать события, а случайная правка испортит журнал.
| Способ | Объём | Нужны навыки | Подходит для |
|---|---|---|---|
| «Вывести список» | До тысяч строк | Нет | Разовая проверка, отчёт руководителю |
ВыгрузитьЖурналРегистрации() | Любой | Код на встроенном языке | Регулярные выгрузки, аудит |
Копия 1Cv8.lgd | Любой | SQL | Сводная аналитика, мониторинг |
Частые ошибки при работе с журналом регистрации
- 🚫 Искать журнал под пользователем без прав. Команда просто не видна. Сначала проверьте, под кем вы вошли.
- 🚫 Открывать журнал без отбора по периоду. На базе с журналом в несколько гигабайт форма висит. Период — первое, что задаётся.
- 🚫 Путать журнал регистрации с историей изменений. Журнал говорит, что документ изменили и кто. Какие именно поля поменялись — он не покажет. Для этого в типовых конфигурациях есть отдельная настройка версионирования объектов.
- 🚫 Чистить папку 1Cv8Log вручную. Удалённые файлы не вернуть без резервной копии, а платформа может не начать новый журнал до перезапуска сеансов.
- 🚫 Включить «Все события» и забыть. Журнал растёт быстро, особенно при частых обменах. Включайте подробный уровень на время расследования, затем возвращайте рабочий.