Чистка журнала регистрации, журналов документов и итогов регистров в 1С 8.3
Содержание
Чтобы почистить журнал регистрации
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С штатными средствами
Штатная чистка журнала регистрации делается в Конфигураторе. Монопольный доступ к базе для этого не нужен, пользователи могут продолжать работу.
Сокращение журнала в Конфигураторе
- Запустите базу в режиме «Конфигуратор» под пользователем с правами администратора.
- Откройте
Администрирование → Журнал регистрации. - Нажмите кнопку «Сократить…» на панели окна журнала.
- Укажите дату: все события раньше неё будут удалены.
- Если события нужны для проверок, включите сохранение удаляемых событий в файл и задайте путь.
- Подтвердите действие и дождитесь окончания.
Сохраняйте удаляемые события в файл, если в компании есть требования к аудиту действий пользователей. Файл потом можно открыть в том же окне журнала регистрации через команду открытия файла журнала.
На большом журнале в формате SQLite операция идёт долго, иногда часами. Запускайте её вечером, когда нагрузка минимальна.
Уровень регистрации событий
Журнал разрастается, потому что пишет всё подряд. Уровень регистрации меняют в Администрирование → Настройка журнала регистрации.
Доступны варианты:
| Уровень | Что пишется | Когда выбирать |
|---|---|---|
| Не регистрировать | Ничего | Почти никогда: при сбое вы останетесь без следов |
| Регистрировать ошибки | Только ошибки | Учебные и тестовые базы |
| Ошибки и предупреждения | Ошибки и предупреждения | Компромисс для рабочей базы с жёстким лимитом места |
| Ошибки, предупреждения и информацию | Плюс информационные события | Рабочая база, где важно видеть входы, изменения данных |
| Все события | Всё, включая примечания | Расследование конкретной проблемы на короткий срок |
Разделение журнала по периодам
В том же окне настройки задайте разделение журнала по периодам: по дням, неделям, месяцам или годам. Для последовательного формата каждый период пишется в свой файл .lgp.
Это главная настройка для дальнейшего обслуживания. Когда журнал разбит по месяцам, старые месяцы можно архивировать или удалять отдельными файлами, не трогая текущий.
Если журнал хранится в формате SQLite (1Cv8.lgd), в окне настройки есть команда перевода в последовательный формат. Последовательный формат быстрее открывается и проще обслуживается вручную.
Журнал из режима «Предприятие»
В типовых конфигурациях на библиотеке стандартных подсистем журнал открывается в Администрирование → Обслуживание → Журнал регистрации. Отсюда удобно смотреть события с отборами, но сократить журнал можно только в Конфигураторе.
Удаление файлов журнала регистрации вручную
Когда Конфигуратор не справляется (журнал на сотни гигабайт, окно зависает), старые файлы удаляют напрямую.
Перед удалением скопируйте каталог 1Cv8Log в архив. Удалённые события восстановить будет нельзя.
Файловая база
- Попросите всех пользователей выйти из базы.
- Откройте каталог базы и в нём папку
1Cv8Log. - Для последовательного формата удалите старые файлы
*.lgpза ненужные периоды. Файл1Cv8.lgfне трогайте. - Если журнал в формате SQLite и нужен полный сброс, удалите
1Cv8.lgd. При следующем запуске платформа создаст новый пустой журнал.
Клиент-серверная база
Файлы журнала держит рабочий процесс сервера 1С, поэтому удалять их «на ходу» нельзя.
- Предупредите пользователей: при остановке службы «Агент сервера 1С:Предприятия» оборвутся все сеансы на этом сервере. Делайте это в окно обслуживания.
- Остановите службу агента сервера.
- Найдите каталог
srvinfo\reg_1541\<GUID базы>\1Cv8Log. - Удалите старые
*.lgpили файл1Cv8.lgd. - Запустите службу и проверьте вход в базу.
Не удаляйте весь каталог 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С удаляются в два шага. Сначала их помечают на удаление, затем удаляют обработкой, которая проверяет ссылки.
- Выделите лишние документы в списке. Можно выделить группу с зажатой клавишей
ShiftилиCtrl. - Нажмите
Delили выберите команду пометки на удаление. Проведённые документы при этом распроводятся. - Откройте обработку удаления помеченных объектов. В БП 3.0 —
Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. - Выберите режим с выбором объектов, отметьте нужные и запустите удаление.
- Посмотрите итог: объекты, на которые есть ссылки, обработка не удалит и покажет, кто на них ссылается.
Если обработка не нашлась в меню, включите в настройках пользователя отображение команды «Все функции» и откройте Все функции → Стандартные → Удаление помеченных объектов.
Когда документ не удаляется
Чаще всего на документ ссылается другой документ: например, счёт-фактура ссылается на реализацию. Сначала удалите или отвяжите зависимый объект, потом исходный.
Не снимайте пометку массово у всего подряд, чтобы «посмотреть, что получится». Документы с восстановленной пометкой нужно перепроводить вручную, иначе учёт разъедется.
Пересчёт итогов и сжатие таблиц регистров
Регистры накопления хранят не только движения, но и таблицы итогов. Когда итоги рассчитаны неправильно или период итогов давно не сдвигался, отчёты по остаткам заметно замедляются.
Управление итогами в режиме «Предприятие»
Обработка открывается через Все функции → Стандартные → Управление итогами. В ней доступны:
- 🔁 Пересчёт итогов — заново собирает таблицы итогов из движений регистров.
- 📅 Период рассчитанных итогов — дата, до которой итоги уже посчитаны. Её сдвигают на начало текущего месяца, чтобы отчёты не пересобирали остатки с начала работы базы.
- ⚡ Агрегаты — для оборотных регистров с большим объёмом данных.
Тестирование и исправление в Конфигураторе
Более глубокая обработка — Администрирование → Тестирование и исправление. Для чистки и ускорения отметьте:
- «Реиндексация таблиц информационной базы»;
- «Пересчёт итогов»;
- «Сжатие таблиц информационной базы».
Тестирование и исправление требует монопольного доступа и сделанной заранее резервной копии. На большой базе оно идёт часами, запускайте его вне рабочего времени.
Для клиент-серверной базы в большинстве задач эффективнее средства самой СУБД: обновление статистики и перестроение индексов планом обслуживания SQL Server.
Внешние обработки и свёртка для глубокой очистки
Когда базе много лет и она весит сотни гигабайт, удаления помеченных объектов мало. Тогда сворачивают старые периоды.
Свёртка информационной базы
Свёртка удаляет документы до выбранной даты и заменяет их вводом остатков на эту дату. В БП 3.0 есть штатная обработка: Администрирование → Обслуживание → Корректировка данных → Свёртка информационной базы.
Порядок работы:
- Сделайте выгрузку
.dtи сохраните её как архив за старые годы. - Проверьте, что закрыты все периоды до даты свёртки: выполнено закрытие месяца, сданы отчёты.
- Запустите свёртку на копии базы и сверьте оборотно-сальдовую ведомость на дату свёртки до и после.
- Только после сверки повторите на рабочей базе или замените рабочую базу проверенной копией.
Сторонние обработки
Для нетиповых задач используют внешние обработки: удаление документов за период по отбору, очистка регистров сведений, групповое удаление справочников.
Правила работы с ними:
- 🛡️ Берите обработки из проверенных источников и читайте код перед запуском: внешняя обработка выполняется с правами вашего пользователя.
- 🧪 Запускайте сначала на копии базы.
- 🧾 Помните, что прямое удаление записей регистра без документа-регистратора рвёт связь учёта. Удаляйте документы, а не их движения.
Служебные регистры сведений
Часто базу раздувает не учёт, а служебные данные. Типичный пример — версии объектов: при включённом версионировании каждое изменение документа сохраняется отдельной записью. В настройках версионирования (Администрирование → Общие настройки) есть команда удаления устаревших версий и выбор срока хранения.
Журнал транзакций 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 — целевой размер в мегабайтах.
После перевода в простую модель цепочка резервных копий журнала прерывается. Сразу сделайте полную резервную копию базы.
Не ставьте сжатие файлов в ежедневный план обслуживания. Файл будет снова расти, а постоянное сжатие фрагментирует данные и замедляет работу.
Профилактика: чтобы журналы не разрастались снова
Разовая чистка помогает на пару месяцев. Чтобы проблема не вернулась, настройте обслуживание один раз:
Кроме настроек помогают простые привычки:
- 📥 Загрузки из банка и обмены сначала проверяют на копии, чтобы не плодить сотни дублей.
- 👥 Пользователям не дают права на интерактивное удаление: только пометка, а удаляет администратор.
- 📈 Размер каталога
1Cv8Logи файла.ldfвключают в мониторинг сервера.