Журнал регистрации, технологический журнал и .ldf: что и как чистить на сервере 1С с MS SQL

· 10 мин

Содержание

Почистить логи в 1С 8.3 на SQL — значит разобраться с тремя разными файлами. Журнал регистрации сокращают в Конфигураторе: Администрирование → Журнал регистрации, кнопка «Сократить». Журнал транзакций SQL Server (файл .ldf) уменьшают командой DBCC SHRINKFILE после резервной копии журнала или перевода базы в простую модель восстановления. Технологический журнал ограничивают параметром history в logcfg.xml.

Обычно к этому приходят, когда на диске сервера остаётся пара гигабайт, а папка srvinfo или файл .ldf весят больше самой базы. Данные учёта при очистке логов не теряются: удаляется только служебная история.

Какие логи растут на сервере 1С с SQL и где они лежат

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

ЛогГде лежитКто пишетЧем чистить
📒 Журнал регистрацииsrvinfo\reg_1541\<GUID базы>\1Cv8Log\Платформа 1СКонфигуратор, пакетный режим
⚙️ Технологический журналКаталог из logcfg.xmlПлатформа 1СПараметр history, удаление каталогов
🗄️ Журнал транзакцийФайл <база>_log.ldf в каталоге данных SQLSQL ServerBACKUP LOG, DBCC SHRINKFILE
📄 Журналы ошибок SQLКаталог MSSQL\LogSQL ServerРотация через sp_cycle_errorlog

Журнал регистрации в клиент-серверном варианте хранится не в базе SQL, а в файлах на сервере 1С. Путь по умолчанию в Windows — C:\Program Files\1cv8\srvinfo\reg_1541\. Внутри — папки с GUID информационных баз.

Чтобы найти папку нужной базы, откройте 1CV8Clst.lst в каталоге reg_1541 и найдите в нём имя базы: рядом будет её GUID.

Как быстро оценить размеры

Для журнала регистрации достаточно посмотреть размер папки 1Cv8Log. Формат файлов подскажет, как его чистить:

  • 📁 1Cv8.lgd — один файл в формате SQLite (новый формат, по умолчанию в 8.3);
  • 📁 1Cv8.lgf и много файлов *.lgp — старый формат, каждый .lgp отвечает за свой период.

Для SQL Server откройте SQL Server Management Studio и выполните запрос:

DBCC SQLPERF(LOGSPACE);

Колонка Log Size (MB) покажет размер журнала транзакций по каждой базе, Log Space Used (%) — какая часть занята. Если файл на 40 ГБ заполнен на 2 %, место можно вернуть почти целиком.

Причина роста видна в системном представлении:

SELECT name, recovery_model_desc, log_reuse_wait_desc
FROM sys.databases
WHERE name = N'buh_base';

Сокращение журнала регистрации 1С штатными средствами

Самый безопасный способ — удалить старые записи средствами платформы. Пользователей при этом выгонять не обязательно: монопольный режим для сокращения журнала не требуется.

Через Конфигуратор

  1. Запустите базу в режиме Конфигуратора под пользователем с правами администратора.
  2. Откройте Администрирование → Журнал регистрации.
  3. В командной панели журнала нажмите «Сократить».
  4. Укажите дату: записи раньше неё будут удалены. Например, оставить последние 90 дней.
  5. Если записи могут понадобиться для разбора инцидентов, включите сохранение удаляемых записей в файл и укажите путь.
  6. Нажмите «ОК» и дождитесь окончания. На журнале в 20–30 ГБ это может занять десятки минут.

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

Настройка уровня и разделения журнала

Сразу после очистки загляните в Администрирование → Настройка журнала регистрации в Конфигураторе. Там два важных параметра.

  • 🔹 Уровень регистрации. «Регистрировать ошибки», «предупреждения», «информацию», «примечания». Для рабочей базы обычно хватает уровня с примечаниями, но если журнал раздувается за неделю — ищите, кто пишет лишнее.
  • 🔹 Разделять журнал по периодам. Варианты: не разделять, по году, месяцу, дню или часу. Помесячное разделение даёт отдельный файл на каждый месяц — старые месяцы потом проще архивировать.

Полностью отключать журнал регистрации нельзя по смыслу: по нему разбирают ошибки обменов, удаление документов, вход пользователей. Снижайте объём через срок хранения, а не через отключение.

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

Откройте журнал регистрации, задайте отбор за последние сутки и сгруппируйте по событию. Типичные источники «мусора»:

  • 🔁 регламентные задания, которые запускаются каждую минуту и пишут «информацию» о каждом шаге;
  • 🔁 обмены данными с ошибкой, повторяющиеся по кругу;
  • 🔁 внешние обработки и интеграции, которые логируют через ЗаписьЖурналаРегистрации() каждую итерацию цикла.

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

Очистка журнала транзакций SQL Server (.ldf)

Файл .ldf — главный «пожиратель» диска на серверах 1С. Причина почти всегда одна: база создана с полной моделью восстановления, а резервные копии журнала никто не делает. Модель восстановления новая база наследует от системной базы model, а в ней по умолчанию стоит полная.

Сначала выберите сценарий.

Нужно ли вам восстановление базы на любой момент времени?

Шаг 1. Узнайте логическое имя файла журнала

USE [buh_base];
SELECT name, type_desc, size * 8 / 1024 AS size_mb
FROM sys.database_files;

Строка с type_desc = LOG — нужный файл. Логическое имя обычно вида buh_base_log.

Шаг 2а. Модель FULL: резервная копия журнала и сжатие

BACKUP LOG [buh_base]
TO DISK = N'D:\Backup\buh_base_log.trn';

USE [buh_base];
DBCC SHRINKFILE (N'buh_base_log', 1024);

Второй параметр DBCC SHRINKFILE — целевой размер в мегабайтах. 1024 МБ — разумный запас, чтобы файл не начал расти сразу после сжатия. Если с первого раза файл не уменьшился, повторите пару BACKUP LOG + SHRINKFILE: активная часть журнала могла быть в конце файла.

Шаг 2б. Модель SIMPLE: перевод и сжатие

ALTER DATABASE [buh_base] SET RECOVERY SIMPLE;
CHECKPOINT;

USE [buh_base];
DBCC SHRINKFILE (N'buh_base_log', 1024);

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

DBCC SHRINKFILE применяйте только к файлу журнала. Сжатие файла данных (.mdf) фрагментирует индексы, и 1С после этого заметно тормозит на проведении и отчётах.

Если журнал не освобождается

Смотрите поле log_reuse_wait_desc из запроса в первом разделе.

Диагностика: выберите симптом

Технологический журнал и внешние скрипты

Технологический журнал 1С

Технологический журнал включают вручную файлом logcfg.xml в каталоге conf платформы (например, C:\Program Files\1cv8\conf\). Если его включили для расследования и забыли — он может вырасти до сотен гигабайт.

Срок хранения задаёт атрибут history у элемента log — в часах:

<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\techlog" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

Платформа сама удаляет каталоги старше 24 часов. Если журнал больше не нужен — удалите или переименуйте logcfg.xml, через минуту запись прекратится. После этого каталог location можно очистить вручную.

Отбор EXCP пишет только исключения. Настройку <event><ne property="name" value=""/></event> без фильтров на рабочем сервере не оставляйте дольше нескольких часов.

Удаление старых файлов журнала регистрации

При разделении журнала по периодам в папке 1Cv8Log появляется отдельный файл на каждый период. Старые файлы можно перенести в архив скриптом. Безопаснее делать это в нерабочее время и только для периодов, которые уже закрыты: текущий файл платформа держит открытым.

Пример PowerShell — архивирует файлы журнала старше 180 дней:

$log = "C:\Program Files\1cv8\srvinfo\reg_1541\<GUID базы>\1Cv8Log"
$arch = "E:\Archive\1Cv8Log"
New-Item -ItemType Directory -Force -Path $arch | Out-Null
Get-ChildItem $log -Include *.lgp,*.lgd -Recurse |
  Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-180) -and $_.Name -ne "1Cv8.lgd" } |
  Move-Item -Destination $arch

Если журнал не разделён по периодам, в папке один файл 1Cv8.lgd. Удалять его вручную нельзя — пропадёт вся история. Используйте сокращение через Конфигуратор.

Обработки в режиме «Предприятие»

В конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) журнал регистрации можно открыть из Администрирование → Обслуживание. Там удобно искать ошибки с отбором, но сократить журнал из пользовательского режима штатно нельзя — для этого нужен Конфигуратор или пакетный запуск.

Автоматическая очистка логов по расписанию

Регламентные задания 1С работают с данными внутри базы и для обслуживания файлов сервера не подходят. Автоматизацию собирают из трёх частей.

1. Журнал регистрации — пакетный режим Конфигуратора

У платформы есть параметр командной строки /ReduceEventLogSize. Он делает то же, что кнопка «Сократить»:

"C:\Program Files\1cv8\8.3.25.1257\bin\1cv8.exe" DESIGNER ^
  /S "srv1c\buh_base" /N "Администратор" /P "пароль" ^
  /ReduceEventLogSize 2026-04-01 -saveAs "E:\Archive\buh_base_log.lgd" ^
  /Out "E:\Logs\reduce.log"

Дата — в формате ГГГГ-ММ-ДД, записи раньше неё удаляются. Параметр -saveAs необязательный, он сохраняет удалённое в файл. Путь к 1cv8.exe подставьте свой — номер в нём совпадает с версией установленной платформы.

Скрипт ставят в Планировщик заданий Windows раз в месяц. Пароль в bat-файле лучше заменить на отдельного пользователя 1С с правами администратора и аутентификацией операционной системы.

2. Журнал транзакций — SQL Server Agent

Для баз в модели FULL создайте план обслуживания: SQL Server Agent → Maintenance Plans, задача «Back Up Database Task» с типом «Transaction Log», расписание — каждые 30 минут. Отдельной задачей «Maintenance Cleanup Task» удаляйте файлы .trn старше 7–14 дней.

Регулярный BACKUP LOG сам освобождает место внутри .ldf. Сжимать файл по расписанию не нужно: постоянные SHRINKFILE и последующий рост только нагружают диск.

3. Технологический журнал

Хватает атрибута history в logcfg.xml. Отдельного задания не нужно.

Контроль размеров, чтобы логи не разрастались снова

После разовой очистки настройте контроль, иначе через полгода ситуация повторится.

  • 📏 Начальный размер и шаг роста .ldf. В свойствах базы в Management Studio (Files) задайте приращение в мегабайтах, например 512 МБ, а не в процентах. Рост «на 10 %» у файла в 50 ГБ означает паузу в работе при каждом расширении.
  • 📏 Отдельный диск под журналы SQL. Если .ldf переполнит диск с журналом, база встанет, но системный диск и файлы данных останутся целы.
  • 📏 Оповещение о свободном месте. Достаточно задания Планировщика с PowerShell, который пишет в почту или мессенджер, когда на диске меньше 15 % свободного.
  • 📏 Ежемесячная проверка DBCC SQLPERF(LOGSPACE). Если журнал заполнен на 80–90 % при модели FULL — задание бэкапа журнала не работает .
  • 📏 Ревизия журнала регистрации. Раз в квартал группировка по событию за неделю: так видны новые «болтливые» регламентные задания и обмены.
Проверка после очистки логов
Выполнено: 0 / 6

Если места всё равно не хватает

Бывает, что все логи почищены, а диск снова заполнен. Проверьте, что ещё растёт:

  • 🗂️ tempdb. Тяжёлые отчёты 1С с временными таблицами раздувают её. Размер сбрасывается при перезапуске службы SQL Server — перезапуск обрывает все сеансы 1С, делайте его вечером после предупреждения пользователей.
  • 🗂️ Кэш сеансовых данных. Папки snccntx* в каталоге базы внутри srvinfo растут при сбоях рабочих процессов. Чистят их только при остановленной службе «Агент сервера 1С:Предприятия», которая тоже завершает все сеансы.
  • 🗂️ Дампы рабочих процессов. Файлы .mdmp в каталоге дампов платформы можно удалять, если ошибка уже разобрана.
  • 🗂️ Старые резервные копии. Каталог бэкапов SQL без задачи очистки съедает диск быстрее любых логов.

Для PostgreSQL логика иная: журнал предзаписи (WAL) вручную не сжимают. Его объём регулируют параметрами max_wal_size и архивированием WAL, а журнал регистрации 1С чистится так же, как описано выше.

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

Можно ли перенести журнал регистрации 1С в базу SQL?
Нет. В клиент-серверном варианте 8.3 журнал регистрации хранится в файлах на сервере 1С в каталоге srvinfo. В SQL лежат только данные информационной базы.
Сколько хранить журнал регистрации?
Ориентир — 3–6 месяцев в рабочей базе и архив за более ранний период в файле. Если журнал нужен для аудита, сохраняйте удаляемые записи через параметр сохранения в файл.
Повлияет ли перевод базы в модель SIMPLE на работу пользователей 1С?
Нет, пользователи разницы не заметят. Меняется только способ резервного копирования: восстановиться можно лишь на момент полной или разностной копии.
Почему после сжатия .ldf снова вырос до прежнего размера?
Модель FULL осталась, а копий журнала нет, или в базе регулярно идут большие транзакции — например, закрытие месяца или загрузка .dt. Настройте BACKUP LOG по расписанию и задайте разумный начальный размер файла.
Нужно ли выгонять пользователей для очистки логов?
Для сокращения журнала регистрации, BACKUP LOG и SHRINKFILE журнала — нет. Сеансы прерываются только при перезапуске служб SQL Server или агента сервера 1С.