Очистка базы 1С от данных: все способы и порядок действий
Содержание
Очистить базу 1С можно четырьмя способами, и выбор зависит от того, что именно нужно убрать: отдельные документы — пометкой на удаление и обработкой Удаление помеченных объектов; старые движения с сохранением остатков — свёрткой информационной базы; весь учёт целиком — созданием новой чистой базы из шаблона. Напрямую через SQL данные в 1С не чистят — это ломает базу.
Ситуация знакомая: в рабочую базу залили пробные документы, тестовые контрагенты и номенклатура расплодились, а отчёты теперь считают мусор. Ниже — как удалить лишние данные из базы 1С 8.3 без потери рабочей информации, и чем отличаются способы для файловой и клиент-серверной базы.
Любая очистка необратима. Перед удалением данных сделайте резервную копию базы. Восстановить ошибочно удалённое можно только из неё.
С чего начать: копия и выбор способа
Сначала определитесь с масштабом. Убрать десяток лишних документов и вычистить всю базу под новый учёт — это разные операции с разным риском.
Сделайте резервную копию. Для файловой базы это Конфигуратор → Администрирование → Выгрузить информационную базу (файл .dt) либо простое копирование папки с файлом 1Cv8.1CD, когда в базе никто не работает
. Для клиент-серверной — выгрузка .dt или штатный бэкап средствами СУБД.
Проверьте дату запрета редактирования. Если в базе закрыты прошлые периоды (Администрирование → Настройки пользователей и прав → Даты запрета изменения), удалить документы
за закрытый период не выйдет, пока запрет не снят. После очистки запрет верните.
Оцените и права: удалять объекты и запускать удаление помеченных может только пользователь с соответствующими правами. Под обычной учётной записью с ограниченными правами часть операций будет недоступна — заходите с полными правами или от администратора.
Дальше выберите способ под свою задачу:
Пометка на удаление и удаление помеченных объектов
Это штатный и самый безопасный способ убрать конкретные объекты: документы, элементы справочников, счета, договоры. Удаление идёт в два шага — сначала пометка, потом физическое удаление с проверкой ссылок.
- Выделите объекты в списке, нажмите
Deleteили команду пометки на удаление в командной панели. У помеченных строк появится значок с крестиком. - Откройте
Администрирование → Обслуживание → Удаление помеченных объектов(в части конфигураций пункт лежит в разделеСервис). - Выберите режим: автоматический — программа сама найдёт все помеченные объекты, либо выборочный — вы отмечаете, что удалять.
- Запустите. Программа проверит, нет ли ссылок на удаляемые объекты в других документах.
Если на объект ссылаются (например, контрагент указан в проведённом документе), 1С удаление не выполнит и покажет список мест, где объект используется. Это защита от битых ссылок.
Нельзя удалить то, на что есть ссылки. Сначала распроведите или исправьте документы со ссылкой, затем повторите удаление. Для массовой замены ссылок на другой объект есть обработка Поиск и удаление дублей и групповая обработка.
В клиент-серверной базе удаление помеченных лучше запускать вне рабочего времени: при большом объёме операция грузит сервер и может надолго занять таблицы.
Свёртка информационной базы: убрать историю, оставить остатки
Свёртка нужна, когда база разрослась за годы, а старые документы уже не нужны — но терять текущие остатки нельзя. Механизм удаляет движения до выбранной даты и формирует документы ввода остатков на эту дату.
Что происходит при свёртке:
- 📅 Выбирается дата — всё, что было до неё, сворачивается.
- 📦 По регистрам (остатки товаров, взаиморасчёты, НДС) формируются документы ввода начальных остатков.
- 🗑️ Старые документы и их движения помечаются на удаление, затем удаляются.
- ✅ Остатки на дату свёртки остаются корректными — их можно сверить до и после.
Свёртку выполняют отдельной обработкой: в ряде конфигураций она встроена, иначе берут внешнюю обработку свёртки с диска ИТС. Порядок стандартный: сформировать документы ввода остатков → проверить, что остатки совпали с оборотно-сальдовой ведомостью → удалить старые документы.
Дату свёртки выбирают на начало закрытого периода — например, на 1 января. Движения внутри незакрытого месяца не сворачивают: иначе придётся заново проводить текущие документы. Чем дальше дата от сегодняшней, тем безопаснее операция.
Свёртку делают строго на копии сначала. Проверьте, что ОСВ, остатки на складах и сальдо по контрагентам после свёртки совпадают с исходными. Только убедившись — повторяйте на рабочей базе в монопольном режиме.
Свёртка не трогает справочники и настройки — контрагенты, номенклатура, учётная политика остаются на месте. Уходит только история операций.
Полная очистка: чистая база вместо сброса
Кнопки «удалить все данные разом» в типовых конфигурациях нет, и это правильно. Если нужно начать учёт с нуля, не вычищайте рабочую базу — создайте новую чистую из того же шаблона.
Порядок такой:
- В окне запуска 1С нажмите
Добавить → Создание новой информационной базы. - Выберите
Создание информационной базы из шаблонаи ту же конфигурацию и релиз, что у рабочей базы. - Укажите каталог и язык. Получите пустую базу, где нужно пройти стартовый помощник и заполнить организацию.
Нужные справочники (контрагенты, номенклатуру, сотрудников) переносят из старой базы обработкой Выгрузка загрузка данных XML — она сохраняет ссылки и реквизиты. Так в новой базе остаётся только актуальная нормативно-справочная информация без груза старых документов.
Остатки в чистую базу вводят документами ввода начальных остатков на дату старта — так же, как при первичном внедрении. Это дольше, чем свёртка, зато вы получаете заведомо чистую базу без следов прежнего учёта и накопленных ошибок проведения.
Для тестовой базы, которую не жалко, есть универсальная обработка удаления данных (поставляется на диске ИТС). Она чистит объекты выбранных типов, игнорируя ссылочную целостность, поэтому для рабочих баз не годится — оставит битые ссылки. Применяйте её только к копиям для разработки и демонстраций.
Очистка на сервере: консоль кластера и почему не через SQL
Частое заблуждение — что клиент-серверную базу чистят «на сервере, через консоль или SQL». Это не так.
Консоль администрирования серверов 1С (rac, консоль кластера) управляет кластером, рабочими процессами и сеансами пользователей. Данные в прикладной базе она не удаляет — это не её задача. Через неё можно завершить зависшие сеансы перед очисткой, но не более.
Прямое удаление строк в таблицах СУБД (DELETE, TRUNCATE в MS SQL или PostgreSQL) — опасная ошибка. 1С хранит данные в десятках связанных таблиц: движения, итоги регистров, служебные таблицы ссылок. Ручное вмешательство в SQL:
- рассогласует итоги и остатки — отчёты начнут врать;
- оставит «висячие» ссылки, которые уронят проведение документов;
- снимает базу с официальной поддержки — такую конфигурацию не примут в сопровождение.
Перед тяжёлой очисткой удобно завершить зависшие сеансы. Список активных сеансов смотрят командой rac session list, а управление кластером — через rac cluster list; точный набор параметров подскажет rac help. Завершать чужие сеансы стоит с предупреждением: у пользователя оборвётся несохранённая работа.
Вывод: клиент-серверную базу чистят теми же прикладными средствами, что и файловую — пометкой на удаление, свёрткой или созданием чистой базы. Разница только в бэкапе (через СУБД) и в том, что тяжёлые операции запускают в нерабочее время, когда в базе никого нет.
Как освободить место на диске после удаления
После удаления документов файл базы часто не уменьшается — место, которое занимали данные, остаётся «зарезервированным». Чтобы реально вернуть его, нужна отдельная операция.
| Тип базы | Что сделать | Где |
|---|---|---|
| Файловая | Тестирование и исправление с опцией сжатия таблиц | Конфигуратор → Администрирование → Тестирование и исправление |
| Клиент-серверная | Переиндексация и обновление статистики; при необходимости — сжатие на уровне СУБД | Средствами MS SQL / PostgreSQL |
Для файловой базы откройте Конфигуратор → Администрирование → Тестирование и исправление информационной базы и включите флаг сжатия таблиц информационной базы. После прогона файл 1Cv8.1CD уменьшится.
Тестирование и исправление требует монопольного доступа — все пользователи должны выйти из базы, фоновые задания остановлены. Запускайте только с готовой резервной копией.
Для клиент-серверной базы место освобождает СУБД. После массового удаления стоит обновить статистику и переиндексировать таблицы. Сжатие файла данных (shrink) делает администратор СУБД, и без явной необходимости его не гоняют — операция фрагментирует индексы и может замедлить базу.
Как не засорять базу повторно
Чистить базу раз в год проще, чем выгребать мусор после каждого квартала. Несколько привычек снимают проблему в корне:
- 🧪 Держите тесты отдельно. Пробные документы и обучение новых сотрудников — в копии базы, а не в рабочей. Копию потом просто удаляют целиком.
- 🔐 Ограничьте права на удаление. Рядовым пользователям право пометки на удаление часто не нужно. Чем меньше людей может плодить и удалять объекты, тем чище база.
- 📆 Закрывайте периоды датой запрета. Закрытый месяц нельзя случайно изменить или захламить задним числом.
- 🗂️ Чистите дубли вовремя. Обработка
Поиск и удаление дублейраз в квартал убирает повторных контрагентов и номенклатуру, пока их мало и ссылок на них немного.
Такой подход избавляет от необходимости массовых чисток и свёрток — база не разрастается бесконтрольно.
Типичные ошибки при очистке базы
Разберём, на чём чаще спотыкаются, кроме уже описанных шагов:
- 🔗 Удаление не идёт — «на объект есть ссылки». Это не сбой, а защита. Откройте карточку объекта, найдите ссылки на него и уберите их: распроведите документы, замените значение в реквизитах.
- 📉 После свёртки «поехали» остатки. Значит, входящие остатки не сверили. Сворачивайте только после того, как ОСВ на дату совпала в копии.
- 💾 Удалили, а диск не освободился. Физическое удаление данных и возврат места — разные операции. Нужно сжатие таблиц (файловая) или работа на уровне СУБД (серверная).
- ⛔ Удалили лишнее. Отмены нет. Единственный путь — восстановление из резервной копии , поэтому копия обязательна до начала.
- 👥 Операция виснет в рабочее время. Свёртку, удаление помеченных и тестирование запускают, когда в базе никто не работает, иначе блокируются таблицы и обрываются чужие сеансы.
Ещё одна частая путаница — считать, что пометка на удаление уже освобождает место. Пока вы не запустили Удаление помеченных объектов, помеченные данные физически в базе и попадают в некоторые отчёты. Пометка — это только первый шаг.