Администрирование · 12 мин
Как уменьшить базу 1С: практическое руководство по очистке и сжатию
Как уменьшить размер базы 1С: свёртка, удаление помеченных объектов, очистка истории, версионирования и журнала регистрации. Пошаговые инструкции и риски.
База 1С растёт неуклонно: накапливаются документы прошлых лет, версии объектов, записи журнала регистрации, история обменов и помеченные на удаление объекты. Рано или поздно это приводит к замедлению работы, долгому созданию резервных копий, ошибкам при обновлении и нехватке дискового пространства на сервере СУБД.
Уменьшить базу можно двумя принципиально разными путями: удалить лишние данные (очистка и свёртка) или физически сжать файлы базы (shrink в СУБД, выгрузка-загрузка через dt). Первый путь убирает причину роста, второй — только освобождает место в файлах. Оптимальный результат даёт сочетание обоих подходов.
Перед любыми действиями обязательно сделайте полную резервную копию базы и проверьте, что она восстанавливается. Удаление данных в 1С необратимо, а ошибка в периоде свёртки может уничтожить нужные документы.
Как понять, что именно раздувает базу
Прежде чем чистить, определите, где сосредоточен объём. В типовых конфигурациях есть обработка «Оценка производительности» и отчёты анализа, но самый простой способ — посмотреть размер таблиц на уровне СУБД. В MS SQL Server это отчёт «Disk Usage by Table», в PostgreSQL — запросы к pg_stat_user_tables с функцией pg_total_relation_size.
Типичные «тяжёлые» места: регистры сведений версионирования объектов, журнал регистрации, таблицы обмена данными (регистрация изменений), вложения и файлы, хранящиеся в базе, а также оборотные регистры накопления за много лет. В файловом варианте оценить структуру сложнее — ориентируйтесь на косвенные признаки: давно не выполнялась свёртка, включено версионирование, активно используются РИБ.
Проверьте настройки версионирования и уровень журналирования
Проверьте узлы планов обмена и удалите неиспользуемые
Планируйте свёртку на начало периода
Нужна выгрузка/загрузка dt или тестирование и исправление
Удаление помеченных объектов и очистка справочников
Первый и самый безопасный шаг — физическое удаление объектов, помеченных на удаление. Выполняется через «Администрирование → Удаление помеченных объектов» (в режиме Предприятия) при монопольном доступе. Выбирайте режим «Выборочное удаление», если хотите контролировать, что именно уйдёт: обработка покажет объекты и связанные с ними ссылки.
Обратите внимание на объекты, которые не удаляются из-за ссылок. Если контрагент или номенклатура используются в документах, удалить их нельзя — и это правильно. Не пытайтесь «убрать мешающие ссылки» обработками прямого удаления: это создаёт битые ссылки вида «Объект не найден», которые потом ломают отчёты и обмены.
Дополнительно проверьте дубли справочников. В типовых конфигурациях есть обработка «Поиск и удаление дублей» (раздел «Администрирование → Обслуживание»): она объединяет дублирующиеся элементы с заменой ссылок. Эффект по объёму небольшой, но порядок в данных упрощает дальнейшую свёртку.
Очистка версий объектов, истории и журнала регистрации
Версионирование объектов
Если включено версионирование документов и справочников, таблица версий может стать одной из самых больших в базе. Проверьте настройки: «Администрирование → Общие настройки → История изменений». Оставьте версионирование только для действительно критичных объектов, а срок хранения версий ограничьте разумным периодом. Старые версии очищаются регламентным заданием «Очистка устаревших версий объектов» либо вручную через «История изменений».
Журнал регистрации
Журнал регистрации в файловой базе хранится в отдельном каталоге, в клиент-серверной — в таблицах СУБД. Сократите его через «Администрирование → Обслуживание → Журнал регистрации → Сократить», указав дату, до которой удалить события. Предварительно сохраните журнал в файл, если он нужен для аудита. Также проверьте уровень регистрируемых событий: запись всех событий сильно раздувает журнал на активных базах.
Регистрация изменений для обменов
Узлы планов обмена накапливают регистрацию изменений. Если обмен с каким-то узлом больше не используется — удалите узел целиком, это очистит регистрацию. Для активных обменов регистрация снимается автоматически после успешной выгрузки; если номера сообщений «застряли», проверьте, проходят ли обмены штатно.
Свёртка базы: удаление старых документов и регистров
Свёртка — главный инструмент радикального уменьшения. Она удаляет документы и движения до указанной даты, формируя документы ввода остатков на начало периода. В типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP) есть штатная обработка «Свёртка информационной базы» в разделе «Администрирование → Обслуживание».
Порядок действий: закройте период, сформируйте и сверьте отчёты (ОСВ, анализы, взаиморасчёты), сделайте копию. Затем запустите свёртку, укажите дату и организации, дождитесь формирования остатков. После свёртки обязательно сверьте те же отчёты на дату свёртки — остатки до и после должны совпадать. Расхождения означают, что часть данных не попала в остатки (например, незакрытые заказы или «висящие» резервы).
Учтите ограничения: свёртка не трогает справочники, поэтому база уменьшится за счёт документов и регистров, но не «сожмётся до нуля». Документы ввода остатков могут быть объёмными. В некоторых конфигурациях свёртка не поддерживает отдельные механизмы (например, сложные расчёты зарплаты) — тогда для зарплатного участка используют перенос остатков специализированными обработками или начало учёта с новой базы.
- 1Сделайте резервную копию и проверьте её восстановление
- 2Сформируйте контрольные отчёты на дату свёртки и сохраните их
- 3Закройте кассовые смены, завершите обмены, отключите регламентные задания
- 4Запустите обработку свёртки в тестовой копии базы
- 5Сверьте остатки после свёртки с контрольными отчётами
- 6При успешной проверке повторите свёртку в рабочей базе в нерабочее время
- 7После свёртки выполните физическое сжатие базы
Физическое сжатие файловой и клиент-серверной базы
Файловая база (1Cv8.1CD)
Файловая база после удаления данных сама не уменьшается — освобождённое место остаётся внутри файла. Чтобы вернуть его, используйте один из способов: выгрузку базы в dt и загрузку обратно (самый надёжный), либо «Тестирование и исправление» в конфигураторе с включённой реструктуризацией и сжатием таблиц. Выгрузка-загрузка через dt дополнительно пересоздаёт индексы и часто ускоряет базу.
Клиент-серверная база
В MS SQL Server после удаления данных выполните сжатие: DBCC SHRINKDATABASE или сжатие отдельных файлов через Management Studio. Не включайте автосжатие (autoshrink) — оно фрагментирует индексы и портит производительность; сжатие делают разово после массового удаления. После shrink выполните перестроение индексов (rebuild), так как сжатие сильно фрагментирует таблицы.
В PostgreSQL обычный VACUUM не возвращает место системе — для этого нужен VACUUM FULL (требует блокировки таблицы и свободного места под копию) либо инструмент pg_repack. Планируйте эти операции на время, когда пользователи не работают.
DBCC SHRINKDATABASE (N'MyBase1C', 10);
ALTER INDEX ALL ON dbo._AccumRg12345 REBUILD;Когда проще начать с чистой базы и перенести остатки
Если конфигурация сильно доработана, свёртка не поддерживается или ошибок в данных много, практичнее развернуть новую чистую базу той же конфигурации и перенести в неё справочники и остатки. Для этого используют «Выгрузку-загрузку данных XML» (для идентичных конфигураций), типовые обработки переноса или конвертацию данных.
Этот путь трудоёмок: нужно перенести остатки по всем разделам учёта, настроить нумерацию, права и интеграции. Но результат — компактная база без накопленных ошибок. Старую базу сохраняют в архиве в режиме «только чтение» для доступа к истории.
Сравнение вариантов уменьшения базы
Быстро и безопасно, но уменьшает базу умеренно. Подходит как регулярное обслуживание.
Радикально уменьшает объём документов и регистров. Требует тщательной сверки остатков и поддержки конфигурацией.
Уменьшает файл без удаления данных. Не решает проблему роста — только освобождает место.
Максимально чистый результат, но самый трудоёмкий. Подходит для сильно доработанных или проблемных баз.
Как проверить результат и не допустить повторного роста
После всех операций зафиксируйте результат: размер файла базы или таблиц СУБД, время формирования типовых отчётов, время создания резервной копии. Сравните с показателями до чистки — это ваше доказательство эффекта и базовая точка для будущего мониторинга.
Чтобы база не разрослась снова, настройте регламент: регулярное удаление помеченных объектов, ограниченный срок хранения версий и журнала регистрации, контроль неиспользуемых узлов обмена, периодическую свёртку (для многих компаний достаточно раз в год или в два года). Следите за регламентными заданиями очистки — если они отключены или падают с ошибками, мусор копится незаметно.
Как проверить результат
Файл или таблицы заметно уменьшились после сжатия
Данные удалены, а размер не изменился — не выполнено физическое сжатие
Контрольные отчёты до и после совпадают
Расхождения — не все данные попали в остатки, нужен анализ
Отчёты и проведение документов выполняются без ошибок
Ошибки «Объект не найден» — были удалены используемые объекты
Очистка версий и истории выполняется по расписанию
Задания отключены — объём начнёт расти снова
Что важно запомнить
Уменьшение базы 1С — это последовательность: сначала удаление мусора и свёртка данных, затем физическое сжатие файлов. Всегда работайте через резервную копию и тестовый прогон, сверяйте остатки после свёртки и настройте регламентную очистку, чтобы проблема не вернулась.
Частые вопросы
Почему база 1С не уменьшилась после удаления документов?
Удаление данных лишь помечает место внутри файла или таблиц как свободное — физический размер не меняется. Для файловой базы выполните выгрузку в dt и загрузку обратно или тестирование и исправление со сжатием. Для клиент-серверной — shrink в СУБД с последующим перестроением индексов.
Можно ли просто удалить старые документы обработкой вместо свёртки?
Нет, это опасно. Документы связаны с движениями по регистрам: удаление документов без корректного формирования остатков приведёт к искажению остатков по складу, деньгам и взаиморасчётам. Используйте штатную свёртку — она формирует документы ввода остатков, сохраняя корректность учёта.
Как часто нужно делать свёртку базы?
Жёсткого правила нет: ориентируйтесь на объём и скорость роста базы. Многим организациям достаточно свёртки раз в один-два года, при активном документообороте — ежегодно. Промежуточный контроль обеспечивают регулярная очистка версий, журнала регистрации и помеченных объектов.
Что делать, если свёртка в моей конфигурации не поддерживается?
Для сильно доработанных или отраслевых решений штатная свёртка может отсутствовать или не учитывать специфические регистры. Варианты: использовать специализированные обработки свёртки под вашу конфигурацию, привлечь разработчика для написания переноса остатков или развернуть чистую базу и перенести в неё справочники и остатки.
Опасно ли сжатие (shrink) базы в MS SQL Server?
Разовое сжатие после массового удаления данных безопасно, но оно сильно фрагментирует индексы — сразу после shrink выполните их перестроение. Опасен именно постоянный autoshrink: он запускается автоматически, гоняет данные по файлу и ухудшает производительность. Оставляйте его выключенным.
Нужно ли уменьшать базу, если места на диске достаточно?
Да, если растёт не только файл, но и объём данных: большие таблицы замедляют отчёты, обновление конфигурации, резервное копирование и восстановление. Компактная база быстрее обслуживается и надёжнее в эксплуатации, поэтому регулярная чистка оправданна даже при свободном диске.