Удаление и архивирование лишних позиций номенклатуры в 1С

· 9 мин

Содержание

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

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

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

Почему карточку товара нельзя стереть сразу

В 1С любой справочник связан с остальной базой ссылками. На карточку номенклатуры ссылаются поступления и реализации, счета, складские остатки, установленные цены, спецификации, настройки счетов учёта. Если бы программа позволяла удалить такую карточку одним нажатием, документы прошлых лет «поехали» бы: в них появились бы битые ссылки вида <Объект не найден>, а отчёты за закрытые периоды перестали бы собираться.

Поэтому удаление в 1С двухэтапное и обратимое до последнего шага:

  • 🔖 Пометка на удаление — вы помечаете карточку как кандидата на удаление. Позиция остаётся в базе, её легко вернуть.
  • 🗑️ Удаление помеченных объектов — отдельная служебная операция проверяет, нет ли ссылок, и удаляет только то, что действительно нигде не задействовано.

Если по позиции есть хоть один документ, остаток или проводка — физически удалить её не получится, и это правильно. Такую номенклатуру переносят в архив, а не стирают.

Что сделать до очистки справочника

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

Перед массовой пометкой и удалением сделайте резервную копию: Администрирование → Обслуживание → Резервное копирование и восстановление (в файловой базе) или штатную выгрузку .dt. Операция необратима после удаления помеченных.

Подготовка к очистке номенклатуры
Выполнено: 0 / 5

Чтобы увидеть, какие позиции реально не используются, откройте справочник: в 1С:Бухгалтерии это Справочники → Номенклатура, в Управлении торговлей — раздел с нормативно-справочной информацией, пункт Номенклатура (название раздела в УТ 11 может отличаться по версии). Включите в списке колонки с ценами и настройте отбор — так сразу видно «пустые» карточки без движений.

Способ 1. Пометить на удаление и удалить помеченные

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

  1. В списке номенклатуры выделите одну или несколько позиций (с Ctrl или Shift).
  2. Нажмите Del либо правой кнопкой — команду пометки на удаление. У карточки появится значок перечёркнутого элемента.
  3. Откройте Администрирование → Обслуживание → Удаление помеченных объектов.
  4. Выберите режим автоматического удаления всех помеченных либо отберите конкретные объекты.
  5. Программа проверит ссылки. Позиции без ссылок удалятся; по тем, на которые кто-то ссылается, покажется список мест использования.

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

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

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

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

Способ 2. Перенести неактуальные позиции в архив

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

  1. В корне справочника номенклатуры создайте группу, например «Архив» или «Не используется».
  2. Выделите неактуальные позиции и перенесите их в эту группу: перетаскиванием мышью или командой перемещения в группу из панели списка.
  3. Настройте для рабочих списков отбор по родительской группе, чтобы архив не попадался на глаза при подборе в документы.

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

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

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

Классическая причина раздутого справочника — дубли: один и тот же товар заведён дважды с разными названиями («Бумага А4» и «Бумага офисная А4»). Удалить дубль мешают ссылки из документов. Сначала эти ссылки нужно перевести на одну «правильную» карточку, и только потом помеченный дубль удалится.

Для этого служат два инструмента:

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

Порядок работы одинаковый:

  1. Укажите, какую карточку оставляем (главная), а какие считаем дублями.
  2. Запустите замену ссылок — все документы начнут ссылаться на главную позицию.
  3. Проверьте, что дубли остались без ссылок, и удалите их помеченными объектами (способ 1).

Замену ссылок делают в монопольном режиме или когда в базе никто не работает: она массово перезаписывает документы. Обязательно на копии прогоните процедуру заранее и сверьте остатки «до» и «после».

Способ 4. Программная пометка больших объёмов

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

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

Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   Номенклатура.Ссылка КАК Ссылка
    |ИЗ
    |   Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |   Номенклатура.ПометкаУдаления = ЛОЖЬ
    |   И Номенклатура.Родитель = &Группа";
Запрос.УстановитьПараметр("Группа", ГруппаАрхив);

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

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

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

Способ 5. Перенести каталог в чистую базу

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

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

Схема в общих чертах такая:

  1. Отбираете в старой базе только актуальную номенклатуру (по наличию движений за период, по признаку активности).
  2. Выгружаете её и входящие остатки — средствами обмена данными или типовым переносом остатков.
  3. Загружаете в новую базу и начинаете учёт «с чистого листа», а старую оставляете как архив для отчётности.

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

Как выбрать способ очистки

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

СитуацияЧто делатьСпособ
Карточку завели по ошибке, движений нетПометить и удалить помеченные1
По позиции есть документы прошлых летПеренести в архивную группу2
Один товар заведён несколько разСвести дубли заменой ссылок3
Нужно убрать тысячи позиций по условиюПрограммно пометить + удалить4
Справочник весь в мусоре, идёт переходПеренести актуальное в новую базу5
Можно ли удалить позицию номенклатуры?

Типичные ошибки при чистке номенклатуры

Эти промахи встречаются чаще всего и обходятся дороже самой чистки:

  • ❌ Удаление без резервной копии. Удаление помеченных необратимо. Нет копии — нет пути назад.
  • ❌ Запуск удаления, когда в базе работают. Пользователи параллельно создают документы со ссылками на те же карточки — удаление зависает или удаляет не то. Делайте в нерабочее время.
  • ❌ Попытка удалить товар с остатками. Если видите длинный список ссылок, значит позиция живая — ей место в архиве, а не в корзине.
  • ❌ Прямое удаление из кода. Объект.Удалить() в обход контроля ссылок оставляет битые документы. Только пометка + штатное удаление.
  • ❌ Замена дублей без проверки остатков. После сведения дублей сверьте остатки и суммы «до» и «после» — ошибка в выборе главной карточки искажает учёт.

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

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