Чистка журнала регистрации, журналов документов и итогов регистров в 1С 8.3

· 10 мин

Содержание

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

Но «журнал» в 1С бывает разным. Иногда пухнет журнал регистрации, иногда — журнал транзакций SQL Server, а иногда тормозит журнал документов , в котором накопились тысячи ошибочных записей. Поэтому сначала определите, что именно разрослось: от этого зависит способ удаления записей и эффект для производительности.

Что именно разрослось: диагностика перед чисткой

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

Признаки, по которым видно источник проблемы:

  • 📂 Журнал регистрации. Каталог 1Cv8Log весит десятки гигабайт, журнал открывается минутами, отбор по пользователю «висит».
  • 🗄️ Журнал транзакций SQL. Файл .ldf базы на MS SQL больше файла данных .mdf и растёт каждый день.
  • 📄 Журналы документов. Списки документов открываются медленно, в них много помеченных на удаление и тестовых записей.
  • 📊 Регистры накопления. Медленно строятся отчёты по остаткам, оборотно-сальдовая ведомость, проведение документов идёт долго.

Как посмотреть размер журнала регистрации

Журнал хранится отдельно от данных базы:

Вариант базыГде лежат файлы журнала
Файловая<каталог базы>\1Cv8Log
Клиент-серверная<каталог службы>\srvinfo\reg_1541\<GUID базы>\1Cv8Log

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

Внутри каталога вы увидите один из двух форматов:

  • 📑 Последовательный (текстовый): файл-индекс 1Cv8.lgf и много файлов *.lgp, по одному на период.
  • 🧱 SQLite: один файл 1Cv8.lgd, который растёт без разбиения.

Как найти тяжёлые таблицы в MS SQL

Для клиент-серверной базы запрос ниже покажет самые большие таблицы. Выполните его в SQL Server Management Studio в контексте базы 1С:

SELECT
    t.name AS table_name,
    SUM(CASE WHEN i.index_id <= 1 THEN p.rows ELSE 0 END) AS rows_count,
    SUM(a.total_pages) * 8 / 1024 AS size_mb
FROM sys.tables t
JOIN sys.indexes i ON t.object_id = i.object_id
JOIN sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
JOIN sys.allocation_units a ON p.partition_id = a.container_id
GROUP BY t.name
ORDER BY size_mb DESC;

Имена таблиц будут служебными: _AccumRg1234, _InfoRg567, _Document89. Сопоставить их с объектами конфигурации помогает функция встроенного языка ПолучитьСтруктуруХраненияБазыДанных(): она возвращает таблицу с именем объекта метаданных и именем таблицы в СУБД.

Что у вас занимает больше всего места или тормозит?

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

Штатная чистка журнала регистрации делается в Конфигураторе. Монопольный доступ к базе для этого не нужен, пользователи могут продолжать работу.

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

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

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

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

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

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

Доступны варианты:

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

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

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

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

Если журнал хранится в формате SQLite (1Cv8.lgd), в окне настройки есть команда перевода в последовательный формат. Последовательный формат быстрее открывается и проще обслуживается вручную.

Журнал из режима «Предприятие»

В типовых конфигурациях на библиотеке стандартных подсистем журнал открывается в Администрирование → Обслуживание → Журнал регистрации. Отсюда удобно смотреть события с отборами, но сократить журнал можно только в Конфигураторе.

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

Когда Конфигуратор не справляется (журнал на сотни гигабайт, окно зависает), старые файлы удаляют напрямую.

Перед удалением скопируйте каталог 1Cv8Log в архив. Удалённые события восстановить будет нельзя.

Файловая база

  1. Попросите всех пользователей выйти из базы.
  2. Откройте каталог базы и в нём папку 1Cv8Log.
  3. Для последовательного формата удалите старые файлы *.lgp за ненужные периоды. Файл 1Cv8.lgf не трогайте.
  4. Если журнал в формате SQLite и нужен полный сброс, удалите 1Cv8.lgd. При следующем запуске платформа создаст новый пустой журнал.

Клиент-серверная база

Файлы журнала держит рабочий процесс сервера 1С, поэтому удалять их «на ходу» нельзя.

  1. Предупредите пользователей: при остановке службы «Агент сервера 1С:Предприятия» оборвутся все сеансы на этом сервере. Делайте это в окно обслуживания.
  2. Остановите службу агента сервера.
  3. Найдите каталог srvinfo\reg_1541\<GUID базы>\1Cv8Log.
  4. Удалите старые *.lgp или файл 1Cv8.lgd.
  5. Запустите службу и проверьте вход в базу.

Не удаляйте весь каталог reg_1541 и файлы 1CV8Clst.lst, 1CV8Reg.lst: в них хранится реестр кластера и список баз. Без них сервер «забудет» все информационные базы.

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

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

forfiles /p "D:\1C\srvinfo\reg_1541\GUID_БАЗЫ\1Cv8Log" /m *.lgp /d -180 /c "cmd /c del @path"

Подставьте свой путь и GUID. Запускайте скрипт через планировщик заданий в то же окно обслуживания, когда служба остановлена, и сначала проверьте его на копии каталога.

Как удалить ошибочные документы из журналов

Журналы документов («Все документы», журналы банка, кассы, операций) тормозят, когда в них копятся черновики, дубли после неудачной загрузки и тестовые записи.

Пометка и удаление помеченных объектов

Документы в 1С удаляются в два шага. Сначала их помечают на удаление, затем удаляют обработкой, которая проверяет ссылки.

  1. Выделите лишние документы в списке. Можно выделить группу с зажатой клавишей Shift или Ctrl.
  2. Нажмите Del или выберите команду пометки на удаление. Проведённые документы при этом распроводятся.
  3. Откройте обработку удаления помеченных объектов. В БП 3.0 — Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов.
  4. Выберите режим с выбором объектов, отметьте нужные и запустите удаление.
  5. Посмотрите итог: объекты, на которые есть ссылки, обработка не удалит и покажет, кто на них ссылается.

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

Когда документ не удаляется

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

Не снимайте пометку массово у всего подряд, чтобы «посмотреть, что получится». Документы с восстановленной пометкой нужно перепроводить вручную, иначе учёт разъедется.

Пересчёт итогов и сжатие таблиц регистров

Регистры накопления хранят не только движения, но и таблицы итогов. Когда итоги рассчитаны неправильно или период итогов давно не сдвигался, отчёты по остаткам заметно замедляются.

Управление итогами в режиме «Предприятие»

Обработка открывается через Все функции → Стандартные → Управление итогами. В ней доступны:

  • 🔁 Пересчёт итогов — заново собирает таблицы итогов из движений регистров.
  • 📅 Период рассчитанных итогов — дата, до которой итоги уже посчитаны. Её сдвигают на начало текущего месяца, чтобы отчёты не пересобирали остатки с начала работы базы.
  • ⚡ Агрегаты — для оборотных регистров с большим объёмом данных.

Тестирование и исправление в Конфигураторе

Более глубокая обработка — Администрирование → Тестирование и исправление. Для чистки и ускорения отметьте:

  • «Реиндексация таблиц информационной базы»;
  • «Пересчёт итогов»;
  • «Сжатие таблиц информационной базы».

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

Для клиент-серверной базы в большинстве задач эффективнее средства самой СУБД: обновление статистики и перестроение индексов планом обслуживания SQL Server.

Внешние обработки и свёртка для глубокой очистки

Когда базе много лет и она весит сотни гигабайт, удаления помеченных объектов мало. Тогда сворачивают старые периоды.

Свёртка информационной базы

Свёртка удаляет документы до выбранной даты и заменяет их вводом остатков на эту дату. В БП 3.0 есть штатная обработка: Администрирование → Обслуживание → Корректировка данных → Свёртка информационной базы.

Порядок работы:

  1. Сделайте выгрузку .dt и сохраните её как архив за старые годы.
  2. Проверьте, что закрыты все периоды до даты свёртки: выполнено закрытие месяца, сданы отчёты.
  3. Запустите свёртку на копии базы и сверьте оборотно-сальдовую ведомость на дату свёртки до и после.
  4. Только после сверки повторите на рабочей базе или замените рабочую базу проверенной копией.

Сторонние обработки

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

Правила работы с ними:

  • 🛡️ Берите обработки из проверенных источников и читайте код перед запуском: внешняя обработка выполняется с правами вашего пользователя.
  • 🧪 Запускайте сначала на копии базы.
  • 🧾 Помните, что прямое удаление записей регистра без документа-регистратора рвёт связь учёта. Удаляйте документы, а не их движения.

Служебные регистры сведений

Часто базу раздувает не учёт, а служебные данные. Типичный пример — версии объектов: при включённом версионировании каждое изменение документа сохраняется отдельной записью. В настройках версионирования (Администрирование → Общие настройки) есть команда удаления устаревших версий и выбор срока хранения.

Журнал транзакций SQL Server: как его сжать

Если база работает на MS SQL Server и растёт файл .ldf, это журнал транзакций СУБД, а не журнал регистрации 1С. Он растёт, когда база в полной модели восстановления, а резервные копии журнала не делаются.

Есть два правильных пути:

ПутьКогда подходитРиск
Резервное копирование журнала транзакций по расписаниюНужно восстанавливаться на любой момент времениНужно место под копии журнала
Простая модель восстановленияХватает ежедневных полных копийВосстановление только на момент полной копии

Пример перевода в простую модель и сжатия файла журнала:

ALTER DATABASE [buh_base] SET RECOVERY SIMPLE;
GO
USE [buh_base];
GO
SELECT name, type_desc, size * 8 / 1024 AS size_mb FROM sys.database_files;
GO
DBCC SHRINKFILE (N'buh_base_log', 1024);
GO

Логическое имя файла журнала (buh_base_log в примере) берите из результата запроса к sys.database_files. Число 1024 — целевой размер в мегабайтах.

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

Не ставьте сжатие файлов в ежедневный план обслуживания. Файл будет снова расти, а постоянное сжатие фрагментирует данные и замедляет работу.

Профилактика: чтобы журналы не разрастались снова

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

Регламент обслуживания журналов 1С
Выполнено: 0 / 8

Кроме настроек помогают простые привычки:

  • 📥 Загрузки из банка и обмены сначала проверяют на копии, чтобы не плодить сотни дублей.
  • 👥 Пользователям не дают права на интерактивное удаление: только пометка, а удаляет администратор.
  • 📈 Размер каталога 1Cv8Log и файла .ldf включают в мониторинг сервера.

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

Можно ли удалить журнал регистрации полностью?
Да. Данные учёта в нём не хранятся, база будет работать. Но вы потеряете историю входов, изменений и ошибок, поэтому сначала сохраните архив каталога 1Cv8Log.
Ускорит ли работу 1С чистка журнала регистрации?
Ускорит открытие самого журнала и запись событий, особенно в формате SQLite. На скорость проведения документов и отчётов она почти не влияет: там помогают пересчёт итогов и обслуживание СУБД.
Почему после удаления помеченных объектов база не стала меньше?
Файловая база не возвращает освободившееся место сама. Выполните тестирование и исправление со сжатием таблиц или выгрузите базу в .dt и загрузите обратно.
Как сократить журнал без Конфигуратора?
Для последовательного формата — удалить старые файлы .lgp при остановленной службе или при выходе всех пользователей из файловой базы. Штатного сокращения из режима «Предприятие» в типовых конфигурациях нет.
Нужно ли выгонять пользователей для сокращения журнала?
Для команды «Сократить…» в Конфигураторе — нет. Для ручного удаления файлов в клиент-серверной базе нужна остановка службы агента сервера, а это обрыв всех сеансов.