Журнал регистрации 1С в файлах .lgp: где лежит, как прочитать и почистить
Содержание
Файл с расширением .lgp — это кусок журнала регистрации 1С:Предприятия 8.3 в последовательном (текстовом) формате. Открывать его удобнее всего из самой 1С: Администрирование → Поддержка и обслуживание → Журнал регистрации в пользовательском режиме или Администрирование → Журнал регистрации в Конфигураторе. Платформа сама читает все файлы .lgp и подставляет расшифровку из словаря 1Cv8.lgf.
Блокнотом файл тоже открывается, но вместо имён пользователей и событий вы увидите числовые индексы. Поэтому файлы .lgp никогда не копируют поодиночке: без словаря .lgf они почти ничего не говорят. А если папка журнала разрослась до гигабайт, старые .lgp можно вынести в архив, не останавливая учёт, — главное не трогать словарь и текущий файл.
Что хранится в файлах LGP и где их найти
Журнал регистрации пишет, кто, когда и что сделал в базе: входы и выходы, запись и проведение документов, ошибки, обновления конфигурации, фоновые задания. В последовательном формате он хранится набором файлов в папке 1Cv8Log:
- 📘
1Cv8.lgf— словарь. В нём перечислены пользователи, компьютеры, приложения, события, объекты метаданных, серверы и порты. Каждому значению присвоен номер. - 📄
ГГГГММДДЧЧММСС.lgp— файлы с самими событиями, например20261001000000.lgp. Имя — дата и время начала периода. В записях вместо «Иванов» стоит номер из словаря. - 🗂
.lgx— индексные файлы, если они есть. Платформа строит их для быстрого поиска, это не данные, а служебная структура.
Где лежит папка:
| Вариант базы | Путь к журналу |
|---|---|
| Файловая | <каталог базы>\1Cv8Log, рядом с файлом 1Cv8.1CD |
| Клиент-серверная | <каталог srvinfo>\reg_1541\<GUID базы>\1Cv8Log на рабочем сервере |
Каталог srvinfo по умолчанию находится в C:\Program Files\1cv8\srvinfo, но при установке службы его часто переносят. Точный путь виден в параметрах запуска службы агента сервера 1С (ключ -d). GUID базы показывает консоль администрирования серверов в свойствах информационной базы.
Кроме последовательного формата есть второй — SQLite: весь журнал лежит в одном файле 1Cv8.lgd. Если в папке 1Cv8Log нет ни одного .lgp, но есть .lgd, база пишет журнал в новом формате, и всё, что ниже сказано про разбор .lgp вручную, к ней не относится.
Как открыть файл LGP средствами 1С
Самый надёжный способ — смотреть журнал через платформу. Она сама сопоставит индексы со словарём, отфильтрует период и покажет данные в таблице.
В пользовательском режиме
- Откройте базу под пользователем с полными правами.
- Перейдите в
Администрирование → Поддержка и обслуживание → Журнал регистрации(БП 3.0, ЗУП 3.1, УТ 11 и другие конфигурации на БСП). - Нажмите «Установить отбор» и ограничьте период: на больших журналах без отбора форма открывается минутами.
- Двойной клик по строке показывает подробности: данные, представление объекта, сеанс, транзакцию.
Если в конфигурации нет такого раздела, включите в настройках пользователя отображение команды «Все функции» и откройте Все функции → Стандартные → Журнал регистрации.
В Конфигураторе
Администрирование → Журнал регистрации. Здесь журнал виден, даже если конфигурация не запускается в пользовательском режиме, например после неудачного обновления. Это главный инструмент, когда нужно понять, кто и когда сломал базу.
Если нужен журнал чужой или удалённой базы
Файлы .lgp без словаря 1Cv8.lgf бесполезны: восстановить по ним имена пользователей и событий нельзя. Поэтому журнал всегда копируют целиком, всю папку 1Cv8Log. Дальше есть два пути:
- 🧪 создать пустую файловую базу
, остановить с ней работу и заменить её папку
1Cv8Logскопированной. После запуска журнал будет читаться, но названия объектов метаданных покажутся корректно только при той же конфигурации; - 🛠 разобрать файлы внешней утилитой или своим скриптом (про формат — в следующем разделе).
Как устроена запись внутри LGP
Файл .lgp — это текст в кодировке UTF-8. В начале стоит заголовок с версией формата вида 1CV8LOG(ver 2.0) и идентификатор, дальше идут записи в фигурных скобках, по одной на событие. Упрощённо запись выглядит так:
{20261001093015,N,
{0,0},3,1,2,15,4,I,"",0,
{"U"},"",1,1,0,7,0,
{0}
},
Смысл основных полей по порядку:
| Поле | Пример | Что означает |
|---|---|---|
| Дата и время | 20261001093015 | 01.10.2026 09:30:15 |
| Статус транзакции | N | N — без транзакции, U — зафиксирована, R — отменена, C — не завершена |
| Транзакция | {0,0} | Дата и номер транзакции в шестнадцатеричном виде |
| Пользователь | 3 | Номер в словаре 1Cv8.lgf |
| Компьютер | 1 | Номер в словаре |
| Приложение | 2 | Тонкий клиент, Конфигуратор, фоновое задание и т. п. |
| Соединение | 15 | Номер соединения |
| Событие | 4 | Номер события в словаре |
| Важность | I | I — информация, W — предупреждение, E — ошибка, N — примечание |
| Комментарий | "" | Текст, часто здесь сообщение об ошибке |
| Метаданные | 0 | Номер объекта метаданных в словаре |
За ними следуют данные события, представление данных, сервер, порты и номер сеанса. Расположение хвостовых полей в разных версиях платформы немного отличается, поэтому самописный разборщик проверяйте на своём журнале.
Не правьте .lgp и .lgf руками в рабочей базе. Лишняя запятая или скобка, и платформа перестанет читать журнал целиком.
Как перевести LGP в текст, Excel или XML
Прямого «конвертера .lgp в .txt» в 1С нет, но он и не нужен. Платформа отдаёт журнал в любом нужном виде.
Способ 1. Вывести список из формы журнала
- Откройте журнал регистрации и задайте отбор.
- В меню «Ещё» выберите «Вывести список ».
- Отметьте нужные колонки и нажмите «ОК» — получится табличный документ.
- Сохраните его через «Сохранить как» в
.txt,.xlsxили.mxl.
Подходит для разовых выборок на несколько тысяч строк: например, все удаления документов за месяц.
Способ 2. Выгрузка в XML кодом
Для автоматического разбора используйте метод платформы ВыгрузитьЖурналРегистрации. Он пишет отобранные записи в XML-файл, где вместо индексов уже стоят расшифрованные значения. Пример для внешней обработки, выполняемый на сервере:
&НаСервереБезКонтекста
Процедура ВыгрузитьОшибкиЗаНеделю(ИмяФайла)
Отбор = Новый Структура;
Отбор.Вставить("ДатаНачала", НачалоДня(ТекущаяДата()) - 7 * 86400);
Отбор.Вставить("ДатаОкончания", КонецДня(ТекущаяДата()));
Отбор.Вставить("Уровень", УровеньЖурналаРегистрации.Ошибка);
ВыгрузитьЖурналРегистрации(ИмяФайла, Отбор);
КонецПроцедуры
Если нужна таблица прямо в 1С, а не файл, тот же отбор передайте в ПолучитьЖурналРегистрации(ТаблицаЗначений, Отбор). Учтите, что метод работает только на сервере и требует административных прав.
Способ 3. Внешний разбор
Для постоянного мониторинга журнал разбирают сторонними инструментами и загружают в систему анализа логов. Принцип у всех один: прочитать 1Cv8.lgf, построить таблицы соответствия номеров и значений, затем построчно пройти .lgp и подставить значения.
А при чём тут .cf?
Ни при чём. Файл .cf — это выгрузка конфигурации, .lgp — журнал событий. Конвертировать одно в другое невозможно. Если вы ищете способ «достать конфигурацию из логов», такого способа нет: журнал хранит только факты действий, а не код и не данные базы.
Настройка журнала регистрации
Объём и состав .lgp определяются настройками в Конфигураторе: Администрирование → Настройка журнала регистрации.
Уровень регистрации:
- 🔴 только ошибки — минимальный объём, подходит для небольших файловых баз;
- 🟠 ошибки и предупреждения;
- 🟡 ошибки, предупреждения и информация;
- 🟢 все события — включая примечания; полная картина, но файлы растут быстрее всего;
- ⚪ не регистрировать — журнал отключён.
Для рабочей базы с бухгалтерией разумно оставить регистрацию всех событий: без них не узнать, кто удалил документ или перепровёл закрытый период.
Период разделения журнала задаёт, как часто платформа начинает новый файл .lgp: по дням, неделям, месяцам и т. д. Для активной базы ставьте разделение по дням или неделям. Мелкие файлы проще архивировать и удалять, а форма журнала открывается быстрее.
В том же окне меняется и формат хранения: последовательный (.lgp + .lgf) или SQLite (.lgd). При смене формата платформа переносит существующие записи, поэтому на большом журнале операция идёт долго. Делайте её вне рабочего времени.
В клиент-серверном варианте настройки журнала можно изменить и из консоли администрирования серверов, но применять их лучше тогда, когда пользователи не работают: смена формата нагружает сервер.
Архивация и очистка старых файлов LGP
Журнал не чистится сам. На базе с сотней пользователей папка 1Cv8Log легко дорастает до десятков гигабайт за пару лет.
Штатное сокращение журнала
- Откройте Конфигуратор,
Администрирование → Настройка журнала регистрации. - Нажмите «Сократить».
- Укажите дату: записи до неё будут удалены.
- При необходимости включите сохранение удаляемых записей в файл — это и есть архив.
Это безопасный путь: платформа сама разберётся со словарём и индексами.
Перенос старых файлов вручную
Поскольку каждый .lgp охватывает свой период, старые файлы можно переносить в архив. Правила:
- 📌 не трогайте
1Cv8.lgf— без него не прочитается ни один файл, в том числе архивный; - 📌 не трогайте самый свежий .lgp: в него платформа пишет прямо сейчас;
- 📌 в архив кладите копию
1Cv8.lgfвместе с перенесёнными .lgp, иначе позже их не расшифровать.
Пример задания для планировщика Windows на PowerShell: упаковать в архив и удалить .lgp старше 90 дней.
$log = "D:\1C\Bases\Buh\1Cv8Log"
$arch = "E:\Archive\1Cv8Log"
$date = Get-Date -Format "yyyyMMdd"
$old = Get-ChildItem $log -Filter *.lgp |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-90) }
if ($old) {
New-Item -ItemType Directory -Force -Path $arch | Out-Null
$files = @($old.FullName) + "$log\1Cv8.lgf"
Compress-Archive -Path $files -DestinationPath "$arch\log_$date.zip"
$old | Remove-Item
}
Скрипт берёт файлы по дате последней записи, поэтому текущий .lgp в выборку не попадает. Запустите его сначала без строки Remove-Item и проверьте содержимое архива.
Для серверной базы путь будет вида ...\srvinfo\reg_1541\<GUID>\1Cv8Log. Ошибка в GUID — и скрипт почистит журнал другой базы. Проверьте путь дважды.
Полный сброс журнала
Крайняя мера — удалить всю папку 1Cv8Log, платформа создаст новую при следующей записи. Делать это можно только при остановленной работе с базой: для файловой — когда все пользователи вышли, для серверной — после остановки службы агента сервера 1С. Остановка службы обрывает сеансы всех пользователей всех баз на этом сервере, поэтому планируйте её на нерабочее время и предупредите людей. История действий при этом пропадёт безвозвратно, так что сначала скопируйте папку в архив.