Журнал регистрации 1С занял гигабайты: как освободить место и не потерять нужное

· 9 мин

Содержание

Почистить логи базы 1С проще всего в Конфигураторе: Администрирование → Настройка журнала регистрации…, кнопка «Сократить…», дата, до которой удалить события, и при желании выгрузка удалённого в файл. Это штатный способ очистки журнала регистрации, он работает и для файловой, и для клиент-серверной базы.

Если журнал разбит по периодам, старые файлы можно удалить прямо с диска. А если «логи» — это 50 ГБ файла .ldf на SQL-сервере, то журнал регистрации тут ни при чём: это лог транзакций СУБД, и чистится он иначе.

С чего начать: что именно разрослось и где лежит

Под словом «логи» в 1С скрываются три разные вещи. Перед очисткой определите, какая из них съела диск.

Что этоГде лежитЧем чистить
📒 Журнал регистрации базыпапка 1Cv8LogКонфигуратор, удаление старых файлов
🛠 Технологический журналпапка из logcfg.xmlпараметр history, удаление каталогов
💾 Лог транзакций СУБДфайл .ldf (MS SQL), pg_wal (PostgreSQL)средствами СУБД

Где найти папку журнала регистрации

  • 📁 Файловая база — в каталоге базы, рядом с 1Cv8.1CD, есть подпапка 1Cv8Log.
  • 🖥 Клиент-серверная база на Windows — на сервере 1С: C:\Program Files\1cv8\srvinfo\reg_1541\<GUID базы>\1Cv8Log. Если сервер ставили с другим каталогом данных, путь начинается с него.
  • 🐧 Сервер на Linux — обычно /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID базы>/1Cv8Log.

GUID базы — это идентификатор информационной базы в кластере. Его видно в свойствах базы в консоли администрирования серверов или в выводе rac infobase summary list --cluster=<id кластера>. Папок с GUID в reg_1541 столько, сколько баз в кластере, поэтому сверяйтесь именно по идентификатору, а не по размеру.

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

Формат определяется по файлам в 1Cv8Log:

  • 📄 Последовательный (старый) — файл 1Cv8.lgf и много файлов .lgp. Имя каждого .lgp — дата и время начала периода, например 20250301000000.lgp.
  • 🗄 SQLite (новый) — один файл 1Cv8.lgd.

От формата зависит, можно ли чистить лог удалением файлов. Для .lgp — можно, для .lgd — только штатно.

Оценка журнала: что в нём копится и сколько

Прежде чем удалять, посмотрите размер папки и состав событий. Это займёт пять минут и подскажет, нужно ли вообще чистить или достаточно поменять уровень записи.

  1. Посмотрите размер 1Cv8Log в проводнике или командой du -sh на Linux.
  2. Для последовательного формата отсортируйте .lgp по имени: видно, за какие месяцы файлы самые тяжёлые.
  3. Откройте журнал в программе. В БП 3.0, ЗУП 3.1, УТ 11 он есть в разделе Администрирование → Обслуживание. В любой конфигурации его можно открыть через Все функции → Стандартные → Журнал регистрации (команду «Все функции» включают в параметрах программы).
  4. Поставьте отбор по периоду за один день и посмотрите, какие события повторяются тысячами.

Типичные «пожиратели» места:

  • 🔁 фоновые и регламентные задания, которые запускаются каждую минуту и пишут информационные события;
  • 🔐 события входа и выхода, если к базе постоянно подключаются обмены или веб-сервисы;
  • 🧾 изменения данных на уровне «Регистрировать все события» — каждая запись регистра попадает в журнал;
  • ❌ одна и та же повторяющаяся ошибка, которую никто не чинит.

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

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

Это основной и самый безопасный способ. Платформа сама удаляет записи и сохраняет целостность журнала. Работает для обоих форматов.

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

На журнале в несколько десятков гигабайт операция идёт долго, иногда больше часа. Запускайте её вечером, когда нагрузка на базу минимальна.

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

Что можно сделать без Конфигуратора

В режиме 1С:Предприятие журнал можно смотреть, фильтровать и выгружать, но сокращать его штатно — только в Конфигураторе. В типовых конфигурациях на БСП в разделе Администрирование → Обслуживание есть настройки журнала регистрации, где меняют уровень записи. Удаление старых записей там не предусмотрено как отдельная кнопка, поэтому для разовой большой чистки идите в Конфигуратор.

Чистка с диска и через консоль кластера

Чем помогает консоль администрирования серверов

Сама консоль кластера журнал регистрации не сокращает: такой команды в ней нет, и в rac тоже. Она нужна для двух вещей:

  • 🔎 узнать GUID базы, чтобы найти нужную папку в reg_1541;
  • 🚫 при необходимости установить блокировку начала сеансов на время работ.

Удаление старых файлов .lgp

Для последовательного формата с разделением по периодам каждый месяц или день лежит в отдельном файле. Старые файлы можно просто удалить.

  1. Скопируйте 1Cv8Log целиком в архив, если история нужна.
  2. Удалите файлы .lgp за старые периоды. Последний (текущий) файл не трогайте.
  3. Файл 1Cv8.lgf не удаляйте: в нём справочники пользователей, компьютеров и метаданных, на которые ссылаются записи.

Место освобождается сразу. Журнал в программе просто начнётся с более поздней даты.

Если журнал не разделён по периодам и лежит одним огромным .lgp, удалять его вручную не нужно — пользуйтесь «Сократить…» в Конфигураторе.

Если хочется удалить папку 1Cv8Log целиком

Иногда журнал не нужен совсем, например в копии базы для тестов. Тогда папку можно удалить полностью, платформа создаст новую при следующей записи. Делайте это при остановленной службе 1С (для серверной базы) или когда в файловой базе никто не работает .

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

SQL и SQLite: что можно сделать запросами

Частое заблуждение — искать таблицу журнала регистрации в базе на MS SQL или PostgreSQL и удалять её записи SQL-запросом. В 8.3 журнал регистрации хранится не в СУБД, а в файлах на сервере 1С. Таблиц с ним в базе данных нет.

Лог транзакций MS SQL

Если «логи базы» — это разросшийся файл .ldf, причина обычно в модели восстановления «Полная» (Full) без регулярного резервного копирования журнала транзакций. Для базы 1С без требований к восстановлению на момент времени хватает модели «Простая» (Simple).

-- имя базы и логическое имя файла лога проверьте в свойствах базы
ALTER DATABASE [buh_base] SET RECOVERY SIMPLE;
GO
USE [buh_base];
GO
DBCC SHRINKFILE (N'buh_base_log', 1024); -- оставить около 1 ГБ
GO

Переход на модель «Простая» отключает восстановление на произвольный момент времени. Если у вас настроены резервные копии журнала транзакций, вместо смены модели сделайте очередной бэкап лога и уже потом сжимайте файл.

Логическое имя файла лога смотрите в SQL Server Management Studio: свойства базы → «Файлы». Оно не всегда совпадает с именем базы.

PostgreSQL

Каталог pg_wal вручную не чистят: удаление файлов из него ломает кластер PostgreSQL. Если он растёт, ищите причину — зависший слот репликации или неработающее архивирование WAL — и устраняйте её средствами PostgreSQL.

Файл 1Cv8.lgd (SQLite)

Журнал нового формата — это база SQLite. Удалять записи из неё сторонними утилитами не стоит: структура не документирована, и легко получить журнал, который платформа не откроет. Записи удаляйте через «Сократить…».

Сжатие и обслуживание после очистки

После сокращения журнала размер на диске меняется не всегда так, как ожидаешь.

СитуацияЧто происходитЧто делать
Удалили старые .lgpместо освободилось сразуничего
Сократили .lgdфайл может не уменьшиться: SQLite оставляет пустые страницы внутрисжать копию файла
Сжали лог MS SQL.ldf уменьшился до заданного размераследить за моделью восстановления
Файловая база 1Cv8.1CD всё равно большаяжурнал не внутри .1CD, он отдельнотестирование и исправление со сжатием таблиц

Как сжать 1Cv8.lgd

  1. Остановите службу сервера 1С или закройте файловую базу у всех пользователей.
  2. Сделайте копию 1Cv8.lgd.
  3. Выполните сжатие утилитой sqlite3:
sqlite3 "D:\1C_Bases\Buh\1Cv8Log\1Cv8.lgd" "VACUUM;"
  1. Проверьте, что журнал открывается в Конфигураторе, и запустите службу.

VACUUM не удаляет данные, он только перестраивает файл без пустых страниц. Для него нужно свободное место примерно равное размеру файла.

Если выросла сама база, а не журнал

Для файловой базы раздутый 1Cv8.1CD сжимают в Конфигураторе: Администрирование → Тестирование и исправление… с флажком сжатия таблиц информационной базы. Этот режим требует монопольного доступа, все пользователи должны выйти. В БСП-конфигурациях базу часто раздувает не журнал, а история версий объектов — её очищают в настройках версионирования в разделе Администрирование.

Настройка журнала, чтобы он не разрастался снова

Разовая чистка без настройки — это повтор той же проблемы через полгода. Три настройки решают вопрос надолго.

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

В том же окне Администрирование → Настройка журнала регистрации… выберите уровень:

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

Разделение по периодам

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

Автоматическое удаление старых файлов

Для последовательного формата с разделением по периодам удаление можно поставить в планировщик. Пример для Windows — удаляет .lgp старше 180 дней:

forfiles /p "C:\Program Files\1cv8\srvinfo\reg_1541\<GUID базы>\1Cv8Log" /m *.lgp /d -180 /c "cmd /c del @path"

Для Linux то же самое делает find:

find /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID>/1Cv8Log -name "*.lgp" -mtime +180 -delete

Перед удалением добавьте в задание копирование старых файлов в архив, если по регламенту историю нужно хранить.

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

Если включён технологический журнал, в logcfg.xml у элемента <log> задайте параметр history — сколько часов хранить данные:

<log location="D:\v8logs" history="24">
    <event>
        <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
</log>

Каталог технологического журнала размещайте на отдельном диске. После разбора проблемы техжурнал выключают: убирают logcfg.xml или его блок <log>.

Что у вас занимает место?

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

Нужен ли монопольный режим для сокращения журнала регистрации?
Сокращение журнала не меняет структуру базы, поэтому выгонять пользователей обычно не требуется. Но на большом журнале операция грузит диск, удобнее делать её вечером.
Пропадут ли данные учёта после очистки журнала?
Нет. Журнал регистрации — это история действий, а не учётные данные. Документы, справочники и остатки не затрагиваются.
Сколько месяцев журнала регистрации оставлять?
Отдельного срока хранения журнала 1С закон не задаёт. Срок фиксируют во внутреннем регламенте: часто оставляют 6–12 месяцев в базе, а более старое держат в архиве.
Почему после очистки журнал снова вырос за неделю?
Чаще всего в базе работает частое регламентное задание с ошибкой или стоит уровень «Регистрировать все события». Найдите повторяющееся событие отбором и устраните источник.
Можно ли хранить журнал регистрации на другом диске?
Штатной настройки переноса папки 1Cv8Log нет. Администраторы переносят каталог данных сервера целиком или используют символическую ссылку, но это делают при остановленной службе и с проверкой прав пользователя службы.