Номенклатура помечена, а из базы не уходит: что держит позицию и как её убрать
Содержание
Номенклатура в 1С 8.3 не удаляется, пока на неё ссылается хоть один объект базы: документ, запись регистра, цена, штрихкод, спецификация, другая карточка. Клавиша Del только ставит пометку удаления. Физически позицию стирает обработка «Удаление помеченных объектов», и она же показывает, что именно мешает. В БП 3.0 путь: Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов.
Если обработка оставляет позицию в списке «не удалено», причина почти всегда в одном из семи случаев ниже. Разберём, как опознать каждый и что с ним делать, не сломав остатки и отчёты.
Как 1С вообще удаляет элементы справочника
В типовых конфигурациях на базе БСП (Бухгалтерия 3.0, УТ 11, КА 2, ERP, УНФ) удаление идёт в два шага:
- 🏷️ Пометка. В списке номенклатуры выделяете строку и жмёте
Del(или команду пометки в меню «Ещё»). Строка становится перечёркнутой, в ней появляется красный крестик. ПовторныйDelснимает пометку. - 🧹 Удаление. Администратор запускает обработку удаления помеченных объектов. Она проверяет ссылки и удаляет только то, на что никто не ссылается.
Прямое удаление (Shift+Del) в типовых ролях обычным пользователям не дано. Так задумано: проверка ссылок защищает учёт от «битых» строк в документах.
Где найти обработку в разных конфигурациях:
| Конфигурация | Путь к обработке |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов |
| Управление торговлей 11, КА 2, ERP | НСИ и администрирование → Администрирование → Обслуживание → блок корректировки данных |
| Любая конфигурация | Главное меню → Все функции → Стандартные → Удаление помеченных объектов |
Если пункта «Все функции» нет, включите его: Главное меню → Сервис → Параметры → флажок «Отображать команду “Все функции”».
Позиция есть в документах
Самая частая причина. Номенклатура стоит в табличной части поступления, реализации, перемещения, инвентаризации, ввода остатков. Неважно, проведён документ или нет: ссылка в строке есть, значит, позицию удалить нельзя.
Как увидеть, какие документы держат позицию:
- Запустите удаление помеченных объектов.
- После проверки обработка выведет список неудалённых объектов. Выделите номенклатуру.
- Справа или в нижней части формы появятся «места использования» — документы, регистры и справочники со ссылкой на неё.
- Двойной щелчок по строке открывает мешающий объект.
Дальше решаете по ситуации:
- 📄 Документ создан по ошибке. Отмените проведение, пометьте документ на удаление и запустите обработку ещё раз. Документ и номенклатура удалятся за один проход, если других ссылок нет.
- 🔁 Документ нужен, а товар в нём — дубль. Замените в строках позицию на правильную. Для массовой замены есть обработка «Поиск и удаление дублей» (в БП 3.0 она в том же блоке «Корректировка данных»). Она переписывает ссылки во всех объектах и удаляет дубль.
- 📦 По товару реально были движения. Удалять его не нужно. Оставьте пометку или перенесите карточку в группу вроде «Не используется». История продаж и остатков сохранится.
Документы закрытого периода трогать не стоит. Если в базе установлена дата запрета изменения данных, отмена проведения и правка таких документов будут заблокированы. И правильно: изменение старых документов меняет сданную отчётность.
Пометка стоит, а обработка пишет «не удалено»
Бывает, что пользователь пометил позицию и ждёт, что она исчезнет сама. Не исчезнет: пометка — это только флаг. Пока администратор не запустит обработку, карточка лежит в базе, а помеченные строки видны в списке (если не включён отбор, скрывающий их).
Если обработку запускали, но позиция осталась, проверьте режим:
- 🎯 Выборочное удаление. Обработка удаляет только отмеченные флажком объекты. Номенклатура могла быть в списке без флажка.
- 🔗 Связанные помеченные объекты. Если позицию держит другой помеченный объект (документ, штрихкод, спецификация), они удаляются вместе только когда оба отмечены к удалению в одном проходе.
- 👥 Работа других пользователей. Пока обработка проверяла ссылки, кто-то мог создать документ с этим товаром. Тогда позиция уходит в «не удалено». Запускайте удаление, когда в базе никто не работает : вечером или в выходной.
Ссылки из регистров сведений и накопления
Номенклатура может не встречаться ни в одном документе, но всё равно держаться за базу через регистры. Типичные примеры:
- 💰 Цены номенклатуры. В БП 3.0 цены пишет документ «Установка цен номенклатуры». В УТ 11 — документ установки цен по видам цен. Пока документ с этой позицией существует, удаления не будет.
- 🏷️ Штрихкоды. Записи о штрихкодах ссылаются на товар. В местах использования они видны как записи регистра.
- 📒 Счета учёта номенклатуры (БП 3.0). Если для позиции или её группы задан отдельный счёт учёта, эта настройка — тоже ссылка.
- 🧾 Остатки и обороты. Регистры накопления заполняются только документами. Удалили документы — ушли и движения.
Порядок такой. Записи регистров, которые пишут документы, убираются вместе с документом. Записи «независимых» регистров (штрихкоды, настройки счетов учёта) правьте в самом регистре: откройте его через Все функции → Регистры сведений, отберите по номенклатуре и удалите строку. Либо пометьте связанный документ, если запись создана им.
Не пытайтесь удалить строку регистра накопления вручную. Такие записи привязаны к документу-регистратору. Правильный путь — отменить проведение или удалить сам документ.
Права пользователя не позволяют удалить
Удаление номенклатуры — административная операция. В типовых профилях групп доступа она обычно доступна только администратору.
Признаки проблемы с правами:
- 🚫 команды удаления помеченных объектов нет ни в разделе «Администрирование», ни в «Все функции»;
- 🚫 при пометке на удаление 1С выдаёт сообщение о нарушении прав доступа;
- 🚫 обработка открывается, но удаляет только объекты, созданные самим пользователем (в некоторых конфигурациях есть такое ограничение).
Что делать:
- Под администратором откройте
Администрирование → Настройки пользователей и прав → Пользователи(в УТ 11 —НСИ и администрирование → Настройки пользователей и прав). - Откройте карточку пользователя и посмотрите его группы доступа.
- Если пользователь должен удалять объекты, включите его в группу с профилем, где есть право на удаление помеченных объектов, — чаще всего это «Администратор».
Не раздавайте права администратора всем, кому нужно удалить одну карточку. Безопаснее, чтобы удаление запускал один ответственный человек по графику, например раз в месяц после закрытия периода.
Номенклатура — это группа с вложенными позициями
Справочник «Номенклатура» иерархический. Группа (папка) не удаляется, пока в ней лежит хотя бы один элемент без пометки.
Как устроено:
- 📁 При пометке группы платформа помечает и все вложенные элементы. Если внутри есть товары с движениями, они будут в списке «не удалено», и группа вместе с ними.
- 📁 Если внутри группы есть позиция, которую сняли с пометки, группа тоже останется: её держит дочерний элемент.
Решение:
- Откройте группу и посмотрите, какие позиции в ней нужны.
- Нужные перенесите в другую группу. В списке выделите их и перетащите мышью в новую папку, либо смените поле «Группа» (родитель) в карточке.
- Пометьте на удаление пустую группу и запустите обработку.
Не помечайте группу целиком, «чтобы удалить одну позицию». Пометка уйдёт на все вложенные товары, и их придётся снимать по одному.
Ещё одна связь — «аналоги», «комплекты» и спецификации. Если позиция входит в состав комплекта или производственной спецификации другой номенклатуры, её держит эта спецификация. Удалите строку из состава или пометьте спецификацию.
Обмен данными и интеграции возвращают позицию
Если база связана обменом с другой базой (УТ ↔ БП, РИБ с филиалами, выгрузка в интернет-магазин), удаление может сработать, но через день позиция вернётся.
Почему так происходит:
- 🔄 Объект живёт в другой базе. Вы удалили товар в Бухгалтерии, а в Управлении торговлей он остался. Следующий сеанс синхронизации создаёт его заново.
- 🔄 Сопоставление объектов. Механизм обмена хранит соответствие «наша позиция ↔ позиция в другой базе». Эта запись — тоже ссылка, и она может мешать удалению.
- 🔄 Сайт или внешний сервис. Обмен с интернет-магазином или маркетплейсом может создавать карточки заново при выгрузке заказов.
Правильный порядок для синхронизации «УТ → БП»:
- Пометьте позицию на удаление в базе-источнике (обычно это УТ или КА).
- Выполните синхронизацию: пометка передастся во вторую базу.
- Убедитесь, что в обеих базах на позицию нет ссылок.
- Запустите удаление помеченных объектов в каждой базе.
В распределённой базе (РИБ) удаляйте объекты в главном узле. Подчинённые узлы получат изменение со следующим обменом.
Ошибки базы данных при удалении
Иногда обработка падает с ошибкой платформы, а не с вежливым «не удалено». Частые сообщения:
Конфликт блокировок при выполнении транзакции— в это время кто-то работал с той же таблицей. Повторите удаление без пользователей.Превышено максимальное время ожидания предоставления блокировки— то же самое на клиент-серверной базе под нагрузкой.Объект не найденв местах использования — в базе есть «битая» ссылка на уже удалённый объект.
Если ошибка повторяется при пустой базе, проверьте её целостность через «Тестирование и исправление»:
- Сделайте резервную копию: в Конфигураторе
Администрирование → Выгрузить информационную базу(файл.dt). - Предупредите пользователей и дождитесь, пока все выйдут: проверке нужен монопольный доступ, открытые сеансы её не пустят.
- Запустите
Администрирование → Тестирование и исправление. - Отметьте «Проверка логической целостности информационной базы» и «Проверка ссылочной целостности информационной базы».
- Для битых ссылок выберите действие. «Не изменять» — только отчёт. «Очищать ссылки» — поле станет пустым. «Создавать объекты» — 1С создаст заглушки, которые потом можно заменить на правильные.
- Сначала запустите режим «Только тестирование», посмотрите отчёт и только потом — с исправлением.
Режим исправления меняет данные необратимо. Без свежей выгрузки .dt его не запускайте.
Для файловой базы на большом объёме полезно ещё сжатие таблиц в том же окне. Оно не исправит логику, но уберёт мусор от многократных удалений.
Чего делать нельзя
Есть способы «удалить быстро», которые потом обходятся дороже:
- ❌ Удаление кодом без проверки ссылок. Метод
Удалить()у объекта в обработке или через консоль кода стирает элемент мимо проверки. Все документы с этим товаром получат строки<Объект не найден>, отчёты по остаткам разъедутся. - ❌ Правка таблиц СУБД напрямую. Через SQL-запросы к базе на сервере 1С удалять данные нельзя: сломаются связи и итоги регистров.
- ❌ Удаление товара с остатком. Сначала спишите или переместите остаток документом, иначе в оборотке останется сумма без аналитики.
Если позиция мешает только визуально, её проще скрыть: оставить пометку удаления и включить в списке отбор, который не показывает помеченные. Помеченные элементы скрывает отбор по полю «Пометка удаления» в настройках списка (команда в меню «Ещё» над списком).
Частые вопросы об удалении номенклатуры
Можно ли удалить номенклатуру, если по ней были продажи?
Почему обычный пользователь может пометить, но не может удалить?
Как удалить сразу сотню лишних позиций?
Ctrl или Shift, нажмите Del, затем запустите обработку удаления в режиме для всех помеченных объектов.