Удаление и архивирование лишних позиций номенклатуры в 1С
Содержание
Удалить позицию номенклатуры клавишей Del напрямую в 1С нельзя: справочник защищён контролем ссылочной целостности, и база просто не даст стереть карточку, на которую ссылаются документы, остатки или цены. Рабочий путь один — сначала пометить позицию на удаление, а затем запустить удаление помеченных объектов с проверкой ссылок. Всё остальное (архивная группа, замена дублей, выгрузка в чистую базу) — варианты для случаев, когда простое удаление невозможно.
Разберём, когда какой способ выбрать. Если позиция вообще нигде не использовалась — её удаляют насовсем. Если по ней есть движения за прошлые периоды — её не трогают, а убирают из поля зрения менеджеров через архивную группу. Дубли одного и того же товара сводят в одну карточку. А тяжёлый справочник на десятки тысяч строк иногда проще перенести в новую базу, оставив только актуальное.
Ниже — пять рабочих способов для 1С:Бухгалтерии 8.3, Управления торговлей 11 и других типовых конфигураций на платформе 8.3 с интерфейсом «Такси», от самого безопасного к радикальному.
Почему карточку товара нельзя стереть сразу
В 1С любой справочник связан с остальной базой ссылками. На карточку номенклатуры ссылаются поступления и реализации, счета, складские остатки, установленные цены, спецификации, настройки счетов учёта. Если бы программа позволяла удалить такую карточку одним нажатием, документы прошлых лет «поехали» бы: в них появились бы битые ссылки вида <Объект не найден>, а отчёты за закрытые периоды перестали бы собираться.
Поэтому удаление в 1С двухэтапное и обратимое до последнего шага:
- 🔖 Пометка на удаление — вы помечаете карточку как кандидата на удаление. Позиция остаётся в базе, её легко вернуть.
- 🗑️ Удаление помеченных объектов — отдельная служебная операция проверяет, нет ли ссылок, и удаляет только то, что действительно нигде не задействовано.
Если по позиции есть хоть один документ, остаток или проводка — физически удалить её не получится, и это правильно. Такую номенклатуру переносят в архив, а не стирают.
Что сделать до очистки справочника
Чистку справочника на несколько тысяч строк не начинают вслепую. Сначала готовят базу и понимают, что именно убираем.
Перед массовой пометкой и удалением сделайте резервную копию: Администрирование → Обслуживание → Резервное копирование и восстановление (в файловой базе) или штатную выгрузку .dt. Операция необратима после удаления помеченных.
Чтобы увидеть, какие позиции реально не используются, откройте справочник: в 1С:Бухгалтерии это Справочники → Номенклатура, в Управлении торговлей — раздел с нормативно-справочной информацией, пункт Номенклатура (название раздела в УТ 11 может отличаться по версии). Включите в списке колонки с ценами и настройте отбор — так сразу видно «пустые» карточки без движений.
Способ 1. Пометить на удаление и удалить помеченные
Это основной и самый безопасный метод. Подходит для позиций, которые завели по ошибке, продублировали или перестали использовать и по которым нет движений.
- В списке номенклатуры выделите одну или несколько позиций (с
CtrlилиShift). - Нажмите
Delлибо правой кнопкой — команду пометки на удаление. У карточки появится значок перечёркнутого элемента. - Откройте
Администрирование → Обслуживание → Удаление помеченных объектов. - Выберите режим автоматического удаления всех помеченных либо отберите конкретные объекты.
- Программа проверит ссылки. Позиции без ссылок удалятся; по тем, на которые кто-то ссылается, покажется список мест использования.
При проверке ссылок есть два режима. Автоматический удаляет всё помеченное, что не используется, а остальное оставляет и показывает причину. Выборочный даёт самому пройтись по списку и решить по каждому объекту. Для первой массовой чистки удобнее автоматический: он сам отсеет живые позиции и не даст ничего сломать.
Список мест использования читается просто: слева объект, который вы хотели удалить, справа — документы и записи, которые на него ссылаются. По двойному щелчку открывается сам документ, так что можно сразу понять, за какой период позиция ещё «держится».
💡 Удаление помеченных — отдельный инструмент, а не продолжение пометки. Пометить можно хоть сотню карточек в разные дни, а запустить удаление — раз в месяц, когда в базе никто не работает .
Если по позиции нашлись ссылки, у вас два пути: либо перепровести и поправить документы, где она использовалась (редко оправдано для старых периодов), либо снять пометку и отправить карточку в архивную группу — об этом ниже.
Способ 2. Перенести неактуальные позиции в архив
Товары и услуги, по которым были продажи или поступления, удалить нельзя — иначе рассыплется учёт. Но держать их в общем списке, где они мешают менеджерам, тоже не нужно. Решение — архивная группа.
- В корне справочника номенклатуры создайте группу, например «Архив» или «Не используется».
- Выделите неактуальные позиции и перенесите их в эту группу: перетаскиванием мышью или командой перемещения в группу из панели списка.
- Настройте для рабочих списков отбор по родительской группе, чтобы архив не попадался на глаза при подборе в документы.
В Управлении торговлей для товаров, снятых с продажи, есть отдельный статус в карточке номенклатуры — им удобнее пользоваться вместо ручного переноса в группу, потому что такие позиции автоматически перестают подбираться в новые заказы. Точное название поля зависит от релиза УТ, ищите его в карточке товара в блоке со статусом или признаком снятия с продажи.
Архивная группа — это не «мусорка», а способ сохранить историю. Позиции остаются в отчётах за прошлые периоды, но не мешают текущей работе.
Способ 3. Свести дубли через поиск и замену значений
Классическая причина раздутого справочника — дубли: один и тот же товар заведён дважды с разными названиями («Бумага А4» и «Бумага офисная А4»). Удалить дубль мешают ссылки из документов. Сначала эти ссылки нужно перевести на одну «правильную» карточку, и только потом помеченный дубль удалится.
Для этого служат два инструмента:
- «Поиск и удаление дублей» — штатная обработка на базе библиотеки стандартных подсистем. Она находит похожие карточки по имени или артикулу, предлагает выбрать главную и автоматически заменяет ссылки на неё, а дубли помечает на удаление. Открывается из раздела обслуживания; если команды нет в меню — через
Главное меню → Все функции → Обработки. - «Поиск и замена значений» — внешняя обработка от 1С для точечной замены всех ссылок на один объект ссылками на другой. Пригодится, когда дублей немного и нужен полный контроль над заменой.
Порядок работы одинаковый:
- Укажите, какую карточку оставляем (главная), а какие считаем дублями.
- Запустите замену ссылок — все документы начнут ссылаться на главную позицию.
- Проверьте, что дубли остались без ссылок, и удалите их помеченными объектами (способ 1).
Замену ссылок делают в монопольном режиме или когда в базе никто не работает: она массово перезаписывает документы. Обязательно на копии прогоните процедуру заранее и сверьте остатки «до» и «после».
Способ 4. Программная пометка больших объёмов
Когда убрать нужно тысячи позиций по сложному условию (например, вся номенклатура в архивной группе, по которой за последние годы нет движений), руками это делать бессмысленно. Задачу решает небольшой код в Конфигураторе или консоли запросов — но только силами специалиста и на копии базы.
Правильный подход — не удалять объекты напрямую из кода (это обходит контроль ссылок и ломает базу), а программно проставить пометку удаления, а дальше запустить штатное удаление помеченных, которое проверит ссылки само:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ПометкаУдаления = ЛОЖЬ
| И Номенклатура.Родитель = &Группа";
Запрос.УстановитьПараметр("Группа", ГруппаАрхив);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.УстановитьПометкуУдаления(Истина);
КонецЦикла;
Код помечает к удалению все позиции из заданной группы. После этого остаётся выполнить Администрирование → Обслуживание → Удаление помеченных объектов — и база сама отсеет те, на которые остались ссылки.
Прямое Объект.Удалить() в типовой базе не применяют никогда: оно стирает карточку в обход проверки ссылок и оставляет битые документы. Метод УстановитьПометкуУдаления(Истина) безопасен, потому что только помечает.
Способ 5. Перенести каталог в чистую базу
Для сильно замусоренного справочника на десятки тысяч строк иногда проще не чистить старую базу, а собрать новую — с актуальной номенклатурой и входящими остатками на дату перехода. Способ трудоёмкий, его выбирают, когда:
- справочник исторически вёлся без правил, дублей и мусора больше, чем живых позиций;
- планируется переход на свежую конфигурацию или укрупнение учёта;
- нужно разово «обнулить» каталог, сохранив только то, что продаётся сейчас.
Схема в общих чертах такая:
- Отбираете в старой базе только актуальную номенклатуру (по наличию движений за период, по признаку активности).
- Выгружаете её и входящие остатки — средствами обмена данными или типовым переносом остатков.
- Загружаете в новую базу и начинаете учёт «с чистого листа», а старую оставляете как архив для отчётности.
Это проектная задача, а не рядовая чистка. Планируйте её вместе с бухгалтером и специалистом по 1С, обязательно с тестовым прогоном переноса на копии.
Как выбрать способ очистки
Чтобы не удалить лишнего, отталкивайтесь от того, есть ли по позиции движения и зачем вы её убираете.
| Ситуация | Что делать | Способ |
|---|---|---|
| Карточку завели по ошибке, движений нет | Пометить и удалить помеченные | 1 |
| По позиции есть документы прошлых лет | Перенести в архивную группу | 2 |
| Один товар заведён несколько раз | Свести дубли заменой ссылок | 3 |
| Нужно убрать тысячи позиций по условию | Программно пометить + удалить | 4 |
| Справочник весь в мусоре, идёт переход | Перенести актуальное в новую базу | 5 |
Типичные ошибки при чистке номенклатуры
Эти промахи встречаются чаще всего и обходятся дороже самой чистки:
- ❌ Удаление без резервной копии. Удаление помеченных необратимо. Нет копии — нет пути назад.
- ❌ Запуск удаления, когда в базе работают. Пользователи параллельно создают документы со ссылками на те же карточки — удаление зависает или удаляет не то. Делайте в нерабочее время.
- ❌ Попытка удалить товар с остатками. Если видите длинный список ссылок, значит позиция живая — ей место в архиве, а не в корзине.
- ❌ Прямое удаление из кода.
Объект.Удалить()в обход контроля ссылок оставляет битые документы. Только пометка + штатное удаление. - ❌ Замена дублей без проверки остатков. После сведения дублей сверьте остатки и суммы «до» и «после» — ошибка в выборе главной карточки искажает учёт.