Как правильно удалить неиспользуемую номенклатуру в 1С:Розница 2.0, сохранив целостность базы?

Пользователь 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

В процессе работы в программе «1С:Розница 2.0» справочник номенклатуры неизбежно разрастается. Появляются товары, которые больше не закупаются, позиции-дубли или ошибочно заведенные карточки. Когда пользователь пытается их удалить, система блокирует это действие, ссылаясь на наличие движений по документам прошлых периодов. В этой статье мы подробно разберем, как очистить базу от лишних позиций, не нарушив при этом исторические отчеты и ссылочную целостность данных.

Почему нельзя просто удалить номенклатуру?

В системе 1С действует принцип ссылочной целостности. Если товар хотя бы один раз был продан, закуплен или списан, ссылка на него сохранилась в соответствующих документах и регистрах накопления. Проанализируем, что произойдет, если принудительно удалить такой элемент (например, через интерактивное удаление Shift+Del): во всех документах вместо названия товара появится надпись «Объект не найден» с длинным буквенно-цифровым кодом (GUID). Это сделает невозможным формирование отчетов за прошлые периоды и может привести к критическим ошибкам в работе базы данных.

Рассмотрим безопасные и эффективные методы решения этой задачи.

Способ 1. Использование обработки «Поиск и замена значений»

Этот метод считается одним из самых адекватных, если вам нужно физически уменьшить количество карточек в справочнике Номенклатура, сохранив при этом общие суммы в отчетах. Суть заключается в том, чтобы «схлопнуть» все ненужные товары в одну служебную карточку.

  1. Создадим в справочнике новый элемент с названием, например, «Архивный товар (не использовать)».
  2. Воспользуемся стандартной обработкой «Поиск и замена значений» (ее можно найти на дисках ИТС или в составе дополнительных инструментов администратора).
  3. В поле «Что заменять» выберем все позиции, которые подлежат удалению.
  4. В поле «На что заменять» укажем наш созданный «Архивный товар».
  5. Запустим процесс замены. Программа найдет все ссылки на старые товары во всех чеках, поступлениях и регистрах и заменит их на одну общую ссылку.

Результат: Старые документы останутся корректными с точки зрения сумм и количеств, но ссылаться они будут на общую карточку. Теперь старые карточки товаров не имеют ссылок, и их можно удалить стандартным средством Администрирование — Обслуживание — Удаление помеченных объектов.

Способ 2. Ограничение доступа на уровне записей (RLS)

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

Для этого настроим RLS (Record Level Security). Это позволит программе «фильтровать» справочник на уровне базы данных для определенных пользователей.

  1. Создадим в справочнике Номенклатура папку «_АРХИВ».
  2. Перенесем туда все неиспользуемые позиции.
  3. В настройках профиля групп доступа для роли «Пользователь» (или аналогичной) установим ограничение на чтение справочника номенклатуры.
  4. Пропишем условие на языке запросов 1С:

ГДЕ Ссылка НЕ В ИЕРАРХИИ (ЗНАЧЕНИЕ(Справочник.Номенклатура.Архив))

После такой настройки пользователи в окне подбора и в списке справочника просто перестанут видеть товары из архивной папки. При этом в старых отчетах администратор или бухгалтер с полными правами по-прежнему сможет увидеть детальную информацию по каждой позиции.

Способ 3. Свертка информационной базы

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

Проанализируем шаги выполнения свертки:

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

Способ 4. Групповое изменение реквизитов и фильтры

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

Посмотрим на алгоритм действий:

Технические нюансы: что еще держит номенклатуру?

Бывают случаи, когда документов нет, но система все равно не дает удалить карточку. Проанализируем скрытые связи, которые часто забывают очистить:

  1. Регистр сведений «Штрихкоды номенклатуры»: Записи в этом регистре блокируют удаление. Перед очисткой справочника нужно найти и удалить все штрихкоды, привязанные к этим позициям.
  2. Цены номенклатуры: Если на товар когда-то была установлена цена (документ Установка цен номенклатуры), запись в регистре сведений будет препятствовать удалению.
  3. Минимальные остатки: Проверьте, не заданы ли для товара значения в регистре Уровни запасов.
  4. Изображения: Если к карточке прикреплены файлы картинок, они также являются ссылками.

Критическое предупреждение: Shift+Del

Мы крайне не рекомендуем использовать метод интерактивного удаления (предоставление права на удаление через конфигуратор и использование Shift+Del). Хотя это кажется быстрым решением, последствия для базы данных могут быть плачевными:

Резюме

Для качественной очистки базы «1С:Розница 2.0» лучше всего сочетать методы: сначала выполнить свертку базы для удаления старых движений, затем очистить сопутствующие регистры (штрихкоды, цены), и только после этого воспользоваться стандартным механизмом удаления помеченных объектов. Если свертка не планируется — используйте скрытие через RLS или замену значений на один архивный элемент. Это гарантирует стабильную работу программы и достоверность ваших отчетов.

← На главную