Справочники и Данные · 11 мин
Как удалить все записи из справочника 1С
Как удалить все записи из справочника 1С: пометка на удаление, групповая обработка, обработка «Удаление помеченных объектов» и очистка через код. Проверка ссылок и риски.
Полная очистка справочника в 1С требуется при переносе данных в новую базу, после тестовой загрузки, при удалении устаревшей номенклатуры или контрагентов, а также при подготовке пустой копии конфигурации. Простого способа «выделить всё и удалить навсегда» в типовых конфигурациях нет — платформа защищает целостность данных, поэтому сначала записи помечаются на удаление, а затем удаляются специальной обработкой с контролем ссылок.
Порядок действий зависит от режима работы (файловая или клиент-серверная база), наличия ссылок на элементы в документах и других справочниках, а также от объёма данных. Ниже разобраны три рабочих способа: штатная пометка на удаление, групповая обработка и очистка программным кодом — с проверкой результата и типичными ошибками.
Подготовка: резервная копия и оценка ссылок
Первый шаг — создание резервной копии. Для файловой базы откройте конфигуратор, выберите «Администрирование» → «Выгрузить информационную базу» и сохраните файл с расширением .dt. Для клиент-серверной базы копию делают средствами СУБД (MS SQL, PostgreSQL) или через консоль кластера. Без копии откатить ошибочное удаление будет невозможно.
Второй шаг — оценка связанности данных. Если справочник используется в документах (например, «Номенклатура» в реализациях или «Контрагенты» в счетах), прямое удаление элементов приведёт к нарушению ссылочной целостности. Штатная обработка «Удаление помеченных объектов» покажет такие ссылки и не даст удалить используемые элементы, а вот программная очистка кодом удалит всё без проверок — её применяют только к заведомо неиспользуемым данным или в тестовых базах.
Можно очищать кодом или групповой обработкой без контроля ссылок
Только пометка на удаление + штатное удаление помеченных с контролем
Удаляйте порциями, монопольный режим, в нерабочее время
Удалять нельзя — конфигурация перестанет работать корректно
Способ 1. Пометка на удаление всех элементов вручную
Это самый безопасный способ, доступный без прав программиста. Откройте справочник в режиме 1С:Предприятие, установите курсор на любой элемент и нажмите Ctrl+A — выделятся все записи текущего списка. Затем нажмите клавишу Delete или кнопку «Пометить на удаление / снять пометку» на панели инструментов. Подтвердите действие — все выделенные элементы получат пометку удаления.
Если справочник иерархический, пометка группы автоматически распространяется на вложенные элементы. При большом количестве записей (десятки тысяч) список может выводиться порциями — тогда выделяйте и помечайте порциями, прокручивая список, либо переходите к групповой обработке, описанной ниже.
После пометки данные физически остаются в базе. Чтобы удалить их окончательно, перейдите в раздел «Администрирование» → «Обслуживание» → «Удаление помеченных объектов» (в некоторых конфигурациях: «НСИ и администрирование» → «Поддержка и обслуживание»).
- 1Сделайте выгрузку базы в файл .dt через конфигуратор
- 2Откройте справочник, выделите все записи (Ctrl+A) и нажмите Delete
- 3Подтвердите пометку на удаление всех выделенных элементов
- 4Откройте «Администрирование» → «Удаление помеченных объектов»
- 5Выберите режим «Выборочное удаление» и отметьте нужный справочник
- 6Запустите удаление и дождитесь завершения контроля ссылок
- 7Проверьте справочник: он должен быть пуст, помеченные записи исчезли
Способ 2. Групповая обработка данных
Когда записей много и ручное выделение неудобно, используйте типовую обработку «Групповое изменение реквизитов» («Администрирование» → «Обслуживание» → «Корректировка данных», доступна при включённом технологическом режиме или у пользователя с правами администратора). В ней выберите нужный справочник, задайте отбор «все элементы» и выполните действие «Пометить на удаление».
Альтернатива — универсальная обработка «Групповая обработка справочников и документов», входящая в состав диска ИТС и доступная на многих внедрениях. Она позволяет выбрать вид справочника, установить отбор (по группе, владельцу, реквизиту) и выполнить пометку на удаление одним действием для всей выборки. Это удобно, когда нужно удалить не весь справочник, а его часть — например, только элементы определённой папки.
После групповой пометки финальное удаление выполняется той же обработкой «Удаление помеченных объектов». Учтите: она требует монопольного доступа к базе для режима «Полное удаление», поэтому в рабочее время используйте выборочное удаление или запускайте операцию в нерабочие часы.
Способ 3. Очистка справочника программным кодом
Для разработчиков и администраторов самый быстрый способ — выполнить код через консоль кода (обработка «Консоль кода» с диска ИТС), внешнюю обработку или процедуру в конфигураторе. Код перебирает все элементы и удаляет их напрямую, минуя пометку.
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
ЭлементОбъект = Выборка.ПолучитьОбъект();
ЭлементОбъект.Удалить();
КонецЦикла;Метод Удалить() у объекта стирает запись немедленно и без контроля ссылочной целостности. Если нужна пометка вместо физического удаления, замените вызов на УстановитьПометкуУдаления(Истина). Для подчинённых справочников выборка охватит все элементы независимо от владельца; для иерархических — удаляйте сначала элементы, затем группы, либо используйте выборку без учёта иерархии.
При больших объёмах оборачивайте удаление в транзакцию порциями (например, по 1000 элементов с фиксацией), чтобы не получить длинную транзакцию, блокировки и переполнение журнала СУБД в клиент-серверном варианте. В файловой базе порционность менее критична, но монопольный режим всё равно обязателен.
Контроль ссылочной целостности и «битые ссылки»
Ссылочная целостность — это гарантия, что в базе нет ссылок на несуществующие объекты. Штатная обработка «Удаление помеченных объектов» перед удалением сканирует всю базу и показывает, где используется каждый помеченный элемент. У вас два варианта: отказаться от удаления таких элементов либо сначала удалить/перепровести ссылающиеся объекты (пометить документы, очистить реквизиты).
Если элементы были удалены кодом без контроля, в документах и отчётах появятся записи вида «<Объект не найден> (123:abcd...)». Исправить это можно только восстановлением из копии или ручной очисткой всех реквизитов, содержащих битые ссылки, — задача трудоёмкая при большом объёме. Поэтому код без контроля применяйте только к справочникам, которые точно нигде не используются: техническим, временным, загруженным ошибочно.
Как проверить результат
Записей нет, включая помеченные
Остались элементы с пометкой — удаление помеченных не выполнено
Ссылки отображаются корректно
Появились записи «Объект не найден»
Обработка не находит ссылок
Есть ссылки в документах и регистрах
Нет ошибок ссылочной целостности
Ошибки «ссылка на несуществующий объект»
Особенности для больших баз и клиент-серверного режима
В клиент-серверных базах массовое удаление создаёт нагрузку на СУБД: растёт журнал транзакций, возможны блокировки таблиц и таймауты у других пользователей. Планируйте операцию на нерабочее время, предупредите пользователей и завершите их сеансы через консоль кластера. Для справочников с сотнями тысяч записей удаляйте порциями с промежуточной фиксацией транзакции.
После массового удаления физический размер файла базы данных обычно не уменьшается автоматически: место внутри файла помечается как свободное и переиспользуется позже. Для возврата места на диске в файловом варианте выполните «Тестирование и исправление» с реструктуризацией либо выгрузку/загрузку через dt; в MS SQL — операцию shrink осознанно, понимая её влияние на фрагментацию индексов.
В распределённых базах (РИБ) и при обмене данными удалённые элементы могут «вернуться» из другого узла обмена. Перед очисткой справочника убедитесь, что он не участвует в планах обмена, либо выполните согласованное удаление во всех узлах.
Сравнение способов очистки
Самый безопасный, с контролем ссылок; медленный на больших объёмах
Удобен для частичной очистки по отбору; всё равно требует финального удаления помеченных
Самый быстрый, но без контроля целостности; только для тестовых или неиспользуемых данных
Типичные ошибки при очистке справочника
Частые вопросы
Можно ли удалить записи справочника без конфигуратора?
Да. Пометка на удаление через список справочника, групповые обработки и «Удаление помеченных объектов» выполняются в режиме 1С:Предприятие пользователем с соответствующими правами. Конфигуратор нужен только для выгрузки копии, тестирования и исправления либо для запуска собственного кода.
Почему обработка «Удаление помеченных объектов» не удаляет часть элементов?
Это значит, что на эти элементы есть ссылки из документов, регистров или других справочников. Обработка показывает список мест использования — либо удалите/исправьте ссылающиеся объекты и повторите удаление, либо оставьте эти элементы помеченными.
Как удалить не все записи, а только часть по условию?
Используйте групповую обработку с отбором: по родительской группе, владельцу, значению реквизита или пометке. В коде условие задаётся через параметры метода Выбрать() или проверку внутри цикла с пропуском ненужных элементов.
Освободится ли место на диске после удаления всех записей?
Не сразу. Удалённые данные помечаются свободными внутри файла базы и переиспользуются новыми записями. Для физического уменьшения файловой базы выполните выгрузку и загрузку через dt или тестирование с реструктуризацией; в клиент-серверном варианте — штатные средства сжатия СУБД.
Что делать, если после удаления в документах появилось «Объект не найден»?
Если есть свежая выгрузка dt — восстановите из неё нужные данные. Если копии нет, найдите все реквизиты с битой ссылкой (поиском по строке идентификатора или запросом) и очистите их либо замените на корректное значение. В дальнейшем удаляйте только через контроль ссылок.
Можно ли отменить пометку на удаление для всех элементов сразу?
Да. Выделите все помеченные записи в списке (Ctrl+A) и снова нажмите Delete — пометка снимется. Для массового снятия подойдёт и групповая обработка с действием «Снять пометку удаления». Пока не запущено «Удаление помеченных объектов», данные полностью сохранны.
Что важно запомнить
Перед очисткой справочника всегда делайте резервную копию. Рабочие данные удаляйте через пометку и штатное «Удаление помеченных объектов» с контролем ссылок; код без проверок — только для тестовых и заведомо неиспользуемых данных. Предопределённые элементы не трогайте, а массовые операции в клиент-серверной базе выполняйте в нерабочее время порциями.