1Cv8.lgd: журнал регистрации 1С, который съедает диск

· 10 мин

Содержание

Файл 1Cv8.lgd в 1С — это журнал регистрации информационной базы в формате SQLite. В нём платформа 1С:Предприятие 8.3 записывает, кто, когда и что делал в базе: входы, запись документов, ошибки, фоновые задания. Удалить его можно, но только при закрытых сеансах, и вместе с ним пропадёт вся история действий пользователей.

Чаще всего про lgd вспоминают, когда он вырастает до 10–50 ГБ и забивает диск. Сократить его можно штатно: Администрирование → Настройка журнала регистрации в Конфигураторе, без ручного вмешательства в базу.

Что хранит lgd и чем он отличается от lgf и lgp

У журнала регистрации в 8.3 два формата хранения:

ФорматФайлы в папке журналаКак устроен
Новый (SQLite)один файл 1Cv8.lgdвсе события в одной базе SQLite, с индексами
Старый (последовательный)1Cv8.lgf + набор *.lgpсправочник пользователей и компьютеров в lgf, события — в текстовых lgp по периодам

Новый формат появился в платформе 8.3.5. Какой формат у вашей базы, проще всего понять по содержимому папки журнала: есть 1Cv8.lgd — значит SQLite, есть 1Cv8.lgf и пачка .lgp — значит последовательный.

Что попадает в lgd:

  • 👤 входы и выходы пользователей, с компьютером и типом клиента;
  • 📝 запись, проведение, пометка на удаление и удаление объектов — с указанием документа или элемента справочника;
  • ⚠️ ошибки времени выполнения и исключения в коде;
  • ⚙️ события фоновых и регламентных заданий;
  • 🔧 изменения конфигурации и структуры базы;
  • 🔑 события, которые прикладной код пишет сам через ЗаписьЖурналаРегистрации().

Внутри файла — обычные таблицы SQLite: отдельно справочники (пользователи, компьютеры, приложения, виды событий, объекты метаданных) и основная таблица с событиями, где вместо строк хранятся коды. Поэтому один и тот же пользователь не дублируется в каждой записи, а файл всё равно растёт: событий много.

Где лежит файл lgd в файловой и клиент-серверной базе

Журнал всегда хранится в папке 1Cv8Log. Расположение этой папки зависит от варианта работы базы.

Файловая база

Папка 1Cv8Log лежит рядом с файлом базы 1Cv8.1CD:

D:\Bases\Buh\1Cv8.1CD
D:\Bases\Buh\1Cv8Log\1Cv8.lgd

Путь к каталогу базы виден в окне запуска 1С: выделите базу в списке — внизу окна показан путь File="...".

Клиент-серверная база

Здесь журнал хранится на сервере 1С, а не на сервере СУБД. Путь по умолчанию в Windows:

C:\Program Files\1cv8\srvinfo\reg_1541\<GUID базы>\1Cv8Log\1Cv8.lgd

Если при установке службы каталог srvinfo переносили, ищите его по параметру -d в свойствах службы «Агент сервера 1С:Предприятия 8.3».

Как найти GUID нужной базы:

  1. Откройте папку reg_1541. В ней лежит файл 1CV8Clst.lst — реестр кластера.
  2. Откройте его копию в блокноте и найдите имя базы. Рядом с ним стоит идентификатор вида a1b2c3d4-....
  3. Папка с этим идентификатором в reg_1541 и есть каталог базы.

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

Файл 1CV8Clst.lst только читайте и только в копии. Испорченный реестр кластера — это недоступные базы для всех пользователей.

Почему файл lgd разрастается до десятков гигабайт

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

Основные причины роста:

  • 📈 Уровень «Регистрировать все события». Пишется каждое чтение и запись, файл растёт в разы быстрее, чем при уровне «ошибки и предупреждения».
  • 🔁 Частые регламентные задания. Обмен с сайтом раз в минуту, загрузка курсов, синхронизация с ЭДО — каждое выполнение оставляет записи.
  • 💥 Циклическая ошибка. Фоновое задание падает каждые несколько секунд и пишет одно и то же исключение. За неделю так набегает несколько гигабайт.
  • 🧩 Код, который пишет в журнал сам. Доработки, интеграции и расширения часто логируют каждое действие через ЗаписьЖурналаРегистрации().
  • 👥 Много пользователей и интеграций. Веб-сервисы и COM-подключения тоже открывают сеансы, и каждый вход фиксируется.
  • 🗓️ Возраст базы. Пять лет работы без сокращения журнала — и lgd больше самой базы.

Свободное место в SQLite после удаления записей не всегда сразу возвращается диску. Поэтому иногда после сокращения журнала размер файла меняется меньше, чем ожидали. Вопрос решается удалением или архивированием старого файла, об этом ниже.

Как настроить журнал регистрации и сократить файл lgd

Штатные инструменты есть в Конфигураторе. Работают и для файловой, и для серверной базы.

Шаг 1. Выберите уровень регистрации

  1. Запустите базу в режиме Конфигуратора.
  2. Откройте Администрирование → Настройка журнала регистрации.
  3. Выберите уровень. Варианты идут от «Не регистрировать» до «Регистрировать все события».

Какой уровень выбирать:

УровеньКогда подходитЦена
Ошибкислабый диск, база на 1–3 пользователяне видно, кто удалил документ
Ошибки и предупреждениярабочая база по умолчаниюрост умеренный
Ошибки, предупреждения и информациянужен аудит действий пользователейфайл растёт заметно быстрее
Все событиякороткая отладка, расследованиегигабайты за дни, держать постоянно нельзя

Уровень «Не регистрировать» на рабочей базе — плохая идея. Когда пропадёт документ или сломается обмен, расследовать будет нечем.

Шаг 2. Сократите журнал

В том же окне настройки есть команда сокращения журнала регистрации.

  1. Нажмите кнопку сокращения.
  2. Укажите дату: события раньше неё будут удалены.
  3. Если история нужна для аудита, включите сохранение удаляемых событий в файл. Так вы получите архив, а рабочий журнал станет меньше.
  4. Подтвердите и дождитесь окончания. На журнале в десятки гигабайт это занимает от нескольких минут до часа.

💡 Разумный горизонт для бухгалтерской базы — хранить в рабочем журнале последний год или два. Остальное — в архиве на другом диске.

Шаг 3. Разделение по периодам

В настройке журнала есть параметр разделения по периодам (по дням, месяцам, годам). Для последовательного формата он режет события на отдельные .lgp-файлы, и старые периоды потом легко переносить в архив целыми файлами. Если вы перешли на старый формат, ставьте разделение по месяцам.

Перевод журнала в старый формат (lgf/lgp)

На нагруженных базах администраторы часто возвращают последовательный формат: его проще архивировать по файлам и он предсказуемее ведёт себя при постоянной записи. Типовой приём практиков:

  1. Завершите все сеансы базы. Для серверной базы — в нерабочее время, предупредив пользователей.
  2. Переименуйте папку 1Cv8Log (например, в 1Cv8Log_old) — это и будет архив.
  3. Создайте новую пустую папку 1Cv8Log.
  4. Положите в неё пустой файл 1Cv8.lgf (обычный файл нулевого размера с таким именем).
  5. Запустите базу. Платформа увидит lgf и продолжит вести журнал в последовательном формате.

Обратный переход делается так же, только в пустой папке оставляют пустой 1Cv8.lgd.

Можно ли удалить файл lgd и как сделать это безопасно

Да. Файл lgd не содержит учётных данных: документы, справочники и остатки лежат в 1Cv8.1CD или в СУБД. Если удалить журнал, база откроется, а платформа создаст новый пустой lgd.

Что вы теряете:

  • историю, кто и когда менял документы;
  • записи ошибок, по которым разбирают сбои обменов и фоновых заданий;
  • данные для отчётов БСП, которые строятся на журнале (например, отчёты по активности пользователей).

Поэтому правильнее не удалять, а архивировать.

Файловая база

  1. Попросите всех выйти из базы и проверьте, что сеансов нет.
  2. Переименуйте папку 1Cv8Log или перенесите 1Cv8.lgd на другой диск.
  3. Запустите базу — новый журнал создастся сам.

Клиент-серверная база

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

Чтобы освободить lgd, придётся завершить все сеансы базы, а иногда — остановить службу «Агент сервера 1С:Предприятия 8.3». Остановка службы обрывает сеансы во всех базах кластера, не только в этой. Делайте это в окно обслуживания, предупредив пользователей и остановив регламентные задания.

Порядок такой:

  1. Заблокируйте начало сеансов и завершите текущие в консоли администрирования серверов.
  2. Если файл всё ещё занят — остановите службу агента сервера в нерабочее время.
  3. Перенесите папку 1Cv8Log нужной базы в архив, создайте пустую 1Cv8Log.
  4. Запустите службу и проверьте вход в базу.
Перед тем как трогать lgd
Выполнено: 0 / 5

Как прочитать содержимое lgd и найти нужные события

Штатно — через журнал регистрации

Обычный способ — открыть журнал из самой 1С:

  • в Конфигураторе: Администрирование → Журнал регистрации;
  • в БП 3.0 и ЗУП 3.1 в режиме Предприятия: Администрирование → Обслуживание → Журнал регистрации.

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

Журнал можно выгрузить в файл из формы просмотра — это удобно, когда разбор делает подрядчик, а доступа к базе у него нет.

Напрямую — как базу SQLite

Раз lgd — это SQLite, его можно открыть любым клиентом: консольным sqlite3 или DB Browser for SQLite. Работайте только с копией файла.

Посмотреть список таблиц:

SELECT name FROM sqlite_master WHERE type = 'table' ORDER BY name;

Узнать, какие события дают основной объём:

SELECT e.name, COUNT(*) AS cnt
FROM EventsTable t
JOIN EventCodes e ON e.code = t.eventCode
GROUP BY e.name
ORDER BY cnt DESC
LIMIT 20;

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

Если структура таблиц в вашей версии отличается, сначала посмотрите её командой .schema в sqlite3 и поправьте имена полей в запросе.

Не записывайте ничего в рабочий lgd сторонними программами и не выполняйте в нём DELETE или VACUUM вручную. Платформа рассчитывает на свою структуру, а испорченный журнал придётся пересоздавать.

Как lgd влияет на производительность 1С

Журнал пишется при каждом зарегистрированном событии. При умеренном уровне регистрации это незаметно. Проблемы начинаются в трёх случаях.

🐢 Долго открывается журнал регистрации. На файле в десятки гигабайт форма может строиться минутами. Лечится отбором по периоду и сокращением журнала.

🐢 Задержки записи при высокой нагрузке. SQLite — один файл, и параллельные записи от многих сеансов идут через блокировки этого файла. На серверной базе с сотнями пользователей и уровнем «Все события» это даёт ощутимые паузы. Здесь помогают снижение уровня регистрации и переход на последовательный формат.

🐢 Медленный или переполненный диск. Если srvinfo лежит на том же диске, что и система, рост lgd может съесть всё место. Кончилось место — встают и журнал, и временные файлы сервера, и сеансы.

Что сделать для оптимизации:

  1. Держите уровень «Ошибки и предупреждения», а «Все события» включайте на время разбора и выключайте.
  2. Найдите запросом выше источник спама и почините его: исправьте падающее задание, уменьшите частоту обмена, уберите лишнее логирование в доработках.
  3. Вынесите каталог srvinfo на отдельный быстрый диск (SSD) с запасом места.
  4. Добавьте папку 1Cv8Log в исключения антивируса: проверка каждого изменения файла журнала тормозит запись.
  5. Поставьте мониторинг свободного места на диске с журналами.
  6. Раз в квартал сокращайте журнал с сохранением удаляемых событий в архив.

Частые ошибки при работе с журналом регистрации

  • ❌ Удалили lgd, а размер диска не изменился. Файл ещё держит рабочий процесс сервера, и место освободится только после завершения сеансов.
  • ❌ Удалили весь каталог базы в reg_1541 вместо папки 1Cv8Log. Там же лежат служебные файлы сервера для этой базы. Удаляйте только журнал.
  • ❌ Перевели уровень на «Все события» для разбора и забыли вернуть. Через месяц диск полон.
  • ❌ Сократили журнал без архива, а через неделю понадобилось выяснить, кто удалил документ в прошлом квартале.
  • ❌ Копируют базу вместе с гигантским 1Cv8Log. Для переноса файловой базы журнал не обязателен: достаточно 1Cv8.1CD, а журнал можно перенести отдельно, если нужна история.

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

Повлияет ли удаление lgd на учёт и остатки?
Нет. Документы, проводки и справочники хранятся в самой базе. Пропадёт только история действий пользователей и записи ошибок.
Можно ли открыть lgd другой базы, например чужой журнал из архива?
Да. Скопируйте архивную папку журнала в каталог файловой базы-пустышки и откройте журнал регистрации в ней. Или откройте файл как SQLite в DB Browser for SQLite.
Нужен ли файл lgd при переносе базы на другой компьютер?
Для работы базы — нет. Без него база запустится и начнёт новый журнал. Переносите его, только если важна история.
Почему lgd большой, хотя в базе работают два человека?
Почти всегда виноваты регламентные задания или циклическая ошибка. Посмотрите в журнале события с отбором по фоновым заданиям за последние сутки.
Входит ли журнал в выгрузку .dt?
Нет. Выгрузка информационной базы в .dt содержит данные и конфигурацию, а журнал регистрации нужно копировать отдельно.