К статье
Практический материал

Администрирование · 13 мин

Как удалить все записи в 1С: полное руководство по очистке базы

Как удалить все записи в 1С: обработки, групповое удаление, очистка регистров и справочников. Пошаговые инструкции, риски, проверка результата и FAQ.

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

Главное, что нужно понять до начала работы: в 1С нет единой кнопки «удалить всё». Записи хранятся в объектах разных типов — справочниках, документах, регистрах сведений и накопления, планах обмена — и у каждого типа свои механизмы удаления и свои ограничения. Удаление документов не очищает регистры автоматически, если проведение уже отработало, а удаление элементов справочника может быть заблокировано ссылочной целостностью.

Любая массовая очистка — операция необратимая. Перед стартом обязательно создаётся резервная копия: выгрузка информационной базы через конфигуратор (файл .dt) или копия базы средствами СУБД для клиент-серверного варианта. Без копии восстановить случайно удалённые данные штатными средствами не получится.

Что именно нужно удалить: определяем объём очистки

Прежде чем выбирать инструмент, определите, какие именно записи требуется удалить. От этого зависит и порядок действий, и риски. Условно задачи делятся на четыре сценария: очистка документов за период, полная очистка всех документов базы, очистка регистров и очистка справочников. Полная очистка базы «под ноль» объединяет все четыре.

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

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

Маршрут решения

Как выбрать действие

Нужно удалить документы за конкретный периодИспользуйте «Групповое изменение реквизитов» с отбором по дате и пометкой на удаление
Нужно очистить всю базу для повторного ввода остатковИспользуйте типовую обработку свёртки/очистки или последовательно удалите документы, регистры и справочники
Нужно очистить один регистр сведенийОткройте регистр, выделите все записи и удалите, либо очистите программно через набор записей
База клиент-серверная и объём большойПланируйте удаление порциями в нерабочее время, чтобы не блокировать работу пользователей

Подготовка: резервная копия и проверка прав

Первый шаг — выгрузка информационной базы. В файловом варианте откройте конфигуратор, меню «Администрирование» → «Выгрузить информационную базу», укажите путь к файлу .dt. Проверьте, что файл создан и его размер соответствует ожиданиям (не нулевой). Для клиент-серверной базы дополнительно согласуйте с администратором создание копии средствами СУБД — выгрузка .dt на больших базах занимает много времени.

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

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

Удаление документов через групповое изменение реквизитов

Штатный способ массово удалить документы в типовых конфигурациях на управляемых формах — обработка «Групповое изменение реквизитов». Она находится в разделе «Администрирование» → «Обслуживание» → «Корректировка данных» (в некоторых конфигурациях путь отличается, но обработка доступна поиском по меню «Все функции»).

Порядок работы: выберите тип объектов «Документы», при необходимости установите отбор по виду документа и периоду. В списке действий выберите операцию пометки на удаление. После выполнения все документы, попавшие под отбор, будут помечены. Пометка на удаление автоматически отменяет проведение документа, что снимает его движения по регистрам.

Пометка — это ещё не удаление. Физически записи убираются вторым этапом через «Удаление помеченных объектов» («Администрирование» → «Обслуживание» → «Удаление помеченных объектов»). Здесь доступны два режима: автоматическое удаление всех помеченных объектов и выборочное. После завершения обработка покажет объекты, которые удалить не удалось из-за ссылок, — с ними разбираются отдельно.

Порядок удаления документов
  1. 1
    Создайте выгрузку базы .dt и завершите сеансы пользователей
  2. 2
    Откройте «Групповое изменение реквизитов», выберите документы и задайте отбор
  3. 3
    Выполните пометку на удаление выбранных объектов
  4. 4
    Откройте «Удаление помеченных объектов» и запустите автоматическое удаление
  5. 5
    Проверьте список неудалённых объектов и разберите блокирующие ссылки
  6. 6
    Убедитесь, что количество документов в журналах равно нулю или ожидаемому остатку

Очистка регистров сведений и накопления

Регистры накопления, подчинённые регистраторам, очищаются вместе с удалением документов-регистраторов — отдельных действий обычно не требуется. Но регистры сведений с независимым режимом и служебные регистры (например, очереди обмена, кэши, результаты обработки данных) хранят записи самостоятельно и требуют отдельной очистки.

Интерактивно регистр сведений очищается так: откройте регистр через «Все функции» → «Регистры сведений», выделите все записи (Ctrl+A) и удалите (Shift+Del для удаления без пометки, если доступно). На регистрах с сотнями тысяч записей интерактивное выделение неудобно и медленно — здесь эффективнее программная очистка.

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

bsl
НаборЗаписей = РегистрыСведений.ИмяРегистра.СоздатьНаборЗаписей();
НаборЗаписей.Записать(Истина); // запись пустого набора = полная очистка регистра

Полная очистка базы и свёртка

Если цель — получить пустую базу с сохранённой конфигурацией и настройками, есть два подхода. Первый — создать новую базу из шаблона конфигурации или из выгрузки конфигурации (.cf) и перенести в неё только нужные справочники и настройки обменами или обработкой «Выгрузка и загрузка данных XML». Это самый чистый вариант: в новой базе гарантированно нет остатков старых данных.

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

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

Сравнение вариантов очистки

Новая база из шаблона

Самый чистый результат, но требует переноса справочников и настроек; подходит для старта учёта заново

Удаление всех объектов в текущей базе

Сохраняет настройки и доработки, но трудоёмко и требует контроля ссылочной целостности

Свёртка базы

Сокращает объём с сохранением остатков; не подходит, если нужна полностью пустая база

Программное удаление через встроенный язык

Когда штатных обработок недостаточно — например, нужно удалить данные по сложному условию или очистить десятки видов объектов одним механизмом, — используется код на встроенном языке. Внешняя обработка с таким кодом запускается через «Файл» → «Открыть» в режиме предприятия.

Типовой приём для удаления всех объектов одного вида — выборка с установкой пометки удаления. Для справочников и документов сначала выполняется УстановитьПометкуУдаления(Истина), затем физическое удаление делается штатной обработкой «Удаление помеченных объектов». Прямое удаление методом Удалить() без контроля ссылок опасно: оно создаёт битые ссылки — объекты вида «<Объект не найден>» в документах и регистрах.

Для больших баз удаляйте порциями с обходом ограничения на размер транзакции: например, выборка пакетами по несколько тысяч объектов с фиксацией транзакции после каждой порции. Это снижает риск длительных блокировок и переполнения журнала транзакций СУБД в клиент-серверном варианте.

Типичные ошибки
01
Прямое удаление объектов методом Удалить() без контроля ссылок — в базе остаются битые ссылки, отчёты и обмены начинают выдавать ошибки
02
Удаление без резервной копии — при ошибке отбора теряются нужные данные без возможности восстановления
03
Удаление справочников до удаления документов — платформа блокирует операцию, и процесс зависает на полпути
04
Игнорирование независимых регистров сведений — после очистки документов в базе остаются миллионы служебных записей
05
Запуск массового удаления в рабочее время — блокировки таблиц останавливают работу пользователей

Проверка результата и завершающие действия

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

Запустите в конфигураторе «Администрирование» → «Тестирование и исправление» с проверкой ссылочной целостности и пересчётом итогов. Это выявит битые ссылки и рассинхронизацию итогов, которые могли возникнуть при массовых операциях. На клиент-серверной базе после удаления большого объёма данных имеет смысл выполнить реиндексацию и обновление статистики средствами СУБД — физический размер файлов базы сам по себе не уменьшается, но производительность запросов восстанавливается.

Помните, что логическое удаление не уменьшает файл базы. В файловом варианте для сжатия используется тестирование и исправление с реструктуризацией либо выгрузка и загрузка через .dt. В клиент-серверном варианте сжатие файлов данных выполняется средствами СУБД администратором.

Контрольные точки

Как проверить результат

Журналы документов
Норма

Пусто или только ожидаемые документы

Тревожный признак

Остались документы, которые должны были удалиться — проверьте отбор и пометку

Ссылочная целостность
Норма

Тестирование и исправление не находит битых ссылок

Тревожный признак

Есть объекты «<Объект не найден>» — требуется разбор ссылок

Независимые регистры сведений
Норма

Служебные регистры очищены по плану

Тревожный признак

В регистрах остались миллионы записей — база очищена не полностью

Права и доступ
Норма

Пользователи работают, запрет сеансов снят

Тревожный признак

Блокировка соединений осталась активной после завершения работ

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

Можно ли отменить массовое удаление в 1С?

Нет, штатной функции отмены или корзины в платформе нет. Единственный способ вернуть данные — восстановить базу из резервной копии: загрузить файл .dt через конфигуратор или восстановить копию средствами СУБД. Поэтому копия создаётся до начала любых операций удаления.

Почему обработка «Удаление помеченных объектов» не удаляет часть объектов?

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

Уменьшится ли размер файла базы после удаления всех записей?

Нет, физический размер файлов не уменьшается автоматически — место лишь помечается как свободное внутри базы. В файловом варианте выполните выгрузку и загрузку через .dt или тестирование с реструктуризацией. В клиент-серверном варианте сжатие выполняется средствами СУБД.

Как удалить записи регистра сведений, если их миллионы?

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

Что быстрее: очистить базу или создать новую из шаблона?

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

Можно ли удалить предопределённые элементы справочников?

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

Итог

Что важно запомнить

Массовое удаление в 1С делается через «Групповое изменение реквизитов» и «Удаление помеченных объектов», регистры очищаются отдельно, а для полного обнуления часто проще создать новую базу из шаблона. Резервная копия перед операцией и проверка ссылочной целостности после — обязательные шаги.