Кто, когда и что изменил в базе: работа с журналом регистрации 1С
Содержание
Журнал регистрации в 1С 8.3 открывается из раздела Администрирование → Обслуживание → Журнал регистрации (в БП 3.0 и ЗУП 3.1), из меню Функции для технического специалиста → Стандартные → Журнал регистрации или в Конфигураторе через Администрирование → Журнал регистрации. Настроить его ведение можно только в Конфигураторе: Администрирование → Настройка журнала регистрации.
Типичная ситуация: главбух утром не находит вчерашнюю реализацию, а в отделе пять человек, и все говорят «я не трогал». Ответ на вопрос «кто удалил» лежит в журнале регистрации — если он ведётся и его никто не сократил. Журнал — механизм платформы, поэтому он одинаково устроен во всех типовых конфигурациях на 8.3. Отличаются только путь к форме в меню и удобство отборов.
Где найти журнал регистрации в 1С 8.3 в режиме Предприятия
В пользовательском режиме есть два вида журнала. Они показывают одни и те же записи, но выглядят по-разному.
Форма журнала из конфигурации (БСП)
Типовые конфигурации построены на Библиотеке стандартных подсистем. В ней есть своя удобная форма журнала: с быстрыми отборами, расшифровкой данных и переходом к объекту.
| Конфигурация | Путь к журналу регистрации |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Обслуживание → Журнал регистрации |
| ЗУП 3.1 | Администрирование → Обслуживание → Журнал регистрации |
| Управление торговлей 11 | НСИ и администрирование → Обслуживание → Журнал регистрации |
В панели «Обслуживание» ссылка обычно стоит в группе отчётов администратора. Если её не видно, раскройте свёрнутые группы на этой же странице.
Стандартная форма платформы
Она есть в любой конфигурации, даже нетиповой:
- Откройте главное меню (кнопка с тремя полосками в левом верхнем углу).
- Выберите
Функции для технического специалиста. В старых релизах платформы этот пункт называлсяВсе функции. - Раскройте ветку
Стандартныеи откройтеЖурнал регистрации.
Если пункта нет в меню, включите его: Главное меню → Сервис → Параметры → флажок «Отображать команду "Функции для технического специалиста"».
Стандартная форма полезна, когда форма БСП тормозит или падает с ошибкой. Платформенная форма проще и открывается даже в «сломанной» конфигурации.
Какие права нужны
Журнал увидит только пользователь с правом администрирования. Обычный бухгалтер с профилем «Бухгалтер» ссылку не увидит. Это не баг, а защита: в журнале видны действия всех сотрудников. Выдайте доступ администратору или попросите его посмотреть нужные записи.
Как открыть журнал регистрации из Конфигуратора и при отладке
Конфигуратор нужен, когда в Предприятие не войти: база не запускается, пользователь заблокирован, обновление упало посередине.
- Запустите 1С и выберите базу.
- Нажмите
Конфигуратор, войдите под администратором. - Выберите в меню
Администрирование → Журнал регистрации.
Откроется та же платформенная форма, что и в пункте «Стандартные». Работать с ней можно, пока в базе сидят пользователи: журнал не требует монопольного доступа.
Запуск Предприятия с отладкой
Программист часто открывает базу прямо из Конфигуратора — клавишей F5 или командой Отладка → Начать отладку. В таком сеансе журнал доступен тем же путём, что и в обычном Предприятии.
Удобно, когда вы проверяете доработку: выполнили действие в отладочном сеансе, сразу открыли журнал и увидели, какие события записались и с каким комментарием. События отладочного сеанса попадают в общий журнал наравне с остальными.
Настройка ведения журнала регистрации
Все настройки журнала — в Конфигураторе: Администрирование → Настройка журнала регистрации. Их две: что записывать и как делить файлы.
Уровень регистрации
Переключатель определяет, какие события попадают в журнал:
- 🚫 Не регистрировать — журнал пуст. Узнать, кто что сделал, будет невозможно.
- 🔴 Регистрировать ошибки — только события уровня «Ошибка».
- 🟠 Регистрировать ошибки и предупреждения — плюс предупреждения.
- 🟡 Регистрировать ошибки, предупреждения и информацию — плюс информационные события.
- 🟢 Регистрировать все события — включая примечания: входы, изменения, проведения.
Для рабочей базы ставьте «Регистрировать все события». Именно на уровне примечаний пишутся изменения и удаления данных. На урезанном уровне вы увидите ошибки, но не найдёте, кто удалил документ.
Разделение по периодам
Параметр «Разделять журнал по периодам» решает, в сколько файлов складывать записи: без разделения, по годам, месяцам, неделям, дням или часам.
| Объём работы в базе | Что выбрать |
|---|---|
| Малая база, 1–5 пользователей | По месяцам |
| 10–50 пользователей, обмены | По неделям или дням |
| Нагруженный сервер, сотни сеансов | По дням или часам |
Мелкие файлы проще архивировать и удалять старые периоды. Один огромный файл открывается медленно и чаще повреждается.
Сокращение журнала
На этой же форме есть кнопка Сократить. Она удаляет записи старше выбранной даты. При сокращении платформа предлагает сохранить удаляемые события в файл — соглашайтесь и храните выгрузку хотя бы до закрытия года. После сокращения без выгрузки историю изменений уже не восстановить.
Отборы в журнале: как найти, кто удалил или изменил документ
Без отбора журнал за год — это миллионы строк. Открывать его «целиком» на сервере опасно: форма будет грузиться минутами. Сначала задайте отбор, потом смотрите.
Как поставить отбор
В форме БСП нажмите «Установить отбор» (в платформенной форме — команда отбора в командной панели). Поля отбора:
- 📅 Интервал — начните с одного–двух дней вокруг момента проблемы;
- 👤 Пользователь — один или несколько;
- 💻 Компьютер и Приложение — тонкий клиент, веб-клиент, COM-соединение, фоновое задание;
- ⚡ События — список с флажками;
- 📄 Метаданные — например, только документ «Реализация (акт, накладная, УПД)»;
- 🔎 Данные — конкретный объект;
- ⚠️ Уровень — ошибки, предупреждения, информация, примечания.
Пример: ищем удалённую реализацию
- Поставьте интервал: с даты, когда документ точно был, по сегодня.
- В событиях оставьте только «Данные. Удаление» и «Данные. Пометка удаления».
- В метаданных выберите вид документа.
- Примените отбор и найдите строку с нужным номером в колонке «Представление данных».
В строке видно пользователя, компьютер, время с точностью до секунды и номер сеанса. Если документ удалили непосредственно, а не через «Удаление помеченных объектов», событие будет «Данные. Удаление». Сам документ из журнала не вернуть — только из резервной копии.
Если удаление шло через обработку удаления помеченных, ищите сначала событие пометки: оно покажет, кто поставил пометку, а удалить мог другой человек.
Как читать события журнала регистрации и коды ошибок
Каждая запись содержит дату, пользователя, компьютер, приложение, событие, уровень, метаданные, данные и комментарий. Самое информативное поле при ошибке — комментарий: туда платформа пишет полный текст исключения.
Частые события и что они значат
| Событие | Технический код | Что искать |
|---|---|---|
| Сеанс. Начало | _$Session$_.Start | Кто и с какого компьютера вошёл |
| Сеанс. Завершение | _$Session$_.Finish | Внезапные выходы, обрывы связи |
| Сеанс. Ошибка аутентификации | _$Session$_.AuthenticationError | Подбор пароля, забытый пароль |
| Данные. Изменение | _$Data$_.Update | Кто правил справочник или документ |
| Данные. Удаление | _$Data$_.Delete | Кто удалил объект |
| Данные. Проведение | _$Data$_.Post | Перепроведение задним числом |
| Данные. Отмена проведения | _$Data$_.Unpost | Кто «распровёл» документ |
| Информационная база. Изменение конфигурации | _$InfoBase$_.ConfigUpdate | Когда обновили базу |
Технические коды пригодятся, если вы отбираете события программно или выгружаете журнал в файл.
Как разобрать ошибку
- Поставьте отбор по уровню «Ошибка» и по интервалу, когда пользователь видел сообщение.
- Откройте строку двойным щелчком.
- Прочитайте комментарий целиком: в нём обычно есть имя модуля, номер строки и текст вроде
{ОбщийМодуль.ОбменДанными.Модуль(1520)}: Ошибка при вызове метода контекста. - Посмотрите поле «Приложение». «Фоновое задание» значит, что ошибку дало регламентное задание, а не человек.
Ошибки регламентных заданий видны только в журнале: пользователь их не видит на экране. Если в базе «молча» перестал работать обмен или загрузка курсов валют, первым делом смотрите ошибки с приложением «Фоновое задание».
Где хранится журнал: файловый и клиент-серверный вариант
Журнал — это не таблица базы, а отдельные файлы в папке 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 для разбора производительности и блокировок, он пишет каждый вызов к СУБД. Для вопроса «кто удалил» нужен первый, для вопроса «почему тормозит проведение» — второй.