Журнал регистрации 1С разросся: сокращаем, архивируем и держим размер под контролем

· 10 мин

Содержание

Основные служебные сообщения 1С 8.3 копятся в журнале регистрации. Штатная очистка одна: Конфигуратор, меню Администрирование → Журнал регистрации, кнопка «Сократить». Там задают дату, до которой события удаляются, и при желании сохраняют удаляемое в файл. Это и есть безопасное удаление с архивированием.

Есть и другие способы, каждый под свою ситуацию. Если журнал хранится в старом формате с разбивкой по периодам, проще перенести в архив старые файлы целиком. Если журнал в формате SQLite весит десятки гигабайт и Конфигуратор не справляется, остаётся прямой запрос к файлу. А чтобы журнал не рос снова, понижают уровень регистрации и ставят архивирование по расписанию. Всё ниже относится к платформе 8.3 и общее для любых конфигураций: БП 3.0, ЗУП 3.1, УТ 11, ERP.

Откуда берутся служебные данные и где они лежат

Прежде чем удалять, выясните, что именно растёт. Под «служебными сообщениями» обычно понимают разное:

  • 📜 журнал регистрации — входы, ошибки, записи объектов, работа фоновых заданий. Это главный источник роста;
  • 💬 сообщения в окне клиента — то, что выводит Сообщить(). Они живут только до закрытия окна и места в базе не занимают;
  • 🗂 кэш сеансовых данных на сервере — каталоги snccntx* в папке кластера;
  • 🧾 журнал транзакций СУБД — файл .ldf в MS SQL, если база в полной модели восстановления.

Журнал регистрации хранится в каталоге 1Cv8Log:

Вариант базыГде искать 1Cv8Log
ФайловаяВ каталоге базы, рядом с 1Cv8.1CD
Клиент-сервернаяsrvinfo\reg_1541\<GUID базы>\1Cv8Log на сервере 1С

Типовой путь srvinfo на Windows — C:\Program Files\1cv8\srvinfo. Если при установке службы задавали свой каталог, он указан в параметре -d командной строки службы «Агент сервера 1С:Предприятия».

Какой формат у журнала

Формат определяет, как его чистить. Загляните в 1Cv8Log:

Что лежит в папкеФорматКак удалять старые данные
1Cv8.lgf + файлы *.lgp и *.lgxПоследовательный (текстовый)Сокращение в Конфигураторе или перенос старых .lgp в архив
Один файл 1Cv8.lgdSQLiteСокращение в Конфигураторе или запрос к SQLite

Файл 1Cv8.lgf — словарь пользователей, компьютеров и метаданных. Его не удаляют никогда: без него .lgp не прочитать.

Как найти виновника роста

Откройте журнал в режиме 1С:Предприятие: Администрирование → Обслуживание → Журнал регистрации. Поставьте отбор за последний день и посмотрите, какое событие повторяется тысячи раз. Частые источники:

  • 🔁 регламентное задание с ошибкой, которое запускается каждую минуту и пишет одно и то же;
  • 🔌 обмен данными или интеграция, которые фиксируют каждую итерацию;
  • 📝 уровень «Регистрировать все события» — тогда в журнал идёт каждое чтение и запись;
  • 👤 внешний сервис, который входит в базу под отдельным пользователем десятки раз в час.

Отсортируйте журнал по колонке «Событие» и просмотрите подряд. Повторяющийся блок с одинаковым комментарием виден сразу.

Пока источник не устранён, чистка даёт эффект на неделю.

Сокращение журнала в Конфигураторе

Это штатный способ, и с него стоит начинать. Он работает для обоих форматов.

  1. Запустите базу в режиме Конфигуратор под администратором.
  2. Откройте меню Администрирование → Журнал регистрации.
  3. Посмотрите текущий уровень регистрации. Здесь же его можно сменить (подробнее в разделе про автоматизацию).
  4. Нажмите «Сократить».
  5. Укажите дату: события до неё будут удалены. Например, оставьте последние 3 месяца.
  6. Если записи нужны для аудита, включите сохранение удаляемых событий в файл и укажите путь на другом диске.
  7. Нажмите «ОК» и дождитесь окончания.

Монопольный режим для этой операции не нужен, пользователи могут работать. Но на журнале в 20–50 ГБ сокращение идёт часами и нагружает диск. Запускайте его вечером или в выходной.

Файл с удалёнными событиями — единственная копия этих записей. Храните его вместе с резервными копиями базы, а не во временной папке.

Если Конфигуратор зависает

На очень большом журнале окно сокращения может не отвечать долго. Это не всегда зависание: процесс читает файлы. Проверьте в «Диспетчере задач», что 1cv8.exe активно читает с диска. Если активности нет больше часа, переходите к ручным способам ниже.

Ручная очистка на сервере 1С и работа с консолью кластера

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

Найти GUID базы

Каталоги в reg_1541 названы по GUID информационных баз. Узнать GUID нужной базы можно двумя способами:

  • открыть файл 1CV8Clst.lst в reg_1541 текстовым редактором и найти имя базы — рядом будет её GUID;
  • выполнить через утилиту rac:
rac cluster list
rac infobase summary list --cluster=<uuid кластера>

Вторая команда выводит имя каждой базы и её infobase — это и есть GUID каталога.

Перенести старые файлы в архив (последовательный формат)

Если журнал разделён по периодам, каждый период — отдельная пара .lgp и .lgx. Имя файла начинается с даты, например 20250101000000.lgp. Старые пары можно переносить в архив без остановки сервера: платформа пишет только в текущий файл.

  1. Определите, за какой срок журнал нужен в рабочей базе (например, 6 месяцев).
  2. Упакуйте более старые .lgp и .lgx в архив на другом диске.
  3. Удалите их из 1Cv8Log.
  4. Откройте журнал в базе и проверьте, что он читается за оставшийся период.

Разбивку включают в том же окне Конфигуратора: параметр разделения журнала по периодам (день, месяц, год). Без неё всё пишется в один растущий .lgp, и переносить по частям нечего.

Кэш сеансовых данных

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

  1. Предупредите пользователей: при остановке службы оборвутся все сеансы во всех базах кластера.
  2. Остановите службу «Агент сервера 1С:Предприятия».
  3. Удалите содержимое каталогов snccntx* в reg_1541.
  4. Запустите службу.

Перед остановкой посмотрите активные сеансы: rac session list --cluster=<uuid>. Зависшие сеансы можно завершить из консоли кластера по одному, не трогая службу.

Прямое удаление через SQL: SQLite-журнал и журнал СУБД

Сюда приходят, когда штатное сокращение не справляется. Это работа с файлами и СУБД в обход платформы, поэтому сначала копия.

Перед любым прямым удалением сделайте копию каталога 1Cv8Log или резервную копию базы СУБД. Испорченный журнал платформа не прочитает.

Журнал в формате SQLite (1Cv8.lgd)

Файл 1Cv8.lgd — обычная база SQLite. События лежат в таблице EventLog, время — в поле date. Это число в десятитысячных долях секунды от 1 января 0001 года. Порядок действий:

  1. Остановите доступ к журналу. Для файловой базы — все пользователи выходят. Для серверной — остановите службу агента, предупредив пользователей об обрыве сеансов.
  2. Скопируйте 1Cv8.lgd в другое место — это резерв.
  3. Откройте файл утилитой sqlite3 и выполните:
-- удалить события раньше 1 января 2026 года
DELETE FROM EventLog
WHERE date < (strftime('%s', '2026-01-01') + 62135596800) * 10000;

-- вернуть освободившееся место на диск
VACUUM;
  1. Запустите службу и откройте журнал в базе. Записи до указанной даты исчезнут.

Без VACUUM файл не уменьшится: SQLite только помечает страницы свободными. На VACUUM нужно свободное место на диске примерно в размер файла.

Платформа хранит время события по местному времени сервера, а strftime считает в UTC. Граница сдвинется на несколько часов — для чистки старых данных это неважно.

Журнал транзакций MS SQL

Если растёт не 1Cv8Log, а файл .ldf базы на MS SQL Server, дело в полной модели восстановления без резервного копирования журнала. Решения два:

ВариантКогда подходитЧто учесть
Настроить резервное копирование журнала транзакцийНужно восстановление на любой момент времениКопии журнала каждые 15–60 минут
Перевести базу в простую модельХватает ежедневных полных копийВосстановление только на момент полной копии

Для второго варианта:

ALTER DATABASE [buh] SET RECOVERY SIMPLE;
USE [buh];
-- логическое имя файла журнала смотрите в sys.database_files
DBCC SHRINKFILE (N'buh_log', 1024);

Здесь buh — имя базы, 1024 — целевой размер журнала в мегабайтах.

Таблицы самой информационной базы через SQL не чистят. Удалите записи регистра запросом к СУБД — и платформа об этом не узнает: итоги, ссылки и версии объектов разойдутся. Для данных 1С есть только штатные механизмы.

Регламентные задания и расписание очистки

Чистить руками раз в полгода неудобно. Автоматизация строится из трёх частей.

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

В том же окне Администрирование → Журнал регистрации в Конфигураторе выбирают, что писать:

УровеньЧто попадаетРост журнала
Не регистрироватьНичегоНулевой, но разбирать ошибки нечем
ОшибкиТолько ошибкиМинимальный
Ошибки и предупреждения+ предупрежденияУмеренный
Ошибки, предупреждения и информация+ входы, записи объектовОбычный
Все события+ примечания, чтениеМаксимальный

Для рабочей базы обычно хватает уровня с информацией. «Все события» включают на время разбора проблемы и затем возвращают.

Архивирование по расписанию (последовательный формат)

Для журнала с разбивкой по месяцам подходит задание в Планировщике Windows. Пример сценария PowerShell, который упаковывает файлы старше 180 дней и удаляет оригиналы:

$log  = "C:\Program Files\1cv8\srvinfo\reg_1541\<GUID>\1Cv8Log"
$arch = "D:\Archive\1Cv8Log"
$old  = Get-ChildItem $log -Include *.lgp,*.lgx -Recurse |
        Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-180) }
if ($old) {
    $zip = Join-Path $arch ("log_" + (Get-Date -Format "yyyyMMdd") + ".zip")
    Compress-Archive -Path $old.FullName -DestinationPath $zip
    $old | Remove-Item
}

Сценарий не трогает 1Cv8.lgf и текущий файл периода — его дата изменения свежая. Запускайте раз в месяц ночью от учётной записи с правами на каталог.

Регламентные задания внутри базы

В типовых конфигурациях на БСП список заданий — Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. Откройте его, если журнал засоряет одно задание:

  • 🔍 найдите задание, которое завершается с ошибкой, и устраните причину;
  • ⏸ если задание не нужно (например, загрузка курсов в базе без валютного учёта), отключите его;
  • 🕒 если нужно, но запускается слишком часто — увеличьте интервал в расписании.

Удалять события журнала регистрации регламентным заданием нельзя: у встроенного языка нет метода удаления записей. Можно выгрузить журнал в файл методом ВыгрузитьЖурналРегистрации(), но само сокращение — только Конфигуратором или на уровне файлов.

Что сделать после очистки, чтобы база работала быстрее

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

После очистки служебных данных
Выполнено: 0 / 6

Пояснения к пунктам:

  • Сжатие таблиц в файловой базе — Конфигуратор, Администрирование → Тестирование и исправление, флажок «Сжатие таблиц информационной базы». Нужен монопольный доступ, все пользователи выходят из базы. Файл 1Cv8.1CD после этого уменьшается.
  • Кэш клиента чистят запуском с ключом /ClearCache или удалением папок кэша в профиле пользователя. Это безопасно, но пользователь должен закрыть 1С.
  • Индексы и статистика на MS SQL — задачи плана обслуживания в SQL Server Management Studio. Ставят их ночью: перестроение индексов блокирует таблицы.

Если после чистки журнал за неделю снова вырос на гигабайты, вернитесь к разделу про поиск виновника. Значит, источник событий жив.

Частые вопросы по очистке журнала и служебных данных

Можно ли просто удалить папку 1Cv8Log целиком?
Технически база запустится и создаст журнал заново, но вся история пропадёт без архива. Делают это только при остановленной службе или когда все пользователи вышли из файловой базы, и только если история точно не нужна.
Сколько хранить журнал регистрации?
Ориентир для рабочей базы — 3–12 месяцев в самом журнале. Более старые записи держат в архиве столько, сколько требует внутренний регламент компании по расследованию инцидентов.
Какие права нужны для сокращения журнала?
Вход в Конфигуратор под пользователем с ролью полных прав или администратора. Для ручной работы с файлами на сервере 1С дополнительно нужны права на каталог srvinfo и на остановку службы агента.
Почему после сокращения размер 1Cv8.lgd не изменился?
SQLite не отдаёт освобождённое место системе автоматически. Нужна команда VACUUM при остановленном доступе к файлу, иначе файл останется прежнего размера с пустыми страницами внутри.
Влияет ли размер журнала на скорость проведения документов?
Слабо. Запись идёт в конец журнала, и её скорость почти не зависит от объёма. Большой журнал тормозит в основном при его открытии, отборе и сокращении, а также забирает место на диске.