Администрирование · 13 мин
Как почистить базу 1С: безопасные способы и порядок действий
Как почистить базу 1С: тестирование и исправление, сжатие таблиц, удаление помеченных объектов, свёртка и архивация. Пошаговые инструкции и меры безопасности.
Со временем любая база 1С разрастается: накапливаются документы прошлых лет, помеченные на удаление объекты, исторические регистры, временные файлы и следы обменов. Результат — медленная работа, долгие бэкапы, ошибки при обновлении и риск упираться в ограничения файлового формата. Чистка базы решает эти проблемы, но требует аккуратности: неправильные действия могут привести к потере данных.
Под «чисткой» обычно понимают несколько разных операций: удаление помеченных объектов, тестирование и исправление, сжатие таблиц, свёртку старых периодов, очистку регистров сведений и уменьшение файла базы на уровне СУБД. У каждой операции своя цель, свои риски и свой порядок выполнения. Ниже разобраны основные сценарии для файловых и клиент-серверных баз.
Главное правило, которое действует всегда: перед любой чисткой делается резервная копия, а деструктивные операции выполняются в монопольном режиме, когда пользователи вышли из базы. Это не формальность — восстановление после неудачного удаления без копии часто невозможно.
Подготовка: резервная копия и монопольный доступ
Любая чистка начинается с копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD при закрытой программе или сделать выгрузку в dt через конфигуратор (меню «Администрирование» → «Выгрузить информационную базу»). Для клиент-серверной базы делается выгрузка dt либо штатный бэкап средствами СУБД (MS SQL, PostgreSQL).
Выгрузка в dt предпочтительнее простого копирования файла: она выполняется средствами платформы и лучше переносится между версиями. После создания копии её стоит проверить — загрузить dt в пустую базу и убедиться, что база открывается. Непроверенная копия может оказаться битой именно в тот момент, когда она понадобится.
Второй шаг — обеспечить монопольный доступ. Все пользователи должны выйти из базы, фоновые задания и регламентные операции нужно остановить. В конфигураторе это видно по списку активных сеансов («Администрирование» → «Активные пользователи»). Если чистку прервать на середине из-за открытых сеансов, база может остаться в несогласованном состоянии.
Удаление помеченных объектов
В 1С объекты не удаляются сразу — сначала они помечаются на удаление, а физическое удаление выполняется отдельной операцией. За годы работы в базе скапливаются тысячи помеченных документов, элементов справочников и записей, которые занимают место и замедляют запросы.
В типовых конфигурациях операция находится в разделе «Администрирование» → «Обслуживание» → «Удаление помеченных объектов». Доступны два режима: автоматическое удаление всех помеченных объектов и выборочное, где можно отметить конкретные виды объектов. Для первой чистки разумно выбрать выборочный режим и посмотреть, что именно накопилось.
Главное ограничение операции — ссылочная целостность. Если на помеченный объект ссылаются другие объекты, платформа не даст его удалить и покажет список ссылающихся элементов. Их нужно либо отредактировать (заменить ссылку), либо тоже пометить на удаление. Массовые «неудаляемые» объекты — признак того, что в базе есть активные документы, ссылающиеся на старые данные, и удалять их вслепую не стоит.
- 1Сделайте резервную копию и убедитесь в монопольном доступе
- 2Откройте «Администрирование» → «Обслуживание» → «Удаление помеченных объектов»
- 3Выберите режим: полный или выборочный
- 4Запустите удаление и дождитесь списка объектов, которые не удалось удалить
- 5Разберите ссылки на неудалённые объекты и повторите операцию
- 6Проверьте, что рабочие данные на месте: откройте ключевые документы и отчёты
Тестирование и исправление базы
Тестирование и исправление — штатный инструмент конфигуратора для проверки физической и логической целостности базы. Запускается через «Администрирование» → «Тестирование и исправление» и требует монопольного режима. Это основной способ устранить ошибки структуры после сбоев, обрывов питания и некорректных обновлений.
Доступные проверки: реиндексация таблиц, проверка логической целостности, проверка ссылочной целостности, пересчёт итогов, сжатие таблиц и реструктуризация. Для плановой чистки обычно достаточно реиндексации, проверки логической целостности и сжатия. Реструктуризация и исправление ссылочной целостности — более тяжёлые операции, их запускают при наличии конкретных ошибок.
При проверке ссылочной целостности есть выбор, что делать с объектами, у которых потеряны ссылки: создавать объекты, очищать ссылки или не изменять. Безопасный вариант — «не изменять» и сначала изучить протокол: массовая «очистка ссылок» может удалить данные, которые ещё можно восстановить.
Сжатие таблиц и уменьшение размера базы
Удаление объектов само по себе не уменьшает файл базы: освобождённое место остаётся зарезервированным внутри файла. В файловом варианте физическое уменьшение выполняет пункт «Сжатие таблиц информационной базы» в тестировании и исправлении. После массового удаления помеченных объектов или свёртки сжатие может заметно сократить размер 1Cv8.1CD.
В клиент-серверных базах уменьшение файлов делается средствами СУБД. Для MS SQL это операции shrink для файлов данных и журнала, для PostgreSQL — VACUUM FULL или pg_repack. Важно понимать: shrink в MS SQL фрагментирует индексы, поэтому после него нужна реиндексация. Регулярное сжатие «на всякий случай» не нужно — его делают после крупных удалений.
Отдельный источник роста — журнал транзакций в MS SQL при полной модели восстановления. Если журнал разросся, проверьте модель восстановления базы: для многих учётных баз достаточно простой (Simple) модели с регулярными полными бэкапами, при которой журнал не раздувается.
Свёртка базы и архивация старых периодов
Свёртка — это замена документов прошлых периодов документами ввода остатков на дату свёртки. Например, все движения до начала прошлого года удаляются, а на начало периода формируются остатки по товарам, расчётам, денежным средствам и другим разделам. Это самый радикальный способ уменьшить базу и ускорить её работу.
В типовых конфигурациях (например, «1С:Бухгалтерия») есть обработка «Свёртка информационной базы», которая пошагово проводит операцию: анализ остатков, формирование документов ввода остатков, удаление старых документов. Перед свёрткой нужно закрыть период, сверить отчёты и зафиксировать контрольные цифры — оборотно-сальдовую ведомость, остатки по складу, взаиморасчёты.
После свёртки обязательна проверка: остатки на дату свёртки должны совпадать с остатками до свёртки по всем разделам учёта. Расхождения обычно возникают из-за непроведённых документов, ручных операций и незакрытых регистров. Практика, которая снимает большинство проблем: сначала выполнить свёртку на копии базы, сверить результаты и только потом повторить на рабочей.
Старые данные при этом не должны исчезнуть бесследно: копия базы до свёртки сохраняется как архив, к которому можно обратиться для налоговой проверки или поиска старого документа. Храните такие архивные копии с понятными подписями — конфигурация, версия, дата свёртки.
Как проверить результат свёртки
Совпадают с оборотно-сальдовой ведомостью до свёртки
Расхождения по счетам или субконто
Количество и суммы совпадают с отчётом до свёртки
Отрицательные или отсутствующие остатки
Задолженность по каждому контрагенту совпадает
Свернутые «комком» суммы без детализации там, где она нужна
Документы текущего периода проводятся без ошибок
Ошибки проведения, ссылки на удалённые объекты
Очистка регистров, версий объектов и служебных данных
Значительную часть объёма часто занимают не документы, а вспомогательные данные. В типовых конфигурациях это версии объектов (если включено версионирование), история переписки, сохранённые варианты отчётов, данные обменов, очереди заданий и служебные регистры сведений. Их рост почти незаметен, пока база не начнёт тормозить.
Начните с анализа: в типовых конфигурациях на подсистеме БСП есть обработки оценки объёма данных, а для самостоятельной проверки подойдёт просмотр размеров таблиц средствами СУБД. Частые «тяжёлые» места: регистр сведений «Версии объектов», данные синхронизации, удалённые сообщения обменов, журналы регистрации большого объёма.
Журнал регистрации тоже можно сократить: в конфигураторе «Администрирование» → «Журнал регистрации» → «Сократить» позволяет удалить события старше указанной даты. Для файловых баз это заметно уменьшает каталог базы. Настройте также уровень регистрируемых событий, чтобы журнал не разрастался снова.
Что выбрать для уменьшения базы
Первый шаг всегда. Безопасно при разборе ссылок, но обычно даёт умеренный эффект
Не удаляет данные, только уменьшает файл. Делать после крупных удалений
Максимальный эффект по объёму и скорости, но требует проверки остатков и архивной копии
Хорошо работает при включённом версионировании и активных обменах; требует понимания, какие данные не нужны
Регламент: как не дать базе разрастись снова
Разовая чистка решает проблему на месяцы, но без регламента база вернётся к прежнему состоянию. Настройте регулярные операции: автоматическое удаление помеченных объектов по расписанию (в типовых конфигурациях есть такая настройка), ограничение срока хранения версий объектов, периодическое сокращение журнала регистрации.
Для клиент-серверных баз добавьте регламентные задания СУБД: обновление статистики, реиндексацию по расписанию, контроль размера журнала транзакций и регулярные бэкапы с проверкой восстановления. Эти операции поддерживают производительность постоянно, а не только после аварийной чистки.
Разумная периодичность для большинства баз: удаление помеченных объектов — еженедельно или ежемесячно, тестирование с реиндексацией — ежемесячно в нерабочее время, свёртка — раз в год после закрытия отчётности. Контролируйте динамику: если база растёт аномально быстро, ищите источник (обмены, версионирование, фоновые задания), а не просто чистите чаще.
Как выбрать действие
Частые вопросы
Можно ли чистить базу, пока пользователи работают?
Нет. Удаление помеченных объектов, тестирование и исправление, сжатие и свёртка требуют монопольного режима. Работа пользователей в этот момент либо заблокирует операцию, либо приведёт к несогласованным данным. Планируйте чистку на нерабочее время и заранее предупреждайте сотрудников.
Удалил помеченные объекты, а размер базы не изменился. Почему?
Это нормально: удалённые записи освобождают место внутри файла, но сам файл не уменьшается. Чтобы вернуть место системе, выполните сжатие таблиц в тестировании и исправлении (для файловой базы) или shrink средствами СУБД (для клиент-серверной).
Чем выгрузка в dt отличается от копирования файла базы?
Выгрузка в dt выполняется средствами платформы и содержит данные в переносимом виде — её можно загрузить на другой версии платформы или после изменения структуры. Копирование файла 1Cv8.1CD быстрее, но привязано к текущему состоянию формата. Для архивации перед свёрткой надёжнее dt, для быстрой копии перед чисткой подходят оба способа.
Что делать, если при удалении объекта платформа показывает список ссылок на него?
Откройте список объектов, которые ссылаются на удаляемый. Для каждого решите: заменить ссылку на актуальную, пометить ссылающийся объект на удаление или оставить всё как есть. Массовое удаление «силой» через сторонние обработки без разбора ссылок приводит к битым ссылкам в рабочих документах.
Нужно ли делать свёртку каждый год?
Нет, свёртка нужна по факту: когда база стала заметно медленнее, объём мешает бэкапам и обновлениям, а старые периоды не используются в ежедневной работе. Многие организации сворачивают базу раз в несколько лет. Обязательное условие — закрытый период и сохранённая архивная копия до свёртки.
Безопасно ли пользоваться сторонними обработками для чистки?
Только если вы понимаете, что именно делает обработка, и запускаете её сначала на копии. Обработки, удаляющие объекты в обход контроля ссылочной целостности или напрямую чистящие таблицы, способны необратимо повредить данные. Штатные средства конфигуратора и типовых конфигураций закрывают большинство задач чистки.
Что важно запомнить
Чистка базы 1С — это последовательность: проверенная резервная копия, монопольный режим, удаление помеченных объектов, тестирование с реиндексацией и сжатием, при необходимости — свёртка старых периодов с обязательной сверкой остатков. Закрепите результат регламентными операциями, чтобы база не разрасталась снова.