Журнал регистрации 1С: где искать ошибки, входы пользователей и изменения данных
Содержание
Все служебные сообщения 1С 8.3 собирает журнал регистрации. В Бухгалтерии 3.0, ЗУП 3.1 и других типовых конфигурациях на БСП его открывают так: Администрирование → Обслуживание, группа «Отчеты администратора» → «Журнал регистрации». В любой конфигурации он же доступен через Все функции → Стандартные → Журнал регистрации и в Конфигураторе: Администрирование → Журнал регистрации.
Сообщение об ошибке мелькнуло и пропало, пользователь закрыл окно, а через час звонит бухгалтер: «Документ не проводится». Журнал хранит время, пользователя, компьютер, текст ошибки и объект, на котором она случилась. Нужно лишь знать, где его открыть и как отсечь лишнее.
Что фиксирует журнал регистрации и чего в нём нет
Журнал — это механизм платформы, а не конфигурации. Он есть в любой базе 8.3, даже в самописной. Платформа пишет туда события сама, а конфигурация может добавлять свои записи из кода.
Что попадает в журнал при настройках по умолчанию:
- 🔐 входы и выходы пользователей, неудачные попытки аутентификации;
- ❌ ошибки выполнения: исключения встроенного языка, ошибки проведения, записи и удаления;
- 📝 изменения данных: запись, проведение, отмена проведения, пометка на удаление документов и справочников;
- ⚙️ административные действия: изменение конфигурации, обновление структуры базы, работа с пользователями;
- 🕒 запуск и ошибки регламентных и фоновых заданий;
- 💬 записи, которые сделала сама конфигурация: обмены, загрузка классификаторов, обновление информационной базы.
У каждой записи есть уровень важности. Их четыре:
| Уровень | Что означает | Пример |
|---|---|---|
| Ошибка | Действие не выполнено | Исключение при проведении документа |
| Предупреждение | Выполнено, но с проблемой | Не удалось загрузить часть данных обмена |
| Информация | Обычное событие | Вход пользователя в базу |
| Примечание | Детали, обычно для разработчика | Служебные записи подсистем |
Сообщения, которые программа выводит пользователю внизу формы через Сообщить(), в журнал сами не попадают. Если такое сообщение закрыли, восстановить его можно, только повторив действие. Журнал сохраняет их, лишь когда разработчик явно продублировал текст через ЗаписьЖурналаРегистрации().
Журнал не видит того, что происходит до входа в базу: ошибки лицензирования на сервере, падения рабочих процессов, проблемы СУБД. Для них есть серверные логи — о них ниже.
Где открыть журнал регистрации в режиме Предприятия
Просматривать журнал может пользователь с административными правами. Рядовой бухгалтер команду не увидит — это нормально, а не ошибка.
Путь по конфигурациям
| Конфигурация | Путь к журналу |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Обслуживание → «Отчеты администратора» → «Журнал регистрации» |
| ЗУП 3.1 | Администрирование → Обслуживание → «Отчеты администратора» → «Журнал регистрации» |
| Управление торговлей 11 | раздел НСИ и администрирование, ссылка «Обслуживание» → «Журнал регистрации» |
| Любая база 8.3 | Все функции → Стандартные → Журнал регистрации |
Как включить «Все функции»
Если в главном меню нет пункта «Все функции», включите его один раз:
- Нажмите кнопку главного меню (три полоски в левом верхнем углу).
- Выберите
Сервис → Параметры. - Поставьте флажок «Отображать команду “Все функции”» и нажмите «Применить».
- Снова откройте главное меню — пункт появится.
Чем отличаются две формы
Из раздела «Администрирование» открывается форма БСП. В ней сверху есть быстрые отборы по важности, а в строке видно событие и комментарий. Форма из «Все функции» — стандартная платформенная. Она проще, но работает в любой базе, включая нетиповые и сильно доработанные.
Двойной щелчок по строке в обеих формах открывает карточку события. Именно там лежит полный текст ошибки со стеком вызовов: модуль, номер строки, вызвавшая процедура. В списке видна только первая строка.
Поиск ошибок и событий через отбор
Журнал рабочей базы за год легко набирает миллионы записей. Листать его бесполезно — сначала ставьте отбор. В форме журнала нажмите команду «Установить отбор» (в стандартной форме она также доступна через Ещё).
Поля отбора, которые реально нужны в работе:
- 📅 Интервал — начало и конец периода. Сужайте до часа-двух вокруг жалобы, и журнал откроется мгновенно.
- 👤 Пользователь — один или несколько. Удобно, когда известно, кто сообщил о проблеме.
- 💻 Компьютер — имя рабочей станции. Помогает, если пользователь работает с нескольких машин.
- 🧩 Приложение — тонкий клиент, веб-клиент, Конфигуратор, фоновое задание, COM-соединение.
- 🏷 Событие — «Данные. Проведение», «Сеанс. Аутентификация (ошибка)», «Данные. Удаление» и другие.
- 🗂 Метаданные — тип объекта: например, только документы «Реализация (акт, накладная, УПД)».
- 🔎 Данные — конкретный документ или элемент справочника.
- ⚠️ Важность — ошибки, предупреждения, информация, примечания.
- 💬 Комментарий — поиск по части текста сообщения.
- 🔁 Статус транзакции — зафиксирована, отменена, не завершена.
Готовые сценарии поиска
Почему не провёлся документ. Интервал — время попытки, важность — «Ошибка», метаданные — вид документа. Откройте найденную строку: в комментарии будет текст исключения.
Кто удалил или изменил документ. Отбор по полю «Данные»: выберите сам документ. Если он уже удалён, отбирайте по событию «Данные. Удаление» и виду документа за нужный период. В строке будут пользователь, компьютер и время.
Кто подбирал пароль. Событие «Сеанс. Аутентификация (ошибка)». Колонка «Компьютер» покажет, откуда шли попытки.
Почему не отработало регламентное задание. Приложение — «Фоновое задание», важность — «Ошибка». Так видно, например, что обмен с банком или загрузка курсов валют падает каждую ночь.
Колонку «Статус транзакции» стоит держать на виду. Изменение со статусом «Отменена» на деле не сохранилось — откат транзакции. Если опираться только на событие «Данные. Запись», можно сделать неверный вывод о том, кто и что поменял.
Настройка уровня регистрации и размера журнала
Что попадёт в журнал, решает уровень регистрации. Его задают в Конфигураторе:
- Откройте базу в режиме Конфигуратора.
- Выберите
Администрирование → Настройка журнала регистрации. - Укажите уровень. Варианты: не регистрировать, только ошибки, ошибки и предупреждения, ошибки + предупреждения + информацию, все события.
- Задайте разделение журнала по периодам — по дням, неделям, месяцам или годам.
- Нажмите «ОК».
Не ставьте «Не регистрировать» в рабочей базе. При первой же спорной ситуации вы не узнаете ни автора изменений, ни текст ошибки.
Для бухгалтерии разумный выбор — «Регистрировать все события». Объём журнала вырастет, но именно записи уровня «Информация» отвечают на вопрос «кто изменил документ». Если места мало, лучше чистить старые периоды, чем снижать уровень.
Как сократить журнал
В том же окне настройки есть кнопка «Сократить». Она удаляет записи до указанной даты. Перед удалением программа предлагает сохранить их в файл — соглашайтесь, если у вас есть требования по хранению истории действий.
Сокращение необратимо. Удалённые без сохранения записи вернуть нельзя: в резервной копии базы их нет, журнал хранится отдельно от данных.
Разделение по периодам удобно ещё и тем, что старые файлы журнала можно перенести в архив вручную, не трогая текущий период.
Где журнал лежит на диске и что смотреть на сервере
Журнал регистрации физически хранится вне базы данных — в каталоге 1Cv8Log.
| Вариант базы | Где искать |
|---|---|
| Файловая | <каталог базы>\1Cv8Log |
| Клиент-серверная | <каталог данных сервера>\reg_1541\<идентификатор базы>\1Cv8Log |
Каталог данных сервера на Windows по умолчанию — C:\Program Files\1cv8\srvinfo. Идентификатор базы — длинная строка GUID. Сопоставить его с именем базы можно в файле 1CV8Clst.lst в каталоге reg_1541.
Форматов журнала два:
- 📄 Последовательный — файл
1Cv8.lgf(справочник пользователей, компьютеров, событий) и набор файлов.lgpс самими записями по периодам. - 🗄 SQLite — единый файл
1Cv8.lgd.
Если файлы журнала вручную скопировать в другой каталог 1Cv8Log, их можно открыть в другой базе через Конфигуратор. Так разбирают журнал без нагрузки на рабочий сервер.
Не удаляйте и не редактируйте файлы 1Cv8Log при работающих пользователях. Журнал открыт на запись. Повреждённый файл приведёт к ошибкам при открытии журнала, а записи за период будут потеряны.
Технологический журнал сервера
Ошибки, которые случаются до входа в базу или вне неё, пишутся в технологический журнал. По умолчанию он выключен. Включают его файлом logcfg.xml в каталоге conf платформы, например C:\Program Files\1cv8\conf.
Минимальная настройка для сбора исключений:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1c_techlog" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
Здесь history="24" — сколько часов хранить логи. Платформа перечитывает файл сама, перезапускать службу не нужно. Включайте журнал на время расследования и выключайте после: при широком наборе событий логи растут на гигабайты за час.
Падения процессов rphost и ragent дополнительно видны в системном журнале Windows: Просмотр событий → Журналы Windows → Приложение.
Выгрузка журнала и автоматический сбор событий
Выгрузка вручную
В форме журнала в режиме Предприятия выполните Ещё → Вывести список. Список откроется табличным документом, который сохраняется в mxl, xlsx и другие форматы. Так удобно передать подборку ошибок разработчику.
В Конфигураторе журнал с текущим отбором выгружается в XML через меню действий окна журнала («Выгрузить журнал»). XML нужен, если записи будут разбирать сторонние системы.
Выгрузка кодом
Для регулярного сбора используется метод ВыгрузитьЖурналРегистрации(). Пример: собрать ошибки за последние сутки в таблицу значений и сложить их в текстовую сводку.
Процедура СобратьОшибкиЗаСутки() Экспорт
Отбор = Новый Структура;
Отбор.Вставить("ДатаНачала", ТекущаяДатаСеанса() - 86400);
Отбор.Вставить("ДатаОкончания", ТекущаяДатаСеанса());
Отбор.Вставить("Уровень", УровеньЖурналаРегистрации.Ошибка);
События = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(События, Отбор);
Текст = Новый Массив;
Для Каждого Строка Из События Цикл
Текст.Добавить(СтрШаблон("%1 | %2 | %3",
Строка.Дата, Строка.ИмяПользователя, Строка.Комментарий));
КонецЦикла;
Сводка = СтрСоединить(Текст, Символы.ПС);
// Сводку отправляют администратору, например по почте
КонецПроцедуры
Метод работает только на сервере и требует права на журнал регистрации. Процедуру удобно вызывать из регламентного задания раз в сутки.
Свои события из кода
Чтобы важное сообщение не терялось вместе с окном Сообщить(), дублируйте его в журнал:
ЗаписьЖурналаРегистрации("Обмен.Банк",
УровеньЖурналаРегистрации.Предупреждение, , ,
"Выписка не загружена: файл не найден");
Первый параметр — имя события. Через точку удобно группировать: потом в отборе по событию все записи «Обмен.*» найдутся рядом.
Правки кода в типовой конфигурации делайте через расширение, а не снятием с поддержки. Иначе каждое обновление превратится в ручное объединение.
Частые вопросы
Почему журнал регистрации открывается очень долго?
Как узнать, кто удалил документ, если он уже стёрт из базы?
Журнал пустой, хотя в базе работают. В чём причина?
Администрирование → Настройка журнала регистрации. Ещё одна причина — нет прав на запись в каталог 1Cv8Log у пользователя службы сервера 1С.Попадает ли журнал регистрации в выгрузку .dt?
1Cv8Log. Чтобы сохранить историю, копируйте этот каталог вместе с резервной копией.