Администрирование · 9 мин
Как очистить журнал регистрации в 1С 8.3 на SQL-сервере
Способы очистки журнала регистрации 1С 8.3 в клиент-серверном варианте на MS SQL: сокращение через конфигуратор, удаление записей запросом, регламенты и риски.
В клиент-серверном варианте 1С 8.3 журнал регистрации хранится не в отдельном файле каталога базы, а в таблице EventLog базы данных на SQL-сервере (для MS SQL это таблица dbo.EventLog). Со временем она разрастается до гигабайтов, замедляет открытие журнала в конфигураторе и увеличивает размер резервных копий. Очистить журнал можно двумя способами: штатным сокращением через конфигуратор или прямым удалением записей на стороне SQL-сервера.
Оба подхода рабочие, но различаются по рискам и побочным эффектам. Штатное сокращение безопаснее, однако на больших таблицах выполняется долго и может блокировать работу пользователей. Прямая очистка через SQL быстрее, но требует понимания структуры хранения и обязательной резервной копии. Ниже разобраны оба способа, условия их применения и типичные ошибки.
Где физически хранится журнал регистрации на SQL
В отличие от файлового варианта, где журнал лежит в каталоге 1Cv8Log рядом с базой, в клиент-серверном режиме все события пишутся в таблицу EventLog той же базы данных SQL Server. Дополнительные данные (представления пользователей, метаданных) хранятся в связанных служебных таблицах, поэтому удалять только часть строк вручную нужно аккуратно.
Оценить текущий объём можно через SQL Server Management Studio: свойства базы данных, либо отчёт по размерам таблиц (Disk Usage by Table). Если таблица EventLog занимает заметную долю базы — журнал пора сокращать. Косвенный признак разрастания: открытие журнала регистрации в конфигураторе или в режиме предприятия занимает минуты.
Способ 1: штатное сокращение через конфигуратор
Это рекомендуемый способ, не требующий прямого доступа к SQL-серверу. Порядок действий:
- 1Откройте конфигуратор под пользователем с правами администратора
- 2Перейдите: Администрирование → Настройка журнала регистрации
- 3Нажмите кнопку «Сократить»
- 4Укажите дату, до которой удалять события, и при необходимости — файл для выгрузки удаляемой части
- 5Дождитесь завершения операции и проверьте размер таблицы EventLog
При сокращении платформа предлагает сохранить удаляемую часть журнала в файл формата .lgd — это полезно, если историю событий нужно хранить для аудита. Учтите: на больших таблицах операция выполняется долго и создаёт нагрузку на SQL-сервер, поэтому запускайте её в нерабочее время.
Способ 2: очистка напрямую через SQL-запросы
Когда таблица EventLog достигла десятков гигабайт, штатное сокращение может идти часами. Быстрее удалить записи напрямую в MS SQL. Перед этим завершите сеансы пользователей и сделайте резервную копию базы.
Полная очистка таблицы (быстрый вариант, не журналирует каждую строку):
USE [ИмяБазы1С];
GO
TRUNCATE TABLE dbo.EventLog;
GOЧастичное удаление по дате (поле EventDate хранится в формате datetime2):
DELETE FROM dbo.EventLog
WHERE EventDate < '2026-01-01T00:00:00';После массового DELETE размер файла данных на диске сам по себе не уменьшится — место внутри файла освобождается, но файл не сжимается. При необходимости вернуть место на диске выполните сжатие базы (DBCC SHRINKDATABASE / SHRINKFILE), но не делайте это регулярно: частое сжатие фрагментирует индексы.
Сравнение способов очистки
| Критерий | Сокращение в конфигураторе | Запросы в SQL |
|---|---|---|
| Скорость на больших объёмах | Низкая | Высокая (TRUNCATE — мгновенно) |
| Риск повреждения данных | Минимальный | Средний при ошибке в запросе |
| Выгрузка истории в файл | Есть (.lgd) | Нет, только бэкап |
| Требуемые права | Администратор 1С | Доступ к SQL Server |
| Необходимость останавливать работу | Желательно | Обязательно |
Сравнение вариантов
Подходит для регулярной профилактики и когда нужна выгрузка истории; ограничение — долго работает на больших таблицах
Подходит, когда нужно оставить свежие события; ограничение — нагрузка на журнал транзакций
Подходит для полного обнуления журнала; ограничение — безвозвратно удаляет всю историю
Профилактика: как не допустить разрастания журнала
Разовая очистка решает проблему временно. Чтобы журнал не разрастался снова, настройте уровень регистрации событий: в конфигураторе откройте «Администрирование → Настройка журнала регистрации» и отключите неинформативные для вас категории (например, избыточный протокол доступа к данным, если он не требуется политикой аудита).
Полезно ввести регламент: сокращение журнала раз в квартал или месяц, хранение выгруженных .lgd-файлов в архиве. Включённое автоматическое сжатие базы (autoshrink) в MS SQL, наоборот, лучше держать выключенным — оно создаёт фрагментацию и нестабильную нагрузку.
Частая причина стремительного роста EventLog — включённая регистрация событий «Доступ к данным» и ошибок фоновых заданий, которые срабатывают каждую минуту. Перед очисткой проверьте настройки регистрации: иначе через месяц таблица вернётся к прежнему размеру.
Проверка результата и типичные ошибки
После очистки убедитесь, что журнал действительно сократился: откройте журнал регистрации в режиме предприятия — старые записи должны отсутствовать, а открытие должно происходить заметно быстрее. На стороне SQL проверьте размер таблицы через отчёт Disk Usage by Table.
Как проверить результат
Открывается быстро, старых записей нет
Открывается долго, записи на месте
Существенно уменьшился
Размер прежний или вырос
Сеансы запускаются, ошибок нет
Ошибки доступа к базе, падение сеансов
Ограничения и границы безопасной работы
Прямые операции с таблицами базы 1С официально не поддерживаются как способ модификации данных конфигурации, однако очистка EventLog — распространённая административная практика. Ключевые условия безопасности: актуальная резервная копия, отсутствие активных сеансов, выполнение запросов строго к таблице EventLog.
Если журнал регистрации используется для расследования инцидентов или требований аудита, перед очисткой выгрузите историю. Помните, что TRUNCATE и DELETE без выгрузки уничтожают данные безвозвратно — восстановить их можно только из резервной копии базы.
Что важно запомнить
Журнал регистрации в SQL-варианте 1С 8.3 хранится в таблице EventLog. Безопасный путь — сокращение через конфигуратор с выгрузкой истории; быстрый путь — DELETE или TRUNCATE в MS SQL после бэкапа и остановки сеансов. После очистки настройте уровень регистрации событий, чтобы журнал не разросся снова.
Частые вопросы
Можно ли очистить журнал регистрации без остановки работы пользователей?
Штатное сокращение в конфигураторе технически возможно при работающих пользователях, но создаёт нагрузку и блокировки — лучше выполнять в нерабочее время. Прямые операции DELETE/TRUNCATE в SQL при активных сеансах проводить не рекомендуется из-за риска блокировок и ошибок.
Удалится ли история входов пользователей при очистке?
Да. Журнал регистрации хранит в том числе события аутентификации, и очистка удаляет их безвозвратно. Если история входов нужна для аудита, выгрузите удаляемую часть в файл .lgd при сокращении или сделайте копию таблицы EventLog перед DELETE.
Почему после DELETE размер базы на диске не уменьшился?
DELETE освобождает место внутри файла данных, но сам файл не сжимает. Чтобы вернуть место на диске, нужна операция сжатия (SHRINKFILE/SHRINKDATABASE). Выполняйте её разово, а не по расписанию: частое сжатие фрагментирует индексы и ухудшает производительность.
Чем TRUNCATE отличается от DELETE при очистке журнала?
TRUNCATE удаляет все строки таблицы целиком, работает практически мгновенно и минимально нагружает журнал транзакций, но не позволяет задать условие. DELETE медленнее и журналирует каждую строку, зато позволяет удалить записи только старше заданной даты.
Как сделать, чтобы журнал регистрации не рос так быстро?
Настройте в конфигураторе уровень регистрации событий: отключите категории, которые не нужны для аудита (например, подробный протокол доступа к данным). Также проверьте фоновые задания, генерирующие ошибки каждую минуту, — устранение их причины резко сократит поток записей.
Можно ли автоматизировать очистку журнала по расписанию?
Да. На стороне SQL Server можно создать задание агента (SQL Server Agent Job) с запросом DELETE по дате и расписанием, например раз в месяц. Альтернатива — регламентное сокращение через конфигуратор вручную по графику с выгрузкой истории в архив.