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

Администрирование · 12 мин

Как уменьшить базу 1С: практическое руководство по очистке и сжатию

Как уменьшить размер базы 1С: свёртка, удаление помеченных объектов, очистка истории, версионирования и журнала регистрации. Пошаговые инструкции и риски.

База 1С растёт неуклонно: накапливаются документы прошлых лет, версии объектов, записи журнала регистрации, история обменов и помеченные на удаление объекты. Рано или поздно это приводит к замедлению работы, долгому созданию резервных копий, ошибкам при обновлении и нехватке дискового пространства на сервере СУБД.

Уменьшить базу можно двумя принципиально разными путями: удалить лишние данные (очистка и свёртка) или физически сжать файлы базы (shrink в СУБД, выгрузка-загрузка через dt). Первый путь убирает причину роста, второй — только освобождает место в файлах. Оптимальный результат даёт сочетание обоих подходов.

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

Как понять, что именно раздувает базу

Прежде чем чистить, определите, где сосредоточен объём. В типовых конфигурациях есть обработка «Оценка производительности» и отчёты анализа, но самый простой способ — посмотреть размер таблиц на уровне СУБД. В MS SQL Server это отчёт «Disk Usage by Table», в PostgreSQL — запросы к pg_stat_user_tables с функцией pg_total_relation_size.

Типичные «тяжёлые» места: регистры сведений версионирования объектов, журнал регистрации, таблицы обмена данными (регистрация изменений), вложения и файлы, хранящиеся в базе, а также оборотные регистры накопления за много лет. В файловом варианте оценить структуру сложнее — ориентируйтесь на косвенные признаки: давно не выполнялась свёртка, включено версионирование, активно используются РИБ.

База растёт быстро, документов малоВероятны версии объектов или журнал регистрации

Проверьте настройки версионирования и уровень журналирования

Большие таблицы регистров измененийНакопилась регистрация для обменов

Проверьте узлы планов обмена и удалите неиспользуемые

База старая, свёртка не делаласьОсновной объём — документы и регистры прошлых лет

Планируйте свёртку на начало периода

Файл 1Cv8.1CD огромный после удаления данныхФайловая база не уменьшается сама

Нужна выгрузка/загрузка dt или тестирование и исправление

Удаление помеченных объектов и очистка справочников

Первый и самый безопасный шаг — физическое удаление объектов, помеченных на удаление. Выполняется через «Администрирование → Удаление помеченных объектов» (в режиме Предприятия) при монопольном доступе. Выбирайте режим «Выборочное удаление», если хотите контролировать, что именно уйдёт: обработка покажет объекты и связанные с ними ссылки.

Обратите внимание на объекты, которые не удаляются из-за ссылок. Если контрагент или номенклатура используются в документах, удалить их нельзя — и это правильно. Не пытайтесь «убрать мешающие ссылки» обработками прямого удаления: это создаёт битые ссылки вида «Объект не найден», которые потом ломают отчёты и обмены.

Дополнительно проверьте дубли справочников. В типовых конфигурациях есть обработка «Поиск и удаление дублей» (раздел «Администрирование → Обслуживание»): она объединяет дублирующиеся элементы с заменой ссылок. Эффект по объёму небольшой, но порядок в данных упрощает дальнейшую свёртку.

Очистка версий объектов, истории и журнала регистрации

Версионирование объектов

Если включено версионирование документов и справочников, таблица версий может стать одной из самых больших в базе. Проверьте настройки: «Администрирование → Общие настройки → История изменений». Оставьте версионирование только для действительно критичных объектов, а срок хранения версий ограничьте разумным периодом. Старые версии очищаются регламентным заданием «Очистка устаревших версий объектов» либо вручную через «История изменений».

Журнал регистрации

Журнал регистрации в файловой базе хранится в отдельном каталоге, в клиент-серверной — в таблицах СУБД. Сократите его через «Администрирование → Обслуживание → Журнал регистрации → Сократить», указав дату, до которой удалить события. Предварительно сохраните журнал в файл, если он нужен для аудита. Также проверьте уровень регистрируемых событий: запись всех событий сильно раздувает журнал на активных базах.

Регистрация изменений для обменов

Узлы планов обмена накапливают регистрацию изменений. Если обмен с каким-то узлом больше не используется — удалите узел целиком, это очистит регистрацию. Для активных обменов регистрация снимается автоматически после успешной выгрузки; если номера сообщений «застряли», проверьте, проходят ли обмены штатно.

Свёртка базы: удаление старых документов и регистров

Свёртка — главный инструмент радикального уменьшения. Она удаляет документы и движения до указанной даты, формируя документы ввода остатков на начало периода. В типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP) есть штатная обработка «Свёртка информационной базы» в разделе «Администрирование → Обслуживание».

Порядок действий: закройте период, сформируйте и сверьте отчёты (ОСВ, анализы, взаиморасчёты), сделайте копию. Затем запустите свёртку, укажите дату и организации, дождитесь формирования остатков. После свёртки обязательно сверьте те же отчёты на дату свёртки — остатки до и после должны совпадать. Расхождения означают, что часть данных не попала в остатки (например, незакрытые заказы или «висящие» резервы).

Учтите ограничения: свёртка не трогает справочники, поэтому база уменьшится за счёт документов и регистров, но не «сожмётся до нуля». Документы ввода остатков могут быть объёмными. В некоторых конфигурациях свёртка не поддерживает отдельные механизмы (например, сложные расчёты зарплаты) — тогда для зарплатного участка используют перенос остатков специализированными обработками или начало учёта с новой базы.

Порядок свёртки базы
  1. 1
    Сделайте резервную копию и проверьте её восстановление
  2. 2
    Сформируйте контрольные отчёты на дату свёртки и сохраните их
  3. 3
    Закройте кассовые смены, завершите обмены, отключите регламентные задания
  4. 4
    Запустите обработку свёртки в тестовой копии базы
  5. 5
    Сверьте остатки после свёртки с контрольными отчётами
  6. 6
    При успешной проверке повторите свёртку в рабочей базе в нерабочее время
  7. 7
    После свёртки выполните физическое сжатие базы

Физическое сжатие файловой и клиент-серверной базы

Файловая база (1Cv8.1CD)

Файловая база после удаления данных сама не уменьшается — освобождённое место остаётся внутри файла. Чтобы вернуть его, используйте один из способов: выгрузку базы в dt и загрузку обратно (самый надёжный), либо «Тестирование и исправление» в конфигураторе с включённой реструктуризацией и сжатием таблиц. Выгрузка-загрузка через dt дополнительно пересоздаёт индексы и часто ускоряет базу.

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

В MS SQL Server после удаления данных выполните сжатие: DBCC SHRINKDATABASE или сжатие отдельных файлов через Management Studio. Не включайте автосжатие (autoshrink) — оно фрагментирует индексы и портит производительность; сжатие делают разово после массового удаления. После shrink выполните перестроение индексов (rebuild), так как сжатие сильно фрагментирует таблицы.

В PostgreSQL обычный VACUUM не возвращает место системе — для этого нужен VACUUM FULL (требует блокировки таблицы и свободного места под копию) либо инструмент pg_repack. Планируйте эти операции на время, когда пользователи не работают.

sql
DBCC SHRINKDATABASE (N'MyBase1C', 10);
ALTER INDEX ALL ON dbo._AccumRg12345 REBUILD;

Когда проще начать с чистой базы и перенести остатки

Если конфигурация сильно доработана, свёртка не поддерживается или ошибок в данных много, практичнее развернуть новую чистую базу той же конфигурации и перенести в неё справочники и остатки. Для этого используют «Выгрузку-загрузку данных XML» (для идентичных конфигураций), типовые обработки переноса или конвертацию данных.

Этот путь трудоёмок: нужно перенести остатки по всем разделам учёта, настроить нумерацию, права и интеграции. Но результат — компактная база без накопленных ошибок. Старую базу сохраняют в архиве в режиме «только чтение» для доступа к истории.

Сравнение вариантов уменьшения базы

Очистка мусора (версии, журнал, помеченные)

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

Свёртка базы

Радикально уменьшает объём документов и регистров. Требует тщательной сверки остатков и поддержки конфигурацией.

Выгрузка/загрузка dt или shrink в СУБД

Уменьшает файл без удаления данных. Не решает проблему роста — только освобождает место.

Новая база с переносом остатков

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

Типичные ошибки
01
Свёртка без тестового прогона на копии — расхождения остатков обнаруживаются, когда откат уже затруднён
02
Удаление объектов прямыми запросами или обработками без контроля ссылок — появляются битые ссылки и ошибки в отчётах
03
Ожидание, что файловая база уменьшится сама после удаления данных — файл не сжимается без выгрузки/загрузки или ТиИ
04
Включённый autoshrink в MS SQL Server — постоянная фрагментация индексов и просадка производительности
05
Удаление старых документов обработкой вместо свёртки — остатки по регистрам «уезжают», учёт разваливается

Как проверить результат и не допустить повторного роста

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

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

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

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

Размер базы
Норма

Файл или таблицы заметно уменьшились после сжатия

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

Данные удалены, а размер не изменился — не выполнено физическое сжатие

Остатки после свёртки
Норма

Контрольные отчёты до и после совпадают

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

Расхождения — не все данные попали в остатки, нужен анализ

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

Отчёты и проведение документов выполняются без ошибок

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

Ошибки «Объект не найден» — были удалены используемые объекты

Регламентные задания
Норма

Очистка версий и истории выполняется по расписанию

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

Задания отключены — объём начнёт расти снова

Итог

Что важно запомнить

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

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

Почему база 1С не уменьшилась после удаления документов?

Удаление данных лишь помечает место внутри файла или таблиц как свободное — физический размер не меняется. Для файловой базы выполните выгрузку в dt и загрузку обратно или тестирование и исправление со сжатием. Для клиент-серверной — shrink в СУБД с последующим перестроением индексов.

Можно ли просто удалить старые документы обработкой вместо свёртки?

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

Как часто нужно делать свёртку базы?

Жёсткого правила нет: ориентируйтесь на объём и скорость роста базы. Многим организациям достаточно свёртки раз в один-два года, при активном документообороте — ежегодно. Промежуточный контроль обеспечивают регулярная очистка версий, журнала регистрации и помеченных объектов.

Что делать, если свёртка в моей конфигурации не поддерживается?

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

Опасно ли сжатие (shrink) базы в MS SQL Server?

Разовое сжатие после массового удаления данных безопасно, но оно сильно фрагментирует индексы — сразу после shrink выполните их перестроение. Опасен именно постоянный autoshrink: он запускается автоматически, гоняет данные по файлу и ухудшает производительность. Оставляйте его выключенным.

Нужно ли уменьшать базу, если места на диске достаточно?

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