Номенклатура помечена, а из базы не уходит: что держит позицию и как её убрать

· 9 мин

Содержание

Номенклатура в 1С 8.3 не удаляется, пока на неё ссылается хоть один объект базы: документ, запись регистра, цена, штрихкод, спецификация, другая карточка. Клавиша Del только ставит пометку удаления. Физически позицию стирает обработка «Удаление помеченных объектов», и она же показывает, что именно мешает. В БП 3.0 путь: Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов.

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

Как 1С вообще удаляет элементы справочника

В типовых конфигурациях на базе БСП (Бухгалтерия 3.0, УТ 11, КА 2, ERP, УНФ) удаление идёт в два шага:

  1. 🏷️ Пометка. В списке номенклатуры выделяете строку и жмёте Del (или команду пометки в меню «Ещё»). Строка становится перечёркнутой, в ней появляется красный крестик. Повторный Del снимает пометку.
  2. 🧹 Удаление. Администратор запускает обработку удаления помеченных объектов. Она проверяет ссылки и удаляет только то, на что никто не ссылается.

Прямое удаление (Shift+Del) в типовых ролях обычным пользователям не дано. Так задумано: проверка ссылок защищает учёт от «битых» строк в документах.

Где найти обработку в разных конфигурациях:

КонфигурацияПуть к обработке
Бухгалтерия предприятия 3.0Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов
Управление торговлей 11, КА 2, ERPНСИ и администрирование → Администрирование → Обслуживание → блок корректировки данных
Любая конфигурацияГлавное меню → Все функции → Стандартные → Удаление помеченных объектов

Если пункта «Все функции» нет, включите его: Главное меню → Сервис → Параметры → флажок «Отображать команду “Все функции”».

Позиция есть в документах

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

Как увидеть, какие документы держат позицию:

  1. Запустите удаление помеченных объектов.
  2. После проверки обработка выведет список неудалённых объектов. Выделите номенклатуру.
  3. Справа или в нижней части формы появятся «места использования» — документы, регистры и справочники со ссылкой на неё.
  4. Двойной щелчок по строке открывает мешающий объект.

Дальше решаете по ситуации:

  • 📄 Документ создан по ошибке. Отмените проведение, пометьте документ на удаление и запустите обработку ещё раз. Документ и номенклатура удалятся за один проход, если других ссылок нет.
  • 🔁 Документ нужен, а товар в нём — дубль. Замените в строках позицию на правильную. Для массовой замены есть обработка «Поиск и удаление дублей» (в БП 3.0 она в том же блоке «Корректировка данных»). Она переписывает ссылки во всех объектах и удаляет дубль.
  • 📦 По товару реально были движения. Удалять его не нужно. Оставьте пометку или перенесите карточку в группу вроде «Не используется». История продаж и остатков сохранится.

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

Пометка стоит, а обработка пишет «не удалено»

Бывает, что пользователь пометил позицию и ждёт, что она исчезнет сама. Не исчезнет: пометка — это только флаг. Пока администратор не запустит обработку, карточка лежит в базе, а помеченные строки видны в списке (если не включён отбор, скрывающий их).

Если обработку запускали, но позиция осталась, проверьте режим:

  • 🎯 Выборочное удаление. Обработка удаляет только отмеченные флажком объекты. Номенклатура могла быть в списке без флажка.
  • 🔗 Связанные помеченные объекты. Если позицию держит другой помеченный объект (документ, штрихкод, спецификация), они удаляются вместе только когда оба отмечены к удалению в одном проходе.
  • 👥 Работа других пользователей. Пока обработка проверяла ссылки, кто-то мог создать документ с этим товаром. Тогда позиция уходит в «не удалено». Запускайте удаление, когда в базе никто не работает : вечером или в выходной.
Диагностика: выберите симптом

Ссылки из регистров сведений и накопления

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

  • 💰 Цены номенклатуры. В БП 3.0 цены пишет документ «Установка цен номенклатуры». В УТ 11 — документ установки цен по видам цен. Пока документ с этой позицией существует, удаления не будет.
  • 🏷️ Штрихкоды. Записи о штрихкодах ссылаются на товар. В местах использования они видны как записи регистра.
  • 📒 Счета учёта номенклатуры (БП 3.0). Если для позиции или её группы задан отдельный счёт учёта, эта настройка — тоже ссылка.
  • 🧾 Остатки и обороты. Регистры накопления заполняются только документами. Удалили документы — ушли и движения.

Порядок такой. Записи регистров, которые пишут документы, убираются вместе с документом. Записи «независимых» регистров (штрихкоды, настройки счетов учёта) правьте в самом регистре: откройте его через Все функции → Регистры сведений, отберите по номенклатуре и удалите строку. Либо пометьте связанный документ, если запись создана им.

Не пытайтесь удалить строку регистра накопления вручную. Такие записи привязаны к документу-регистратору. Правильный путь — отменить проведение или удалить сам документ.

Права пользователя не позволяют удалить

Удаление номенклатуры — административная операция. В типовых профилях групп доступа она обычно доступна только администратору.

Признаки проблемы с правами:

  • 🚫 команды удаления помеченных объектов нет ни в разделе «Администрирование», ни в «Все функции»;
  • 🚫 при пометке на удаление 1С выдаёт сообщение о нарушении прав доступа;
  • 🚫 обработка открывается, но удаляет только объекты, созданные самим пользователем (в некоторых конфигурациях есть такое ограничение).

Что делать:

  1. Под администратором откройте Администрирование → Настройки пользователей и прав → Пользователи (в УТ 11 — НСИ и администрирование → Настройки пользователей и прав).
  2. Откройте карточку пользователя и посмотрите его группы доступа.
  3. Если пользователь должен удалять объекты, включите его в группу с профилем, где есть право на удаление помеченных объектов, — чаще всего это «Администратор».

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

Номенклатура — это группа с вложенными позициями

Справочник «Номенклатура» иерархический. Группа (папка) не удаляется, пока в ней лежит хотя бы один элемент без пометки.

Как устроено:

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

Решение:

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

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

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

Обмен данными и интеграции возвращают позицию

Если база связана обменом с другой базой (УТ ↔ БП, РИБ с филиалами, выгрузка в интернет-магазин), удаление может сработать, но через день позиция вернётся.

Почему так происходит:

  • 🔄 Объект живёт в другой базе. Вы удалили товар в Бухгалтерии, а в Управлении торговлей он остался. Следующий сеанс синхронизации создаёт его заново.
  • 🔄 Сопоставление объектов. Механизм обмена хранит соответствие «наша позиция ↔ позиция в другой базе». Эта запись — тоже ссылка, и она может мешать удалению.
  • 🔄 Сайт или внешний сервис. Обмен с интернет-магазином или маркетплейсом может создавать карточки заново при выгрузке заказов.

Правильный порядок для синхронизации «УТ → БП»:

  1. Пометьте позицию на удаление в базе-источнике (обычно это УТ или КА).
  2. Выполните синхронизацию: пометка передастся во вторую базу.
  3. Убедитесь, что в обеих базах на позицию нет ссылок.
  4. Запустите удаление помеченных объектов в каждой базе.

В распределённой базе (РИБ) удаляйте объекты в главном узле. Подчинённые узлы получат изменение со следующим обменом.

Ошибки базы данных при удалении

Иногда обработка падает с ошибкой платформы, а не с вежливым «не удалено». Частые сообщения:

  • Конфликт блокировок при выполнении транзакции — в это время кто-то работал с той же таблицей. Повторите удаление без пользователей.
  • Превышено максимальное время ожидания предоставления блокировки — то же самое на клиент-серверной базе под нагрузкой.
  • Объект не найден в местах использования — в базе есть «битая» ссылка на уже удалённый объект.

Если ошибка повторяется при пустой базе, проверьте её целостность через «Тестирование и исправление»:

  1. Сделайте резервную копию: в Конфигураторе Администрирование → Выгрузить информационную базу (файл .dt).
  2. Предупредите пользователей и дождитесь, пока все выйдут: проверке нужен монопольный доступ, открытые сеансы её не пустят.
  3. Запустите Администрирование → Тестирование и исправление.
  4. Отметьте «Проверка логической целостности информационной базы» и «Проверка ссылочной целостности информационной базы».
  5. Для битых ссылок выберите действие. «Не изменять» — только отчёт. «Очищать ссылки» — поле станет пустым. «Создавать объекты» — 1С создаст заглушки, которые потом можно заменить на правильные.
  6. Сначала запустите режим «Только тестирование», посмотрите отчёт и только потом — с исправлением.

Режим исправления меняет данные необратимо. Без свежей выгрузки .dt его не запускайте.

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

Чего делать нельзя

Есть способы «удалить быстро», которые потом обходятся дороже:

  • ❌ Удаление кодом без проверки ссылок. Метод Удалить() у объекта в обработке или через консоль кода стирает элемент мимо проверки. Все документы с этим товаром получат строки <Объект не найден>, отчёты по остаткам разъедутся.
  • ❌ Правка таблиц СУБД напрямую. Через SQL-запросы к базе на сервере 1С удалять данные нельзя: сломаются связи и итоги регистров.
  • ❌ Удаление товара с остатком. Сначала спишите или переместите остаток документом, иначе в оборотке останется сумма без аналитики.

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

Частые вопросы об удалении номенклатуры

Можно ли удалить номенклатуру, если по ней были продажи?
Нет, пока существуют документы с ней. Да и не нужно: история продаж пропадёт. Оставьте пометку или перенесите позицию в архивную группу.
Почему обычный пользователь может пометить, но не может удалить?
Пометка и окончательное удаление — разные права. Пометку дают многим, удаление помеченных объектов обычно только администратору.
Как удалить сразу сотню лишних позиций?
Выделите их в списке с зажатым Ctrl или Shift, нажмите Del, затем запустите обработку удаления в режиме для всех помеченных объектов.
Восстановится ли позиция, если удалил по ошибке?
Из самой 1С — нет, корзины нет. Вернуть можно только из резервной копии базы или загрузкой из другой базы через обмен.
Удаление помеченных объектов идёт очень долго. Это нормально?
На большой базе — да: обработка проверяет ссылки по всем таблицам. Запускайте её, когда никто не работает, и не прерывайте.