Удаляем все данные из базы 1С 8.3: безопасные способы
Содержание
Кнопки «удалить все данные одним кликом» в 1С 8.3 нет, и это защищает от катастрофы. Чтобы полностью очистить базу и получить чистую копию с той же конфигурацией, есть надёжный путь: выгрузить конфигурацию в файл .cf, создать новую пустую базу и загрузить конфигурацию
обратно. Если нужно убрать документы, но сохранить справочники, настройки и остатки — применяют свёртку информационной базы.
Частое заблуждение — что «очистить базу» это просто пометить всё на удаление и удалить. Пометка на удаление не берёт всё: платформа не даст удалить объект, на который ссылаются другие записи. Поэтому полная очистка — это либо новая база из вашей конфигурации, либо продуманная обработка, а не массовая пометка списка.
Какой способ выбрать под вашу задачу
Прежде чем удалять данные , определитесь, что именно нужно на выходе. От этого зависит и метод, и трудоёмкость.
.cf и загрузить её в новую пустую базу. Данных не останется совсем, настройки и справочники тоже уйдут.Три задачи — три разных инструмента. Коротко разница между ними:
| Способ | Что остаётся в базе | Когда применять | Главный риск |
|---|---|---|---|
Новая база из .cf | Только конфигурация, данных нет | Нужна чистая база с нуля | Потеря всех настроек и справочников |
| Свёртка базы | Справочники, настройки, остатки | База разрослась, история не нужна | Неверные остатки, если не сверить |
| Пометка на удаление | Всё, кроме помеченного | Точечная чистка лишних объектов | Связанные объекты не удалятся |
| Внешняя обработка | Всё, кроме удалённого кодом | Массовое удаление документов | Битые ссылки без контроля целостности |
Дальше разберём каждый способ, начиная с подготовки, без которой любой из них опасен.
Что сделать до очистки базы
Любая очистка необратима в рамках самой базы. Вернуть данные можно только из резервной копии, поэтому копия — первый и обязательный шаг.
Для файловой базы копию снимают в Конфигураторе: Администрирование → Выгрузить информационную базу…, результат — файл .dt. Для клиент-серверного варианта с большой базой .dt выгружается долго, надёжнее бэкап штатными средствами СУБД (например, резервная копия базы
в SQL Server).
Загрузка .dt, загрузка конфигурации и обновление структуры базы требуют монопольного доступа. Все активные сеансы будут завершены, несохранённые данные пользователей потеряются. Делайте это, когда в базе никого нет, и предупредите коллег заранее.
Не начинайте очистку, пока не убедились, что резервная копия создана и открывается. Проверить копию просто: разверните её в отдельную пустую базу и откройте.
Пустая база из вашей конфигурации — самый безопасный путь
Этот способ даёт гарантированно чистую базу: данных нет совсем, а структура, формы и отчёты — те же, что в рабочей. Конфигурация и данные в 1С хранятся раздельно, поэтому конфигурацию можно перенести без единой записи.
Порядок действий:
- В Конфигураторе рабочей базы откройте
Конфигурация → Сохранить конфигурацию в файл…и сохраните файл.cf. - В окне запуска 1С нажмите «Добавить» → «Создание новой информационной базы» → вариант создания базы без конфигурации (пустой).
- Откройте новую базу в Конфигураторе и выполните
Конфигурация → Загрузить конфигурацию из файла…, укажите сохранённый.cf. - Обновите конфигурацию базы данных — команда
Обновить конфигурацию базы данных(клавишаF7). Платформа создаст все таблицы структуры. - Запустите базу в режиме 1С:Предприятие. База открывается пустой, с вашей конфигурацией.
При первом входе типовые конфигурации предлагают начальное заполнение: классификаторы, предопределённые значения, помощник ввода реквизитов организации. Это нормально — заполняются только служебные данные, ваших документов в базе нет.
Не путайте два файла. .cf — это только конфигурация без данных, именно он нужен для чистой базы. .dt — выгрузка всей базы вместе с данными; если загрузить .dt, вернутся и все документы, то есть очистки не произойдёт. Для пустой базы работайте с .cf.
Метод работает одинаково для Бухгалтерии предприятия 3.0, ЗУП 3.1, Управления торговлей 11 и других конфигураций на платформе 8.3 — он не зависит от прикладного решения, потому что опирается на механизм платформы, а не на меню конкретной программы.
Свёртка базы: убрать документы, оставить справочники и остатки
Свёртка нужна, когда база разрослась за годы, тормозит, а начинать с нуля нельзя — справочники и остатки должны остаться. Свёртка удаляет документы и их движения до указанной даты и формирует входящие остатки на эту дату отдельными документами ввода остатков.
Свёртка выполняется специализированной обработкой «Свёртка информационной базы», которую распространяет 1С. Её открывают через Файл → Открыть как внешнюю обработку
; в части конфигураций аналогичный сервис встроен в меню обслуживания.
Общий порядок работы обработки:
- Выбрать организацию и дату, на которую формируются остатки.
- Сформировать документы ввода остатков по регистрам (взаиморасчёты, склад, бухгалтерские счета).
- Проверить получившиеся остатки — сверить с оборотно-сальдовой ведомостью до свёртки.
- Удалить старые документы и движения, которые закрыты сформированными остатками.
Свёртку всегда отрабатывайте сначала на копии базы. На этой копии сверьте остатки и отчётность за закрытые периоды, и только убедившись, что цифры сошлись, повторяйте операцию на рабочей базе.
Остатки формируются по основным учётным регистрам: взаиморасчёты с контрагентами, товары на складах, денежные средства, остатки по счетам бухгалтерского учёта. Документы ввода остатков датируются выбранной датой свёртки, поэтому обороты до неё в отчётах больше не показываются — видны только входящие остатки.
Результат свёртки — не пустая база, а база с нулевой историей документов и корректными остатками. Это ключевое отличие от способа с новой базой: справочники, пользователи, права и настройки сохраняются, и работать в базе можно сразу после проверки остатков.
Пометка на удаление и контроль ссылочной целостности
Когда нужно вычистить не всё, а конкретные объекты — лишние документы, задвоенных контрагентов, тестовую номенклатуру — работают через пометку на удаление. Платформа удаляет такие объекты только после проверки связей.
Как пометить группу объектов:
- В списке выделите нужные строки (все — сочетанием
Ctrl+A). - В командной панели списка откройте меню
Ещёи выберитеПометить на удаление / Снять пометку.
Как удалить помеченное
: Администрирование → Обслуживание → Удаление помеченных объектов. Обработка сначала ищет ссылки на помеченные объекты и показывает, что чему мешает.
Контроль ссылочной целостности — это не помеха, а защита. Если на справочник ссылается хоть один непомеченный документ, платформа не удалит справочник и покажет, где он используется. Поэтому удаляют в правильном порядке: сначала документы, потом регистры сведений, потом справочники.
Правильный порядок снимает большинство отказов: документы ссылаются на справочники, а не наоборот, поэтому удаление документов открывает возможность удалить и ненужные справочники. Если удаление зависло на одном объекте — откройте по кнопке проверки список ссылок на него и разберитесь с каждой.
Именно из-за этой проверки пометка на удаление не годится для полной очистки базы: вычистить всё до нуля пометкой почти невозможно — всегда останутся связанные цепочки предопределённых и системных данных. Для полностью пустой базы вернитесь к способу с конфигурацией.
Автоматическая очистка внешней обработкой
Если нужно удалить все документы определённых видов разом (например, все реализации и все поступления), а пометка-удаление слишком долгая, задачу решают внешней обработкой. Это код, который перебирает объекты и удаляет их напрямую.
Минимальный пример — удаление всех документов одного вида:
Выборка = Документы.РеализацияТоваровУслуг.Выбрать();
Пока Выборка.Следующий() Цикл
Выборка.ПолучитьОбъект().Удалить();
КонецЦикла;
Метод Удалить() удаляет объект немедленно, без проверки ссылочной целостности. Это и быстрее, и опаснее пометки: если на документ ссылались другие записи, появятся битые ссылки. Движения по регистрам, где документ является регистратором, удаляются вместе с ним — отдельно их чистить не нужно.
Сложнее с независимыми регистрами сведений и с последовательностями документов: их данные не привязаны к регистратору, поэтому требуют отдельной обработки. Здесь код заметно усложняется, и ошибка оставит базу в противоречивом состоянии.
Если итог — всё равно пустая база, не пишите обработку удаления всего подряд. Способ с выгрузкой конфигурации в .cf и новой базой даёт тот же результат быстрее и без риска битых ссылок.
Обработку запускайте только на копии, силами разработчика или администратора, который понимает структуру прикладного решения. На рабочей базе — лишь после проверки на копии.
Почему прямое удаление через SQL ломает базу
Соблазн очистить базу напрямую через SQL (DELETE или TRUNCATE по таблицам) возникает у тех, кто привык работать с СУБД. В случае 1С это почти гарантированный способ получить неработающую базу.
Платформа хранит данные в таблицах с системными именами вида _Reference123, _Document456, _AccumRgT789. Соответствие этих имён объектам конфигурации знает только платформа, и оно меняется при реструктуризации. Прямое удаление строк:
- оставляет битые ссылки в других таблицах, которые платформа считает корректными;
- рассинхронизирует таблицы итогов и агрегатов с таблицами движений;
- оставляет записи в служебных механизмах (нумерация, последовательности), которые вы не видите из SQL.
После такого «быстрого» удаления база, скорее всего, не пройдёт тестирование и исправление, а часть отчётов начнёт считать неверно. chdbfl.exe и штатное тестирование чинят физическую структуру файла, но не восстановят логические дыры, которые вы пробили в данных.
Не удаляйте и не правьте строки в таблицах 1С напрямую через SQL. Единственное допустимое обращение к СУБД — резервное копирование
и восстановление базы целиком штатными средствами, а не ручной DELETE отдельных записей.
После очистки: проверка и первичная настройка
Когда данные удалены любым из способов, базу стоит проверить и подготовить к работе, иначе часть механизмов останется в промежуточном состоянии.
Что сделать:
- Запустите тестирование и исправление: в Конфигураторе
Администрирование → Тестирование и исправление, для файловой базы на всякий случай прогонитеchdbfl.exe. - Проверьте, что отчёты (оборотно-сальдовая ведомость, остатки на складах) пустые или показывают только введённые остатки.
- Заполните реквизиты заново: найдите справочник «Организации» (обычно в разделе
ГлавноеилиНастройки), затем настройки учётной политики. - Если база пойдёт в работу — введите начальные остатки документами ввода остатков и проверьте нумерацию документов.
После полной очистки нумерация документов обычно начинается заново. Если нужна сквозная нумерация с определённого номера, задайте её в настройках нумерации до ввода первых документов.
Отдельно проверьте пользователей и права. При способе с новой базой список пользователей очищается, и первый вход выполняется без ограничений — сразу заведите учётные записи и назначьте роли. При свёртке пользователи остаются, менять ничего не нужно.
На этом база готова: либо полностью чистая под новое юрлицо, либо с остатками после свёртки.
Частые вопросы
Можно ли вернуть данные после полной очистки базы?
Удаляется ли конфигурация, когда я чищу данные?
.cf и новой базой конфигурация переносится целиком, а данных не остаётся.Очистит ли базу «Тестирование и исправление»?
Нужен ли монопольный доступ для очистки?
.dt, загрузки конфигурации и обновления структуры — да, сеансы пользователей будут завершены. Для пометки на удаление монопольный доступ не обязателен, но удалять помеченное лучше, когда в базе никто не работает.