Удаляем все данные из базы 1С 8.3: безопасные способы

· 9 мин

Содержание

Кнопки «удалить все данные одним кликом» в 1С 8.3 нет, и это защищает от катастрофы. Чтобы полностью очистить базу и получить чистую копию с той же конфигурацией, есть надёжный путь: выгрузить конфигурацию в файл .cf, создать новую пустую базу и загрузить конфигурацию обратно. Если нужно убрать документы, но сохранить справочники, настройки и остатки — применяют свёртку информационной базы.

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

Какой способ выбрать под вашу задачу

Прежде чем удалять данные , определитесь, что именно нужно на выходе. От этого зависит и метод, и трудоёмкость.

Что именно нужно очистить в базе 1С?

Три задачи — три разных инструмента. Коротко разница между ними:

СпособЧто остаётся в базеКогда применятьГлавный риск
Новая база из .cfТолько конфигурация, данных нетНужна чистая база с нуляПотеря всех настроек и справочников
Свёртка базыСправочники, настройки, остаткиБаза разрослась, история не нужнаНеверные остатки, если не сверить
Пометка на удалениеВсё, кроме помеченногоТочечная чистка лишних объектовСвязанные объекты не удалятся
Внешняя обработкаВсё, кроме удалённого кодомМассовое удаление документовБитые ссылки без контроля целостности

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

Что сделать до очистки базы

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

Перед очисткой базы 1С
Выполнено: 0 / 5

Для файловой базы копию снимают в Конфигураторе: Администрирование → Выгрузить информационную базу…, результат — файл .dt. Для клиент-серверного варианта с большой базой .dt выгружается долго, надёжнее бэкап штатными средствами СУБД (например, резервная копия базы в SQL Server).

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

Не начинайте очистку, пока не убедились, что резервная копия создана и открывается. Проверить копию просто: разверните её в отдельную пустую базу и откройте.

Пустая база из вашей конфигурации — самый безопасный путь

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

Порядок действий:

  1. В Конфигураторе рабочей базы откройте Конфигурация → Сохранить конфигурацию в файл… и сохраните файл .cf.
  2. В окне запуска 1С нажмите «Добавить» → «Создание новой информационной базы» → вариант создания базы без конфигурации (пустой).
  3. Откройте новую базу в Конфигураторе и выполните Конфигурация → Загрузить конфигурацию из файла…, укажите сохранённый .cf.
  4. Обновите конфигурацию базы данных — команда Обновить конфигурацию базы данных (клавиша F7). Платформа создаст все таблицы структуры.
  5. Запустите базу в режиме 1С:Предприятие. База открывается пустой, с вашей конфигурацией.

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

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

Метод работает одинаково для Бухгалтерии предприятия 3.0, ЗУП 3.1, Управления торговлей 11 и других конфигураций на платформе 8.3 — он не зависит от прикладного решения, потому что опирается на механизм платформы, а не на меню конкретной программы.

Свёртка базы: убрать документы, оставить справочники и остатки

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

Свёртка выполняется специализированной обработкой «Свёртка информационной базы», которую распространяет 1С. Её открывают через Файл → Открыть как внешнюю обработку ; в части конфигураций аналогичный сервис встроен в меню обслуживания.

Общий порядок работы обработки:

  1. Выбрать организацию и дату, на которую формируются остатки.
  2. Сформировать документы ввода остатков по регистрам (взаиморасчёты, склад, бухгалтерские счета).
  3. Проверить получившиеся остатки — сверить с оборотно-сальдовой ведомостью до свёртки.
  4. Удалить старые документы и движения, которые закрыты сформированными остатками.

Свёртку всегда отрабатывайте сначала на копии базы. На этой копии сверьте остатки и отчётность за закрытые периоды, и только убедившись, что цифры сошлись, повторяйте операцию на рабочей базе.

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

Результат свёртки — не пустая база, а база с нулевой историей документов и корректными остатками. Это ключевое отличие от способа с новой базой: справочники, пользователи, права и настройки сохраняются, и работать в базе можно сразу после проверки остатков.

Пометка на удаление и контроль ссылочной целостности

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

Как пометить группу объектов:

  • В списке выделите нужные строки (все — сочетанием Ctrl+A).
  • В командной панели списка откройте меню Ещё и выберите Пометить на удаление / Снять пометку.

Как удалить помеченное : Администрирование → Обслуживание → Удаление помеченных объектов. Обработка сначала ищет ссылки на помеченные объекты и показывает, что чему мешает.

Контроль ссылочной целостности — это не помеха, а защита. Если на справочник ссылается хоть один непомеченный документ, платформа не удалит справочник и покажет, где он используется. Поэтому удаляют в правильном порядке: сначала документы, потом регистры сведений, потом справочники.

Правильный порядок снимает большинство отказов: документы ссылаются на справочники, а не наоборот, поэтому удаление документов открывает возможность удалить и ненужные справочники. Если удаление зависло на одном объекте — откройте по кнопке проверки список ссылок на него и разберитесь с каждой.

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

Автоматическая очистка внешней обработкой

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

Минимальный пример — удаление всех документов одного вида:

Выборка = Документы.РеализацияТоваровУслуг.Выбрать();
Пока Выборка.Следующий() Цикл
    Выборка.ПолучитьОбъект().Удалить();
КонецЦикла;

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

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

Если итог — всё равно пустая база, не пишите обработку удаления всего подряд. Способ с выгрузкой конфигурации в .cf и новой базой даёт тот же результат быстрее и без риска битых ссылок.

Обработку запускайте только на копии, силами разработчика или администратора, который понимает структуру прикладного решения. На рабочей базе — лишь после проверки на копии.

Почему прямое удаление через SQL ломает базу

Соблазн очистить базу напрямую через SQL (DELETE или TRUNCATE по таблицам) возникает у тех, кто привык работать с СУБД. В случае 1С это почти гарантированный способ получить неработающую базу.

Платформа хранит данные в таблицах с системными именами вида _Reference123, _Document456, _AccumRgT789. Соответствие этих имён объектам конфигурации знает только платформа, и оно меняется при реструктуризации. Прямое удаление строк:

  • оставляет битые ссылки в других таблицах, которые платформа считает корректными;
  • рассинхронизирует таблицы итогов и агрегатов с таблицами движений;
  • оставляет записи в служебных механизмах (нумерация, последовательности), которые вы не видите из SQL.

После такого «быстрого» удаления база, скорее всего, не пройдёт тестирование и исправление, а часть отчётов начнёт считать неверно. chdbfl.exe и штатное тестирование чинят физическую структуру файла, но не восстановят логические дыры, которые вы пробили в данных.

Не удаляйте и не правьте строки в таблицах 1С напрямую через SQL. Единственное допустимое обращение к СУБД — резервное копирование и восстановление базы целиком штатными средствами, а не ручной DELETE отдельных записей.

После очистки: проверка и первичная настройка

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

Что сделать:

  1. Запустите тестирование и исправление: в Конфигураторе Администрирование → Тестирование и исправление, для файловой базы на всякий случай прогоните chdbfl.exe.
  2. Проверьте, что отчёты (оборотно-сальдовая ведомость, остатки на складах) пустые или показывают только введённые остатки.
  3. Заполните реквизиты заново: найдите справочник «Организации» (обычно в разделе Главное или Настройки), затем настройки учётной политики.
  4. Если база пойдёт в работу — введите начальные остатки документами ввода остатков и проверьте нумерацию документов.

После полной очистки нумерация документов обычно начинается заново. Если нужна сквозная нумерация с определённого номера, задайте её в настройках нумерации до ввода первых документов.

Отдельно проверьте пользователей и права. При способе с новой базой список пользователей очищается, и первый вход выполняется без ограничений — сразу заведите учётные записи и назначьте роли. При свёртке пользователи остаются, менять ничего не нужно.

На этом база готова: либо полностью чистая под новое юрлицо, либо с остатками после свёртки.

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

Можно ли вернуть данные после полной очистки базы?
Внутри самой базы — нет, очистка необратима. Восстановить можно только из резервной копии, которую вы сделали до удаления. Поэтому копия обязательна.
Удаляется ли конфигурация, когда я чищу данные?
Нет. Конфигурация и данные в 1С хранятся раздельно. При способе с выгрузкой .cf и новой базой конфигурация переносится целиком, а данных не остаётся.
Очистит ли базу «Тестирование и исправление»?
Нет. Тестирование и исправление проверяет и чинит структуру и ссылочную целостность, но не удаляет ваши документы и справочники. Это инструмент лечения, а не очистки.
Нужен ли монопольный доступ для очистки?
Для загрузки .dt, загрузки конфигурации и обновления структуры — да, сеансы пользователей будут завершены. Для пометки на удаление монопольный доступ не обязателен, но удалять помеченное лучше, когда в базе никто не работает.
Как очистить данные только по одной организации в общей базе?
Полностью пустая база тут не нужна. Применяйте свёртку по выбранной организации или помечайте на удаление её документы — справочники и данные других организаций останутся нетронутыми.