Журнал регистрации 1С разросся: сокращаем, архивируем и держим размер под контролем
Содержание
Основные служебные сообщения 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.lgd | SQLite | Сокращение в Конфигураторе или запрос к SQLite |
Файл 1Cv8.lgf — словарь пользователей, компьютеров и метаданных. Его не удаляют никогда: без него .lgp не прочитать.
Как найти виновника роста
Откройте журнал в режиме 1С:Предприятие: Администрирование → Обслуживание → Журнал регистрации. Поставьте отбор за последний день и посмотрите, какое событие повторяется тысячи раз. Частые источники:
- 🔁 регламентное задание с ошибкой, которое запускается каждую минуту и пишет одно и то же;
- 🔌 обмен данными или интеграция, которые фиксируют каждую итерацию;
- 📝 уровень «Регистрировать все события» — тогда в журнал идёт каждое чтение и запись;
- 👤 внешний сервис, который входит в базу под отдельным пользователем десятки раз в час.
Отсортируйте журнал по колонке «Событие» и просмотрите подряд. Повторяющийся блок с одинаковым комментарием виден сразу.
Пока источник не устранён, чистка даёт эффект на неделю.
Сокращение журнала в Конфигураторе
Это штатный способ, и с него стоит начинать. Он работает для обоих форматов.
- Запустите базу в режиме Конфигуратор под администратором.
- Откройте меню
Администрирование → Журнал регистрации. - Посмотрите текущий уровень регистрации. Здесь же его можно сменить (подробнее в разделе про автоматизацию).
- Нажмите «Сократить».
- Укажите дату: события до неё будут удалены. Например, оставьте последние 3 месяца.
- Если записи нужны для аудита, включите сохранение удаляемых событий в файл и укажите путь на другом диске.
- Нажмите «ОК» и дождитесь окончания.
Монопольный режим для этой операции не нужен, пользователи могут работать. Но на журнале в 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. Старые пары можно переносить в архив без остановки сервера: платформа пишет только в текущий файл.
- Определите, за какой срок журнал нужен в рабочей базе (например, 6 месяцев).
- Упакуйте более старые
.lgpи.lgxв архив на другом диске. - Удалите их из
1Cv8Log. - Откройте журнал в базе и проверьте, что он читается за оставшийся период.
Разбивку включают в том же окне Конфигуратора: параметр разделения журнала по периодам (день, месяц, год). Без неё всё пишется в один растущий .lgp, и переносить по частям нечего.
Кэш сеансовых данных
Ещё один служебный «мусор» на сервере — каталоги snccntx* в папке кластера. Они накапливают кэш сеансов и иногда разрастаются или повреждаются. Очищают их только при остановленной службе:
- Предупредите пользователей: при остановке службы оборвутся все сеансы во всех базах кластера.
- Остановите службу «Агент сервера 1С:Предприятия».
- Удалите содержимое каталогов
snccntx*вreg_1541. - Запустите службу.
Перед остановкой посмотрите активные сеансы: rac session list --cluster=<uuid>. Зависшие сеансы можно завершить из консоли кластера по одному, не трогая службу.
Прямое удаление через SQL: SQLite-журнал и журнал СУБД
Сюда приходят, когда штатное сокращение не справляется. Это работа с файлами и СУБД в обход платформы, поэтому сначала копия.
Перед любым прямым удалением сделайте копию каталога 1Cv8Log или резервную копию базы СУБД. Испорченный журнал платформа не прочитает.
Журнал в формате SQLite (1Cv8.lgd)
Файл 1Cv8.lgd — обычная база SQLite. События лежат в таблице EventLog, время — в поле date. Это число в десятитысячных долях секунды от 1 января 0001 года. Порядок действий:
- Остановите доступ к журналу. Для файловой базы — все пользователи выходят. Для серверной — остановите службу агента, предупредив пользователей об обрыве сеансов.
- Скопируйте
1Cv8.lgdв другое место — это резерв. - Откройте файл утилитой
sqlite3и выполните:
-- удалить события раньше 1 января 2026 года
DELETE FROM EventLog
WHERE date < (strftime('%s', '2026-01-01') + 62135596800) * 10000;
-- вернуть освободившееся место на диск
VACUUM;
- Запустите службу и откройте журнал в базе. Записи до указанной даты исчезнут.
Без 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 и текущий файл периода — его дата изменения свежая. Запускайте раз в месяц ночью от учётной записи с правами на каталог.
Регламентные задания внутри базы
В типовых конфигурациях на БСП список заданий — Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. Откройте его, если журнал засоряет одно задание:
- 🔍 найдите задание, которое завершается с ошибкой, и устраните причину;
- ⏸ если задание не нужно (например, загрузка курсов в базе без валютного учёта), отключите его;
- 🕒 если нужно, но запускается слишком часто — увеличьте интервал в расписании.
Удалять события журнала регистрации регламентным заданием нельзя: у встроенного языка нет метода удаления записей. Можно выгрузить журнал в файл методом ВыгрузитьЖурналРегистрации(), но само сокращение — только Конфигуратором или на уровне файлов.
Что сделать после очистки, чтобы база работала быстрее
Сама по себе очистка журнала ускоряет его открытие и отборы, но не учёт. Чтобы получить заметный эффект, добавьте несколько шагов.
Пояснения к пунктам:
- Сжатие таблиц в файловой базе — Конфигуратор,
Администрирование → Тестирование и исправление, флажок «Сжатие таблиц информационной базы». Нужен монопольный доступ, все пользователи выходят из базы. Файл1Cv8.1CDпосле этого уменьшается. - Кэш клиента чистят запуском с ключом
/ClearCacheили удалением папок кэша в профиле пользователя. Это безопасно, но пользователь должен закрыть 1С. - Индексы и статистика на MS SQL — задачи плана обслуживания в SQL Server Management Studio. Ставят их ночью: перестроение индексов блокирует таблицы.
Если после чистки журнал за неделю снова вырос на гигабайты, вернитесь к разделу про поиск виновника. Значит, источник событий жив.
Частые вопросы по очистке журнала и служебных данных
Можно ли просто удалить папку 1Cv8Log целиком?
Сколько хранить журнал регистрации?
Какие права нужны для сокращения журнала?
srvinfo и на остановку службы агента.Почему после сокращения размер 1Cv8.lgd не изменился?
VACUUM при остановленном доступе к файлу, иначе файл останется прежнего размера с пустыми страницами внутри.