Сокращение журнала регистрации в 1С:Предприятии 8.3: от Конфигуратора до скрипта
Содержание
Очистить журнал регистрации
1С Предприятие проще всего в Конфигураторе: Администрирование → Настройка журнала регистрации → Сократить. Указываете дату, все события до неё удаляются, а при желании сохраняются в отдельный файл. Это штатный способ, он одинаково работает для файловой и клиент-серверной базы.
Второй путь — удалить старые файлы журнала с диска. Он быстрее на больших объёмах, но требует понимать, в каком формате хранится журнал и какие файлы трогать нельзя. Механизм общий для платформы 8.3, от конфигурации (БП, ЗУП, УТ) он не зависит.
Что хранит журнал регистрации и почему он разрастается
Журнал регистрации — это протокол работы базы. В него попадают входы и выходы пользователей, запись и удаление объектов, ошибки, запуск регламентных заданий, обмены данными. По нему выясняют, кто провёл документ задним числом или почему ночью упал обмен.
Растёт он по трём причинам:
- 📈 включён уровень «Регистрировать все события» — пишется каждое действие;
- 🔁 регламентные задания и обмены, которые срабатывают каждую минуту и оставляют по несколько записей;
- 🗓 журнал не разделён по периодам, и годами копится в одном месте.
В активной базе на 30–50 пользователей журнал за пару лет легко достигает десятков гигабайт. Тормозит открытие самого журнала, растут резервные копии, заканчивается место на диске сервера.
Два формата хранения
Журнал лежит в папке 1Cv8Log. Формат определяется по файлам внутри:
| Что в папке | Формат | Как устроен |
|---|---|---|
1Cv8.lgf и много файлов *.lgp | Последовательный (текстовый) | .lgf — словари (пользователи, компьютеры, метаданные), .lgp — сами события по периодам |
1Cv8.lgd | SQLite | Одна база-файл со всеми событиями |
Последовательный формат удобнее для очистки: старые периоды — это отдельные файлы. SQLite-журнал — один файл, частично его вручную не почистить.
Где найти папку 1Cv8Log
- 📁 Файловая база — прямо в каталоге базы, рядом с
1Cv8.1CD. Путь к каталогу виден в окне запуска внизу при выборе базы. - 🖥 Клиент-серверная база
— на сервере 1С, в каталоге кластера:
<srvinfo>\reg_1541\<GUID базы>\1Cv8Log. Типичное расположение каталогаsrvinfoв Windows —C:\Program Files\1cv8\srvinfo, в Linux —/home/usr1cv8/.1cv8/1C/1cv8/.
GUID нужной базы проще всего найти в файле 1CV8Clst.lst в каталоге reg_1541: там перечислены базы кластера с их именами и идентификаторами. Другой вариант — команда rac infobase summary list --cluster=<id кластера>.
Уровень и периоды: настройка, которая решает половину проблемы
Прежде чем чистить, ограничьте рост. Иначе через полгода журнал снова будет огромным.
Откройте базу в Конфигураторе и выберите Администрирование → Настройка журнала регистрации. В окне две важные настройки.
Уровень регистрации. Варианты от «Не регистрировать» до «Регистрировать все события». Для большинства рабочих баз хватает уровня с ошибками, предупреждениями и информацией — тогда не пишутся примечания, а это самая многочисленная категория.
Разделение по периодам. Для последовательного формата задаёт, как часто начинается новый файл .lgp. При разделении по месяцам у вас будет файл на каждый месяц, и удалить «всё старше года» станет делом одной минуты.
Не отключайте журнал совсем. Без него не разобрать ни спорное изменение документа, ни ошибку обмена. Снижение уровня даёт экономию без потери главного.
| Уровень | Что пишется | Когда выбирать |
|---|---|---|
| Все события | Ошибки, предупреждения, информация, примечания | Расследование, отладка — временно |
| Ошибки, предупреждения, информация | Всё, кроме примечаний | Рабочий режим большинства баз |
| Ошибки и предупреждения | Только сбои и предупреждения | Очень нагруженная база, где история изменений не нужна |
| Не регистрировать | Ничего | Почти никогда |
Очистка журнала регистрации через Конфигуратор
Это основной способ. Подходит для обоих форматов и для обоих вариантов базы.
Шаг 1. Откройте базу в Конфигураторе
Зайдите пользователем с правом администрирования. Для клиент-серверной базы подключение идёт по обычной строке Сервер\ИмяБазы — копаться в файлах на сервере не нужно.
Шаг 2. Откройте настройку журнала
Меню Администрирование → Настройка журнала регистрации. В окне нажмите кнопку Сократить.
Шаг 3. Укажите дату и выгрузку
- В поле даты укажите границу: всё, что раньше неё, будет удалено.
- Включите флажок сохранения удалённых событий в файл, если историю нужно сохранить в архиве.
- Выберите место для файла — лучше на другом диске или в сетевом хранилище.
- Нажмите
ОКи дождитесь окончания.
На журнале в десятки гигабайт процесс идёт долго — от нескольких минут до часа и дольше. Запускайте его вечером, когда пользователей мало: окно Конфигуратора будет занято, а нагрузка на диск вырастет.
Удалённые без выгрузки события восстановить нельзя. Если в компании идёт проверка или спор с сотрудником, сначала сохраните копию журнала.
Как сохранённый файл посмотреть потом
Файл с выгрузкой храните вместе с датой границы и названием базы в имени. В рабочую базу события из него не возвращаются — это архив для чтения на случай проверки или спора.
Ручное удаление файлов журнала: что можно, а что нельзя
Когда журнал разросся до сотен гигабайт, сокращение через Конфигуратор может идти часами. Тогда старые периоды удаляют прямо с диска. Способ рабочий, но с жёсткими правилами.
Последовательный формат
Каждый файл .lgp назван по дате начала периода, например 20230101000000.lgp. Старые файлы, в которые платформа уже не пишет, можно убрать:
- Скопируйте всю папку
1Cv8Logв архив. - Удалите файлы
.lgpза ненужные периоды. - Не трогайте файл текущего периода и
1Cv8.lgf.
Файл 1Cv8.lgf — это словарь. В событиях хранятся не имена пользователей и объектов, а ссылки на него. Удалите словарь — и оставшиеся события превратятся в набор непонятных номеров.
Формат SQLite
Файл 1Cv8.lgd целиком — весь журнал. Частично его не удалить. Варианты два: сократить через Конфигуратор или удалить файл полностью, потеряв всю историю. После удаления платформа создаст новый пустой журнал при следующей записи события.
Если база серверная
Рабочие процессы сервера держат файлы журнала открытыми. Чтобы удалить их надёжно, обычно приходится остановить службу «Агент сервера 1С:Предприятия».
Остановка службы обрывает сеансы всех пользователей на этом сервере, а несохранённые данные пропадут. Предупредите людей заранее и делайте это в нерабочее время.
| Способ | Когда подходит | Риски |
|---|---|---|
Сократить в Конфигураторе | Любая база, умеренный объём | Долго на больших журналах |
Удаление старых .lgp | Последовательный формат, большой объём | Ошибка с файлом .lgf ломает журнал |
Удаление 1Cv8.lgd целиком | SQLite, история не нужна | Полная потеря истории |
Удаление всей папки 1Cv8Log | Крайний случай | Полная потеря истории, нужна остановка базы |
Утилита chjournal: проверка, а не уборка
В каталоге bin установленной платформы есть утилита chjournal. Её часто путают с инструментом очистки, но задача у неё другая: она проверяет журнал регистрации на ошибки структуры и исправляет повреждения.
Когда она нужна:
- 🧩 просмотр журнала выдаёт ошибку или зависает на определённом периоде;
- ⚡ после аварийного отключения сервера журнал перестал открываться;
- 🧹 после ручного удаления файлов нужно убедиться, что оставшиеся читаются.
Запускают её из командной строки, указывая путь к файлу журнала:
cd "C:\Program Files\1cv8\8.3.24.1691\bin"
chjournal.exe "D:\Bases\Buh\1Cv8Log\1Cv8.lgf"
Номер версии в пути подставьте свой. Полный список параметров утилита выводит, если запустить её без аргументов. Перед запуском закройте базу или хотя бы снимите её с активной нагрузки и сделайте копию папки 1Cv8Log: утилита меняет файлы.
Почему SQL-сервер здесь ни при чём
Частая ошибка администраторов — искать журнал регистрации в таблицах MS SQL или PostgreSQL и чистить его запросом. Журнал там не хранится. Даже у клиент-серверной базы он лежит в файлах на сервере 1С, в каталоге кластера, а не в СУБД.
Из этого следуют два вывода:
- 🚫
DELETEилиTRUNCATEпо таблицам базы журнал не очистят, но могут испортить данные. Прямые запросы на изменение к таблицам 1С выполнять нельзя. - 🔍 Если растёт именно база в СУБД, причина в другом. Частые кандидаты в конфигурациях на БСП — версии объектов, данные обменов, вложенные файлы, которые хранятся в базе.
Если же сервер СУБД и сервер 1С стоят на одной машине и кончается общий диск, проверьте размер каталога srvinfo. Нередко «распухший SQL» на деле оказывается многогигабайтным 1Cv8Log.
Что проверить в журнале до удаления
Удаление необратимо, поэтому сначала решите, какая история ещё понадобится.
Посмотрите, что занимает место
Откройте журнал: в Конфигураторе — Администрирование → Журнал регистрации, в режиме Предприятия — через Все функции → Стандартные → Журнал регистрации. Если команды «Все функции» в меню нет, её включают в параметрах программы.
Установите отбор по периоду за последнюю неделю и отсортируйте по событию. Обычно сразу видно виновника: тысячи записей от одного регламентного задания или фонового обмена. Такое задание стоит перенастроить, иначе после очистки всё повторится.
Решите, сколько хранить
Обязательного срока хранения журнала регистрации законодательство не задаёт. Ориентир задаёт внутренний регламент компании. На практике держат 6–12 месяцев в рабочей базе и ещё 2–3 года в архиве, если журнал служит доказательством при спорах.
Когда очистку лучше отложить
Есть ситуации, в которых журнал нужен целиком, даже если он мешает:
- 🧾 идёт налоговая или внутренняя проверка, и по базе выясняют, кто и когда менял документы;
- ⚖️ готовится спор с бывшим сотрудником или контрагентом, где важна история действий;
- 🛠 разбирается повторяющийся сбой обмена или регламентного задания, и нужна картина за несколько месяцев.
В этих случаях сначала сделайте полную копию папки 1Cv8Log и передайте её тому, кто ведёт разбор. Чистить рабочую базу можно только после этого.
Автоматическая архивация старых периодов
Ручная очистка раз в год — это всегда авральный час на сервере. Надёжнее настроить её один раз и забыть. Условие — последовательный формат и разделение журнала по месяцам.
Windows: PowerShell и Планировщик
Скрипт переносит в архив файлы .lgp старше 12 месяцев. Текущий период он не трогает, потому что в текущий файл платформа ещё пишет и его дата изменения свежая.
$log = "C:\Program Files\1cv8\srvinfo\reg_1541\<GUID>\1Cv8Log"
$archive = "E:\Archive\1Cv8Log\Buh"
$border = (Get-Date).AddMonths(-12)
New-Item -ItemType Directory -Force -Path $archive | Out-Null
Copy-Item "$log\1Cv8.lgf" $archive -Force
Get-ChildItem -Path $log -Filter *.lgp |
Where-Object { $_.LastWriteTime -lt $border } |
Move-Item -Destination $archive
Скрипт копирует в архив и 1Cv8.lgf: без словаря архивные .lgp потом не прочитать. Запуск — через Планировщик заданий раз в месяц, ночью, от учётной записи с правами на каталог srvinfo.
Linux: cron
#!/bin/bash
LOG="/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID>/1Cv8Log"
ARC="/mnt/archive/1Cv8Log/buh"
mkdir -p "$ARC"
cp -f "$LOG/1Cv8.lgf" "$ARC/"
find "$LOG" -maxdepth 1 -name '*.lgp' -mtime +365 -exec mv {} "$ARC/" \;
Строка в crontab для запуска первого числа каждого месяца в 03:00:
0 3 1 * * /opt/scripts/1c_log_archive.sh
Проверьте скрипт на копии каталога, прежде чем ставить его на рабочий сервер. И раз в квартал смотрите, что архив действительно пополняется.