Журнал регистрации и техжурнал 1С разрослись: что можно удалить и как ограничить рост
Содержание
Безопаснее всего очистить лог 1С штатно: Конфигуратор → Администрирование → Настройка журнала регистрации → Сократить. Укажите дату, до которой удалить события, и при необходимости сохраните их в файл. Это работает и для файловой базы, и для серверной. Ручное удаление файлов быстрее, но требует выгнать пользователей и точно знать, какие файлы трогать.
Под «логами 1С» обычно имеют в виду три разные вещи: журнал регистрации базы, технологический журнал (включается файлом logcfg.xml) и дампы аварийных завершений. Лежат они в разных местах — на сервере и на компьютере пользователя. Чистятся тоже по-разному.
Какие логи пишет 1С и где они лежат
Прежде чем что-то удалять, определите, что именно занимает диск. Чаще всего виноват журнал регистрации, реже — забытый включённым техжурнал.
| Что это | Где лежит | Чем опасно удаление |
|---|---|---|
| 📒 Журнал регистрации файловой базы | папка 1Cv8Log рядом с файлом 1Cv8.1CD | пропадёт история действий пользователей |
| 🖥️ Журнал регистрации серверной базы | srvinfo\reg_1541\<GUID базы>\1Cv8Log на сервере 1С | то же самое |
| 🗂️ Журнал кластера | srvinfo\reg_1541\1Cv8Log | теряется история событий самого кластера |
| 🔧 Технологический журнал | каталог из параметра location в logcfg.xml | ничем, это диагностика |
| 💥 Дампы | каталог из элемента <dump> в logcfg.xml или каталог dumps в профиле пользователя | ничем, если сбой уже разобран |
Журнал регистрации серверной базы хранится в файлах на сервере 1С, а не в СУБД. Поэтому очистка базы в SQL Server или PostgreSQL на его размер не влияет.
Два формата журнала регистрации
Платформа 8.3 умеет вести журнал в двух форматах. Узнать формат можно по содержимому папки 1Cv8Log:
- 📄 Последовательный (старый) формат — файл
1Cv8.lgfи набор файлов*.lgp, по одному на период. Рядом могут быть файлы индексов*.lgx. - 🗄️ SQLite-формат — один файл
1Cv8.lgd, который растёт целиком.
От формата зависит способ ручной чистки. Файлы .lgp старых периодов можно убрать по одному. Файл .lgd вручную «подрезать» нельзя: только сократить штатно или удалить целиком.
Как найти папку серверной базы
В srvinfo\reg_1541 лежат папки с именами вида a3f1c2d4-… — это идентификаторы информационных баз. Чтобы понять, какая папка чья, выполните на сервере:
rac cluster list
rac infobase summary list --cluster=<id кластера>
Первая команда выдаст идентификатор кластера, вторая — список баз с их идентификаторами и именами. Утилита rac работает через сервер администрирования ras, он должен быть запущен.
Путь к srvinfo задаётся при установке службы. Его видно в свойствах службы агента сервера 1С: в строке запуска ragent.exe стоит параметр -d с каталогом.
Очистка журнала регистрации на сервере 1С
Есть два способа: штатное сокращение и удаление файлов. Первый не требует остановки работы, второй — требует.
Способ 1. Сократить журнал в Конфигураторе
- Откройте базу в Конфигураторе под пользователем с правами администратора.
- Выберите
Администрирование → Настройка журнала регистрации. - Нажмите Сократить.
- Укажите дату: события до неё будут удалены.
- Если история может понадобиться (проверка, расследование), включите сохранение удаляемых событий в файл и укажите путь на другом диске.
- Подтвердите. На журнале в десятки гигабайт операция идёт долго — запускайте вечером.
Сохранённый файл открывается потом в любой базе через форму журнала регистрации. Удобно держать архив за прошлые годы на сетевом хранилище, а не на диске сервера.
Способ 2. Удалить файлы вручную
Подходит, когда журнал занял весь диск и Конфигуратор не открывается или сокращение идёт часами.
Пока вы удаляете файлы, никто не должен работать в базе. Активные сеансы будут прерваны, несохранённые документы пропадут. Делайте это вне рабочего времени и предупредите пользователей заранее.
- В консоли кластера откройте свойства базы и включите Блокировка начала сеансов. Заполните сообщение для пользователей.
- Завершите оставшиеся сеансы в узле «Сеансы».
- Сделайте копию папки
1Cv8Logна другой диск, если история нужна. - Для старого формата удалите файлы
.lgp(и одноимённые.lgx) за ненужные периоды. Имя файла — дата начала периода, например20250101000000.lgp. Файл1Cv8.lgfне трогайте — это справочник журнала, без него старые записи не прочитать. - Для формата SQLite удалить можно только всю папку
1Cv8Logцеликом. Платформа создаст новый пустой журнал при следующем подключении. - Снимите блокировку начала сеансов.
Для файловой базы порядок тот же, только вместо консоли кластера просто убедитесь, что базу никто не открыл: в каталоге базы не должно быть файла 1Cv8tmp.1CD, а сама база не должна быть открыта ни у кого из пользователей.
Что удалить на компьютере пользователя
В клиент-серверном режиме журнал регистрации на клиенте не хранится. Место у пользователя занимают другие вещи:
- 🧩 Кэш конфигураций — папки с длинными именами-идентификаторами в
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8. Это не лог, но именно его чаще всего находят при поиске «что съело место». - 💥 Дампы — файлы
.mdmpпосле аварийных закрытий 1С. Ищите их в каталогеdumpsвнутри профиля 1С. - 🔧 Клиентский техжурнал — если на компьютере кто-то положил
logcfg.xmlв каталогconfплатформы и забыл убрать.
Кэш удаляют при закрытой 1С: закройте все окна программы, затем удалите папки-идентификаторы. Список баз хранится в файле ibases.v8i — его не удаляйте, иначе список баз в окне запуска пропадёт. Есть и мягкий вариант: запустить 1С с параметром /ClearCache, тогда платформа сама сбросит кэш для выбранной базы.
Дампы старше пары недель удаляйте смело. Если 1С падает регулярно, сначала отправьте свежий дамп тому, кто разбирается со сбоем, а потом чистите.
Лимит на размер: уровень журнала, периоды и logcfg.xml
Удалить файлы — полдела. Без настройки через месяц диск снова будет полным.
Журнал регистрации
В том же окне Администрирование → Настройка журнала регистрации есть два параметра, которые реально влияют на объём:
- 🎚️ Уровень регистрации. Варианты от «Не регистрировать» до «Регистрировать ошибки, предупреждения, информацию и примечания». Для рабочей базы обычно хватает уровня с ошибками, предупреждениями и информацией. Примечания добавляют больше всего записей.
- 📅 Разделение журнала по периодам (только для последовательного формата). Чем короче период, тем мельче файлы
.lgpи тем проще удалять старые. Для нагруженной базы удобен период «День» или «Неделя».
Отдельного параметра «максимальный размер журнала в мегабайтах» у журнала регистрации нет. Размер держат уровнем регистрации плюс регулярным удалением старых периодов.
Уровень можно поменять и программно — методом УстановитьИспользованиеЖурналаРегистрации(). Это удобно, если баз много и настраивать каждую вручную долго.
Технологический журнал
Техжурнал включается файлом logcfg.xml в каталоге conf платформы, например C:\Program Files\1cv8\conf\. Время хранения задаёт атрибут history — в часах. Файлы старше этого срока платформа удаляет сама.
Пример безопасной настройки: только исключения и ошибки СУБД, хранение 24 часа.
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1C_techlog" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="DBMSSQL"/>
<ge property="duration" value="50000"/>
</event>
<property name="all"/>
</log>
</config>
Что здесь важно:
- 📁
location— отдельный диск, не системный. Если техжурнал переполнитC:, остановится и сервер 1С, и Windows. - ⏱️
history="24"— сутки. Ставить 168 часов (неделя) на полном наборе событий опасно: за неделю набегают сотни гигабайт. - 🔍 Фильтр
geпоdurationотбирает только долгие запросы. Значение задаётся в единицах платформы: в 8.3 это микросекунды, поэтому 50 000 — это 0,05 секунды.
Когда диагностика закончена, удалите logcfg.xml или переименуйте его. Платформа перечитывает файл примерно раз в минуту, перезапуск службы обычно не нужен. После этого старые файлы в каталоге location можно удалить вручную.
Что видно и что можно сделать в консоли кластера
Консоль администрирования серверов 1С не показывает размер журнала регистрации и не удаляет его. Зато через неё делается всё, что нужно вокруг очистки:
- 🔒 Блокировка начала сеансов — свойства информационной базы. Задаёт время начала и конца блокировки, сообщение пользователям и код разрешения, по которому администратор всё же сможет войти.
- 👥 Завершение сеансов — узел «Сеансы» внутри базы. Перед ручной чисткой файлов здесь проверяют, что никто не остался.
- 🔁 Рабочие процессы — узел «Рабочие процессы» в кластере. Если после удаления папки
1Cv8Logжурнал не создаётся заново, причина обычно в процессе, который держит старый файл открытым.
Перезапуск рабочего процесса или службы сервера 1С обрывает все сеансы на этом сервере. Делайте это только при заблокированном входе и вне рабочего времени.
Те же действия доступны из командной строки через rac. Список подкоманд и параметров для вашей версии платформы смотрите в справке: rac help session, rac help infobase.
Автоочистка старых логов по расписанию
Если база живёт годами, ручная чистка забывается. Простая схема — удалять файлы старше N дней раз в неделю ночью.
Скрипт на bat
Файл clean_1c_logs.bat, хранит 90 дней журнала регистрации и 14 дней дампов:
@echo off
set LOGDIR=D:\srvinfo\reg_1541\a3f1c2d4-0000-0000-0000-000000000000\1Cv8Log
set DUMPDIR=D:\1C_dumps
forfiles /p "%LOGDIR%" /m *.lgp /d -90 /c "cmd /c del @path"
forfiles /p "%LOGDIR%" /m *.lgx /d -90 /c "cmd /c del @path"
forfiles /p "%DUMPDIR%" /m *.mdmp /d -14 /c "cmd /c del @path"
forfiles смотрит на дату изменения файла. Активный файл текущего периода всё время меняется, поэтому под фильтр -90 он не попадёт.
Вариант на PowerShell
$logDir = "D:\srvinfo\reg_1541\a3f1c2d4-0000-0000-0000-000000000000\1Cv8Log"
Get-ChildItem $logDir -Include *.lgp,*.lgx -Recurse |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-90) } |
Remove-Item -WhatIf
Первый запуск сделайте с -WhatIf: PowerShell покажет, что удалит, но ничего не тронет. Убедились — уберите ключ.
Добавить в планировщик Windows
schtasks /create /tn "Очистка логов 1С" /tr "D:\scripts\clean_1c_logs.bat" /sc weekly /d SUN /st 03:00 /ru SYSTEM
Задача запустится каждое воскресенье в 03:00 от имени системы, у которой есть доступ к каталогу srvinfo.
Для журнала в формате SQLite (1Cv8.lgd) такой скрипт не подходит: файл один, и по дате его не разделить. Здесь остаётся штатное сокращение раз в квартал или перевод базы на последовательный формат с разбивкой по периодам.
Почему журнал раздувается снова
Если журнал опять вырос за неделю, удаление лечит симптом. Ищите источник — откройте журнал регистрации за последний день и отсортируйте по событию.
- 🔄 Частые регламентные задания. Задание, которое запускается каждую минуту и пишет «информацию» о каждом запуске, даёт 1 440 записей в сутки только на старт. Проверьте расписание обменов, загрузок курсов, проверок почты.
- 📨 Обмены данными. Каждый сеанс обмена пишет в журнал свои события. При обмене раз в 5 минут с несколькими узлами это заметные объёмы.
- 🧑💻 Доработки. Вызов
ЗаписьЖурналаРегистрации()внутри цикла по строкам документа — частая причина гигабайтных журналов. Ищите в журнале одинаковые события с одинаковым комментарием подряд. - 🔐 Ошибки входа. Внешняя система или забытый скрипт, который раз в секунду пытается подключиться с неверным паролем, тоже забивает журнал.
- 🎚️ Уровень «Примечания» включили для поиска проблемы и забыли вернуть.
Что делать с найденным:
| Источник | Решение |
|---|---|
| Регламентное задание каждую минуту | увеличить интервал, если бизнесу это не мешает |
| Записи из доработки в цикле | писать одну итоговую запись после цикла |
| Неудачные попытки входа | найти и отключить источник подключений |
| Лишний уровень регистрации | вернуть уровень без примечаний |
| Техжурнал без фильтров | оставить только нужные события и сократить history |
Полезная привычка: раз в месяц смотреть размер папок 1Cv8Log всех баз одной командой и сравнивать с прошлым месяцем. Резкий рост виден сразу, до того как сервер встанет с полным диском.