Справочники и Данные · 9 мин
Как удалить всю номенклатуру в 1С
Как удалить всю номенклатуру в 1С: пометка на удаление, групповая обработка, удаление помеченных объектов, работа со ссылками и восстановление данных.
Полностью удалить номенклатуру в 1С напрямую кнопкой «Удалить» обычно не получится: если на товар ссылаются документы, проводки или другие справочники, программа заблокирует удаление. Поэтому корректная процедура всегда состоит из двух этапов — сначала элементы помечаются на удаление, затем запускается штатная обработка «Удаление помеченных объектов», которая проверяет ссылки и физически стирает только то, что нигде не используется.
Массовое удаление всей номенклатуры — типовая задача при очистке тестовой базы, подготовке пустой копии для нового юридического лица или после неудачной загрузки данных из внешнего файла. В каждом сценарии порядок действий немного отличается, но принцип один: сначала резервная копия, потом пометка, затем контролируемое удаление с проверкой результата.
Ниже разобраны способы для типовых конфигураций (Управление торговлей, ERP, Комплексная автоматизация, Бухгалтерия предприятия), работа через встроенные обработки и вариант для программистов через код. Отдельно описано, что делать, когда номенклатура используется в документах и удалить её штатно нельзя.
Подготовка: резервная копия и проверка прав
Перед массовым удалением обязательно сделайте резервную копию базы. Для файловой базы достаточно скопировать файл 1Cv8.1CD при закрытой программе либо выгрузить базу через конфигуратор (Администрирование → Выгрузить информационную базу). Для клиент-серверной базы копию делает администратор средствами СУБД. Удаление тысяч элементов — необратимая операция, и восстановить данные без копии не получится.
Проверьте права: у пользователя должны быть права на удаление объектов и на запуск обработки удаления помеченных объектов. Обычно это роль «Администратор системы» или «Полные права». Если кнопки удаления неактивны — дело в ролях, а не в базе.
Также убедитесь, что с базой не работают другие пользователи. При активных сеансах часть объектов может быть заблокирована, и обработка завершится с ошибками. Для клиент-серверной базы установите блокировку сеансов на время операции.
Способ 1: пометка на удаление вручную и групповой обработкой
Если элементов немного (до нескольких сотен), выделите их в списке справочника «Номенклатура» через Ctrl+A и нажмите Delete или кнопку «Пометить на удаление». Программа пометит все выделенные элементы, включая группы (при пометке группы помечаются и вложенные элементы).
Для больших объёмов удобнее типовая обработка «Групповое изменение реквизитов». В УТ 11 и ERP она находится в разделе «НСИ и администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов». Выберите объект «Номенклатура», при необходимости настройте отбор (например, все элементы без групп), затем в списке действий включите режим изменения служебных реквизитов и установите пометку удаления.
- 1Откройте справочник «Номенклатура» и снимите отборы, чтобы видеть все элементы
- 2Выделите все элементы (Ctrl+A) и нажмите «Пометить на удаление» либо используйте обработку «Групповое изменение реквизитов»
- 3Дождитесь окончания операции — при большом объёме она может занять минуты
- 4Убедитесь, что в списке все элементы отображаются с пометкой (перечёркнуты)
Способ 2: удаление помеченных объектов
После пометки запустите физическое удаление: «Администрирование (НСИ и администрирование) → Обслуживание → Удаление помеченных объектов». Выберите режим «Выборочное удаление» или «Автоматическое удаление всех помеченных объектов» и нажмите «Удалить».
Обработка проверит ссылки на каждый объект. Элементы, которые нигде не используются, будут удалены физически. По тем, на которые есть ссылки, программа покажет список мест использования — документы, регистры, другие справочники.
В монопольном режиме удаление идёт заметно быстрее. Если база большая и помечено несколько десятков тысяч элементов, операция может занять продолжительное время — не прерывайте её принудительно, это может привести к ошибкам базы.
Что делать, если номенклатура используется в документах
Это самая частая ситуация: после удаления помеченных остаётся список объектов, которые удалить нельзя, потому что на них ссылаются документы. Вариантов действий несколько, и выбор зависит от цели.
Если база тестовая и документы не нужны — удалите или пометьте на удаление сами документы (реализации, поступления, перемещения, установка цен), затем повторите удаление помеченных объектов. Учтите, что на номенклатуру ссылаются также регистры сведений (цены, штрихкоды), характеристики, серии и спецификации — их тоже нужно очистить.
Если документы нужны для истории, физически удалить номенклатуру невозможно — это ограничение ссылочной целостности, обходить его штатными средствами нельзя. В этом случае элементы просто остаются помеченными и исключаются из подбора в новые документы.
Как выбрать действие
Способ 3: удаление через код (для программистов)
Для очистки тестовых баз быстрее всего пометить всю номенклатуру кодом через консоль кода или внешнюю обработку. Пример для управляемого приложения:
Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.УстановитьПометкуУдаления(Истина);
КонецЦикла;
После выполнения кода всё равно нужно запустить штатное удаление помеченных объектов. Метод Удалить() напрямую (без пометки и контроля ссылок) использовать не рекомендуется: он нарушает ссылочную целостность, и в базе появятся «битые» ссылки вида «Объект не найден».
На больших базах помечайте элементы порциями по несколько тысяч в транзакции — это снижает нагрузку и риск тайм-аутов на клиент-серверных базах. После массового удаления полезно выполнить тестирование и исправление базы с реструктуризацией.
Проверка результата и типичные ошибки
После завершения откройте справочник номенклатуры: он должен быть пуст либо содержать только помеченные элементы со ссылками. Проверьте также связанные объекты: характеристики, штрихкоды, цены — они могли остаться «сиротами» без владельца.
Проверьте отчёты по остаткам и оборотам: если база не была тестовой, после удаления документов и номенклатуры обороты обнулятся, и это нужно осознанно учитывать.
Как проверить результат
Пуст или содержит только помеченные элементы со ссылками
Элементы без пометки остались — пометка не применилась
Нет списка неудалённых объектов
Есть объекты с местами использования — требуется разбор ссылок
Записи по удалённой номенклатуре очищены
Остались записи, ссылающиеся на несуществующие элементы
Альтернатива: новая чистая база вместо удаления
Если цель — начать учёт «с нуля», часто надёжнее не удалять данные, а создать новую пустую базу из той же конфигурации и перенести туда только нужные настройки и справочники (организации, склады, пользователи). Это исключает риск остаточных ссылок и ускоряет работу базы.
Для переноса используют штатную обработку «Выгрузка и загрузка данных XML» или конвертацию данных. Способ занимает больше времени на подготовку, но результат чище, чем вычищение рабочей базы.
Что важно запомнить
Порядок безопасного удаления: резервная копия → пометка всей номенклатуры → удаление помеченных объектов → разбор ссылок на оставшиеся элементы → проверка результата. Элементы, используемые в документах, физически не удаляются — для чистого старта надёжнее создать новую базу.
Частые вопросы
Почему номенклатура не удаляется, хотя документов с ней нет?
Проверьте регистры сведений (цены номенклатуры, штрихкоды), характеристики, серии, спецификации и другие справочники — ссылки могут быть там. Обработка «Удаление помеченных объектов» показывает все места использования по каждому элементу.
Можно ли удалить номенклатуру без пометки на удаление?
Технически программно — да, через метод Удалить(), но это нарушает ссылочную целостность и приводит к «битым» ссылкам. Штатный и безопасный путь — только пометка с последующим контролируемым удалением.
Как удалить номенклатуру в 1С:Бухгалтерии?
Механизм тот же: пометьте элементы в справочнике, затем откройте «Администрирование → Обслуживание → Удаление помеченных объектов». Если элемент используется в документах или проводках, он останется помеченным.
Что делать с дублями номенклатуры после загрузки?
Полное удаление не нужно — используйте типовую обработку «Поиск и удаление дублей» (в разделе администрирования). Она объединит элементы и автоматически заменит ссылки в документах на основной элемент.
Удалятся ли характеристики и цены вместе с номенклатурой?
Характеристики, подчинённые элементу, помечаются и удаляются вместе с владельцем. А вот записи регистров сведений (цены, штрихкоды) удаляются по ссылкам при контроле — если останутся, очистите их отдельно.
Можно ли восстановить удалённую номенклатуру?
Нет, физическое удаление необратимо. Восстановление возможно только из резервной копии базы, сделанной до операции, — поэтому копия перед началом обязательна.