К статье
Практический материал

Администрирование · 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. 1
    Откройте конфигуратор под пользователем с правами администратора
  2. 2
    Перейдите: Администрирование → Настройка журнала регистрации
  3. 3
    Нажмите кнопку «Сократить»
  4. 4
    Укажите дату, до которой удалять события, и при необходимости — файл для выгрузки удаляемой части
  5. 5
    Дождитесь завершения операции и проверьте размер таблицы EventLog

При сокращении платформа предлагает сохранить удаляемую часть журнала в файл формата .lgd — это полезно, если историю событий нужно хранить для аудита. Учтите: на больших таблицах операция выполняется долго и создаёт нагрузку на SQL-сервер, поэтому запускайте её в нерабочее время.

Способ 2: очистка напрямую через SQL-запросы

Когда таблица EventLog достигла десятков гигабайт, штатное сокращение может идти часами. Быстрее удалить записи напрямую в MS SQL. Перед этим завершите сеансы пользователей и сделайте резервную копию базы.

Полная очистка таблицы (быстрый вариант, не журналирует каждую строку):

sql
USE [ИмяБазы1С];
GO
TRUNCATE TABLE dbo.EventLog;
GO

Частичное удаление по дате (поле EventDate хранится в формате datetime2):

sql
DELETE FROM dbo.EventLog
WHERE EventDate < '2026-01-01T00:00:00';

После массового DELETE размер файла данных на диске сам по себе не уменьшится — место внутри файла освобождается, но файл не сжимается. При необходимости вернуть место на диске выполните сжатие базы (DBCC SHRINKDATABASE / SHRINKFILE), но не делайте это регулярно: частое сжатие фрагментирует индексы.

Сравнение способов очистки

КритерийСокращение в конфигуратореЗапросы в SQL
Скорость на больших объёмахНизкаяВысокая (TRUNCATE — мгновенно)
Риск повреждения данныхМинимальныйСредний при ошибке в запросе
Выгрузка истории в файлЕсть (.lgd)Нет, только бэкап
Требуемые праваАдминистратор 1СДоступ к SQL Server
Необходимость останавливать работуЖелательноОбязательно

Сравнение вариантов

Сокращение через конфигуратор

Подходит для регулярной профилактики и когда нужна выгрузка истории; ограничение — долго работает на больших таблицах

DELETE с условием по дате

Подходит, когда нужно оставить свежие события; ограничение — нагрузка на журнал транзакций

TRUNCATE TABLE

Подходит для полного обнуления журнала; ограничение — безвозвратно удаляет всю историю

Профилактика: как не допустить разрастания журнала

Разовая очистка решает проблему временно. Чтобы журнал не разрастался снова, настройте уровень регистрации событий: в конфигураторе откройте «Администрирование → Настройка журнала регистрации» и отключите неинформативные для вас категории (например, избыточный протокол доступа к данным, если он не требуется политикой аудита).

Полезно ввести регламент: сокращение журнала раз в квартал или месяц, хранение выгруженных .lgd-файлов в архиве. Включённое автоматическое сжатие базы (autoshrink) в MS SQL, наоборот, лучше держать выключенным — оно создаёт фрагментацию и нестабильную нагрузку.

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

Проверка результата и типичные ошибки

После очистки убедитесь, что журнал действительно сократился: откройте журнал регистрации в режиме предприятия — старые записи должны отсутствовать, а открытие должно происходить заметно быстрее. На стороне SQL проверьте размер таблицы через отчёт Disk Usage by Table.

Контрольные точки

Как проверить результат

Открытие журнала регистрации в 1С
Норма

Открывается быстро, старых записей нет

Тревожный признак

Открывается долго, записи на месте

Размер таблицы EventLog в SSMS
Норма

Существенно уменьшился

Тревожный признак

Размер прежний или вырос

Работа пользователей после операции
Норма

Сеансы запускаются, ошибок нет

Тревожный признак

Ошибки доступа к базе, падение сеансов

Типичные ошибки
01
Удаление записей без резервной копии — восстановить историю событий будет невозможно
02
Ожидание, что DELETE уменьшит файл базы на диске — без отдельного сжатия место на диске не освобождается
03
Очистка таблицы при активных сеансах — риск блокировок и ошибок у пользователей
04
Удаление связанных служебных таблиц вручную — журнал может перестать корректно открываться
05
Регулярное сжатие базы после каждой очистки — фрагментация индексов и деградация производительности

Ограничения и границы безопасной работы

Прямые операции с таблицами базы 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 по дате и расписанием, например раз в месяц. Альтернатива — регламентное сокращение через конфигуратор вручную по графику с выгрузкой истории в архив.