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

Справочники и Данные · 10 мин

Как удалить всю номенклатуру в 1С 8.3 Управление торговлей

Как полностью удалить номенклатуру в 1С 8.3 Управление торговлей: пометка на удаление, обработка ссылок, групповая обработка, типичные ошибки и проверка результата.

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

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

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

Подготовка: резервная копия и оценка объёма данных

Перед массовым удалением обязательно создайте резервную копию базы. Для файловой базы достаточно скопировать файл 1Cv8.1CD в отдельный каталог при остановленной работе пользователей. Для клиент-серверного варианта используйте выгрузку через конфигуратор (Администрирование → Выгрузить информационную базу) или штатные средства СУБД.

Оцените масштаб: откройте справочник «Номенклатура» и посмотрите количество элементов, а также проверьте, есть ли в базе документы (поступления, реализации, перемещения, установка цен). Чем больше документов, тем сложнее будет физическое удаление, потому что почти каждый документ ссылается на товары.

Способ 1. Пометка на удаление через интерфейс

Самый безопасный вариант — штатная пометка на удаление. Откройте раздел «НСИ и администрирование» (или «Справочники») → «Номенклатура». Выделите все элементы списка сочетанием Ctrl+A, затем нажмите кнопку «Пометить на удаление» (или клавишу Delete) и подтвердите действие. Если список иерархический с группами, пометка группы помечает и вложенные элементы.

При большом количестве позиций (десятки тысяч) выделение через Ctrl+A может работать медленно или не захватывать элементы, не загруженные в список. В этом случае помечайте по группам или переходите к способу с групповой обработкой.

После пометки элементы остаются в базе, но исключаются из большинства подборов и отчётов. Формально данные ещё не удалены — это промежуточное состояние, которое уже решает задачу «убрать номенклатуру из работы».

Способ 2. Удаление помеченных объектов

Чтобы удалить помеченные элементы физически, перейдите в «Администрирование» → «Обслуживание» → «Удаление помеченных объектов». В типовой УТ 11 этот пункт доступен пользователю с правами администратора при монопольном доступе к базе — все остальные сеансы должны быть завершены.

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

Порядок действий
  1. 1
    Сделайте резервную копию базы и завершите сеансы других пользователей
  2. 2
    Пометьте всю номенклатуру на удаление (Ctrl+A в списке справочника)
  3. 3
    Откройте Администрирование → Обслуживание → Удаление помеченных объектов
  4. 4
    Запустите автоматическое удаление и дождитесь проверки ссылок
  5. 5
    По списку неудалённых объектов решите: удалить связанные документы или оставить пометку
  6. 6
    Повторите удаление после очистки ссылок

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

Способ 3. Групповая обработка справочников и документов

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

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

Способ 4. Удаление через код (для разработчиков)

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

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

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

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

Альтернатива: свёртка базы или новая база вместо удаления

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

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

Сравнение вариантов

Пометка + удаление помеченных

Подходит для баз без документов или демо-баз; безопасно, но долго при больших объёмах

Групповая обработка документов + удаление

Для баз с историей, которую не жалко; требует монопольного режима и времени

Новая чистая база

Оптимально при старте нового учёта; нужно заново перенести настройки и справочники

Свёртка базы

Когда нужно сохранить остатки, но убрать старые документы; номенклатура останется частично

Проверка результата и частые проблемы

После завершения удаления откройте справочник «Номенклатура» и включите отображение помеченных на удаление элементов: список должен быть пуст или содержать только те позиции, которые вы осознанно оставили. Дополнительно проверьте регистры сведений «Штрихкоды номенклатуры» и «Цены номенклатуры» — там не должно быть записей со ссылками на несуществующие товары.

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

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

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

Список справочника «Номенклатура»
Норма

Пустой или только осознанно оставленные элементы

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

Остались непомеченные позиции, которые не попали в выделение

Удаление помеченных объектов, повторный запуск
Норма

Список помеченных объектов пуст

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

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

Регистры «Штрихкоды» и «Цены номенклатуры»
Норма

Нет записей с удалёнными товарами

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

Записи с битыми ссылками «Объект не найден»

Тестирование и исправление (конфигуратор)
Норма

Ошибок ссылочной целостности нет

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

Ошибки — потребуется восстановление из копии

FAQ

Почему номенклатура не удаляется, хотя я её пометил?

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

Можно ли удалить номенклатуру, по которой были движения?

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

Что будет со штрихкодами и ценами после удаления товара?

Регистры сведений «Штрихкоды номенклатуры» и «Цены номенклатуры» подчинены элементу справочника, поэтому при штатном удалении помеченных объектов их записи удаляются вместе с элементом. При непосредственном программном удалении без контроля ссылок записи могут остаться с битыми ссылками.

Можно ли удалить номенклатуру без монопольного режима?

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

Чем опасно удаление через метод Удалить() в коде?

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

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

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

Итог

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

Всю номенклатуру в 1С 8.3 УТ удаляют в два этапа: пометка на удаление, затем «Удаление помеченных объектов» в монопольном режиме. Элементы со ссылками в документах не удалятся, пока не убраны связанные данные. Перед началом — обязательная резервная копия, а при большом объёме истории разумнее рассмотреть новую чистую базу или свёртку.