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

· 9 мин

Содержание

Журнал регистрации в 1С 8.3 открывается из раздела Администрирование → Обслуживание → Журнал регистрации (в БП 3.0 и ЗУП 3.1), из меню Функции для технического специалиста → Стандартные → Журнал регистрации или в Конфигураторе через Администрирование → Журнал регистрации. Настроить его ведение можно только в Конфигураторе: Администрирование → Настройка журнала регистрации.

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

Где найти журнал регистрации в 1С 8.3 в режиме Предприятия

В пользовательском режиме есть два вида журнала. Они показывают одни и те же записи, но выглядят по-разному.

Форма журнала из конфигурации (БСП)

Типовые конфигурации построены на Библиотеке стандартных подсистем. В ней есть своя удобная форма журнала: с быстрыми отборами, расшифровкой данных и переходом к объекту.

КонфигурацияПуть к журналу регистрации
Бухгалтерия предприятия 3.0Администрирование → Обслуживание → Журнал регистрации
ЗУП 3.1Администрирование → Обслуживание → Журнал регистрации
Управление торговлей 11НСИ и администрирование → Обслуживание → Журнал регистрации

В панели «Обслуживание» ссылка обычно стоит в группе отчётов администратора. Если её не видно, раскройте свёрнутые группы на этой же странице.

Стандартная форма платформы

Она есть в любой конфигурации, даже нетиповой:

  1. Откройте главное меню (кнопка с тремя полосками в левом верхнем углу).
  2. Выберите Функции для технического специалиста. В старых релизах платформы этот пункт назывался Все функции.
  3. Раскройте ветку Стандартные и откройте Журнал регистрации.

Если пункта нет в меню, включите его: Главное меню → Сервис → Параметры → флажок «Отображать команду "Функции для технического специалиста"».

Стандартная форма полезна, когда форма БСП тормозит или падает с ошибкой. Платформенная форма проще и открывается даже в «сломанной» конфигурации.

Какие права нужны

Журнал увидит только пользователь с правом администрирования. Обычный бухгалтер с профилем «Бухгалтер» ссылку не увидит. Это не баг, а защита: в журнале видны действия всех сотрудников. Выдайте доступ администратору или попросите его посмотреть нужные записи.

Как открыть журнал регистрации из Конфигуратора и при отладке

Конфигуратор нужен, когда в Предприятие не войти: база не запускается, пользователь заблокирован, обновление упало посередине.

  1. Запустите 1С и выберите базу.
  2. Нажмите Конфигуратор, войдите под администратором.
  3. Выберите в меню Администрирование → Журнал регистрации.

Откроется та же платформенная форма, что и в пункте «Стандартные». Работать с ней можно, пока в базе сидят пользователи: журнал не требует монопольного доступа.

Запуск Предприятия с отладкой

Программист часто открывает базу прямо из Конфигуратора — клавишей F5 или командой Отладка → Начать отладку. В таком сеансе журнал доступен тем же путём, что и в обычном Предприятии.

Удобно, когда вы проверяете доработку: выполнили действие в отладочном сеансе, сразу открыли журнал и увидели, какие события записались и с каким комментарием. События отладочного сеанса попадают в общий журнал наравне с остальными.

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

Все настройки журнала — в Конфигураторе: Администрирование → Настройка журнала регистрации. Их две: что записывать и как делить файлы.

Уровень регистрации

Переключатель определяет, какие события попадают в журнал:

  • 🚫 Не регистрировать — журнал пуст. Узнать, кто что сделал, будет невозможно.
  • 🔴 Регистрировать ошибки — только события уровня «Ошибка».
  • 🟠 Регистрировать ошибки и предупреждения — плюс предупреждения.
  • 🟡 Регистрировать ошибки, предупреждения и информацию — плюс информационные события.
  • 🟢 Регистрировать все события — включая примечания: входы, изменения, проведения.

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

Разделение по периодам

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

Объём работы в базеЧто выбрать
Малая база, 1–5 пользователейПо месяцам
10–50 пользователей, обменыПо неделям или дням
Нагруженный сервер, сотни сеансовПо дням или часам

Мелкие файлы проще архивировать и удалять старые периоды. Один огромный файл открывается медленно и чаще повреждается.

Сокращение журнала

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

Отборы в журнале: как найти, кто удалил или изменил документ

Без отбора журнал за год — это миллионы строк. Открывать его «целиком» на сервере опасно: форма будет грузиться минутами. Сначала задайте отбор, потом смотрите.

Как поставить отбор

В форме БСП нажмите «Установить отбор» (в платформенной форме — команда отбора в командной панели). Поля отбора:

  • 📅 Интервал — начните с одного–двух дней вокруг момента проблемы;
  • 👤 Пользователь — один или несколько;
  • 💻 Компьютер и Приложение — тонкий клиент, веб-клиент, COM-соединение, фоновое задание;
  • ⚡ События — список с флажками;
  • 📄 Метаданные — например, только документ «Реализация (акт, накладная, УПД)»;
  • 🔎 Данные — конкретный объект;
  • ⚠️ Уровень — ошибки, предупреждения, информация, примечания.

Пример: ищем удалённую реализацию

  1. Поставьте интервал: с даты, когда документ точно был, по сегодня.
  2. В событиях оставьте только «Данные. Удаление» и «Данные. Пометка удаления».
  3. В метаданных выберите вид документа.
  4. Примените отбор и найдите строку с нужным номером в колонке «Представление данных».

В строке видно пользователя, компьютер, время с точностью до секунды и номер сеанса. Если документ удалили непосредственно, а не через «Удаление помеченных объектов», событие будет «Данные. Удаление». Сам документ из журнала не вернуть — только из резервной копии.

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

Как читать события журнала регистрации и коды ошибок

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

Частые события и что они значат

СобытиеТехнический кодЧто искать
Сеанс. Начало_$Session$_.StartКто и с какого компьютера вошёл
Сеанс. Завершение_$Session$_.FinishВнезапные выходы, обрывы связи
Сеанс. Ошибка аутентификации_$Session$_.AuthenticationErrorПодбор пароля, забытый пароль
Данные. Изменение_$Data$_.UpdateКто правил справочник или документ
Данные. Удаление_$Data$_.DeleteКто удалил объект
Данные. Проведение_$Data$_.PostПерепроведение задним числом
Данные. Отмена проведения_$Data$_.UnpostКто «распровёл» документ
Информационная база. Изменение конфигурации_$InfoBase$_.ConfigUpdateКогда обновили базу

Технические коды пригодятся, если вы отбираете события программно или выгружаете журнал в файл.

Как разобрать ошибку

  1. Поставьте отбор по уровню «Ошибка» и по интервалу, когда пользователь видел сообщение.
  2. Откройте строку двойным щелчком.
  3. Прочитайте комментарий целиком: в нём обычно есть имя модуля, номер строки и текст вроде {ОбщийМодуль.ОбменДанными.Модуль(1520)}: Ошибка при вызове метода контекста.
  4. Посмотрите поле «Приложение». «Фоновое задание» значит, что ошибку дало регламентное задание, а не человек.

Ошибки регламентных заданий видны только в журнале: пользователь их не видит на экране. Если в базе «молча» перестал работать обмен или загрузка курсов валют, первым делом смотрите ошибки с приложением «Фоновое задание».

Где хранится журнал: файловый и клиент-серверный вариант

Журнал — это не таблица базы, а отдельные файлы в папке 1Cv8Log. Их расположение зависит от варианта работы.

Файловая базаКлиент-серверная база
Где лежит<каталог базы>\1Cv8Log<каталог srvinfo>\reg_1541\<идентификатор базы>\1Cv8Log
Кто пишетКаждый клиент напрямуюРабочие процессы сервера
Резервная копияКопируется вместе с папкой базыНе входит в бэкап СУБД, копируется отдельно
Выгрузка .dtЖурнал не переноситЖурнал не переносит

Идентификатор базы на сервере — это GUID. Сопоставить его с именем базы можно по файлу 1CV8Clst.lst в той же папке reg_1541.

Форматы файлов

В зависимости от версии платформы и того, как создавали базу, журнал хранится:

  • 🗂 в последовательном формате — файлы .lgf (справочник пользователей , компьютеров, метаданных) и .lgp (сами записи за период);
  • 🗄 в формате SQLite — один файл 1Cv8.lgd.

Выгрузка в .dt не переносит журнал регистрации. Если вы переезжаете на новый сервер или поднимаете копию базы и вам важна история, скопируйте папку 1Cv8Log отдельно, при остановленных сеансах.

В клиент-серверном варианте журнал легко «съедает» диск сервера. Следите за размером папки srvinfo и настройте разделение по периодам.

Журнал регистрации из кода: запись и выгрузка событий

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

Запись собственного события:

ЗаписьЖурналаРегистрации("ЗагрузкаПрайса.Ошибка",
    УровеньЖурналаРегистрации.Ошибка, , ,
    "Не найден файл прайса: " + ИмяФайла);

Первый параметр — имя события. Делайте его с префиксом подсистемы: так его проще отобрать среди тысяч стандартных.

Выгрузка удалений за сегодня в таблицу значений (серверный код):

ТаблицаСобытий = Новый ТаблицаЗначений;
Отбор = Новый Структура;
Отбор.Вставить("ДатаНачала", НачалоДня(ТекущаяДатаСеанса()));
Отбор.Вставить("Событие", "_$Data$_.Delete");
ВыгрузитьЖурналРегистрации(ТаблицаСобытий, Отбор);

Для Каждого Строка Из ТаблицаСобытий Цикл
    Сообщить(Строка(Строка.Дата) + " " + Строка.ИмяПользователя
        + " " + Строка.ПредставлениеДанных);
КонецЦикла;

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

Проблемы с журналом регистрации и как их решить

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

Диагностика: выберите симптом

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

Журнал регистрации и технологический журнал — не одно и то же

Их часто путают. Журнал регистрации пишет бизнес-события: вход, изменение документа, ошибку в модуле. Технологический журнал включают файлом logcfg.xml для разбора производительности и блокировок, он пишет каждый вызов к СУБД. Для вопроса «кто удалил» нужен первый, для вопроса «почему тормозит проведение» — второй.

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

Сколько хранятся записи журнала регистрации?
Бессрочно, пока их не удалят кнопкой «Сократить» или вручную вместе с папкой 1Cv8Log. Автоматической очистки по сроку платформа не делает.
Можно ли восстановить удалённый документ через журнал регистрации?
Нет. Журнал показывает, кто и когда удалил объект, но сами данные не хранит. Документ восстанавливают из резервной копии базы или вводят заново.
Видны ли в журнале изменения конкретных реквизитов документа?
Платформенный журнал фиксирует сам факт изменения объекта, но не старые и новые значения полей. Для истории значений в типовых конфигурациях есть отдельный механизм версионирования объектов.
Может ли пользователь стереть свои следы в журнале?
Только если у него есть административные права в базе или доступ к папке журнала на диске. Поэтому права администратора выдают ограниченному кругу и доступ к каталогу базы закрывают на уровне Windows.
Сохранится ли журнал после обновления конфигурации?
Да. Обновление конфигурации не трогает папку 1Cv8Log, а само обновление записывается в журнал отдельным событием.