Как скрыть неиспользуемую или дублирующуюся номенклатуру в 1С:УТ 11, ERP и КА

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

В процессе работы с крупными базами данных на платформе 1С:Предприятие 8.3 часто возникает ситуация, когда в справочнике Номенклатура появляются дубли или позиции, которые более не актуальны для текущей деятельности. Простое удаление таких объектов невозможно, так как по ним уже зафиксированы движения в прошлых периодах. Даже пометка на удаление не всегда решает проблему: такие позиции продолжают отображаться в поиске и формах подбора, сбивая с толку пользователей. Для поиска и корректного объединения повторяющихся позиций с заменой ссылок можно использовать инструмент для поиска и удаления дублей номенклатуры.

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

Метод 1. Использование статусов номенклатуры (Типовой функционал)

В современных редакциях конфигураций 1С:ERP и Управление торговлей 11 (начиная с версий 2.5/11.5) реализован штатный механизм управления жизненным циклом товара. Разберем, как им пользоваться:

  1. Откроем карточку номенклатуры, которую нужно скрыть.
  2. Найдем реквизит Статус.
  3. Установим значение Закрыта.

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

Метод 2. Программное скрытие через обработку получения данных выбора

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

Выясним причину, по которой стандартный поиск выдает все результаты: по умолчанию запрос платформы не учитывает пометку на удаление. Нам нужно перехватить событие ОбработкаПолученияДанныхВыбора. Рассмотрим пример кода, который добавит фильтр:


&Вместо("ОбработкаПолученияДанныхВыбора")
Процедура Расш_ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
    
    // Добавляем условие, чтобы не выбирать помеченные на удаление
    Параметры.Отбор.Вставить("ПометкаУдаления", Ложь);
    
    // Если в конфигурации используется статус номенклатуры, можно добавить и его
    // Параметры.Отбор.Вставить("Статус", Перечисления.СтатусыНоменклатуры.Активна);
    
КонецПроцедуры

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

Метод 3. Использование механизма RLS (Ограничение доступа на уровне записей)

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

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

Важный нюанс: использование RLS может снизить производительность системы, если в базе работают сотни пользователей и справочник номенклатуры насчитывает сотни тысяч позиций. Однако это гарантированный способ «спрятать» объекты даже из стандартных списков выбора.

Метод 4. Настройка полнотекстового поиска

Часто пользователи жалуются: «Мы переименовали товар, добавив в начало Z-Z-Z, но при поиске он всё равно вылетает первым!». Это происходит из-за того, что данные сохранены в индексе полнотекстового поиска (ППС). Разберем, как навести порядок:

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

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

Метод 5. Административные методы (Без изменения кода)

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

  1. Переименование: Заменяем краткое наименование на UID объекта или набор случайных символов. Это исключит случайное нахождение товара по смысловому поиску. Чтобы не потерять связь, старое название можно вынести в Дополнительные сведения.
  2. Сортировка: Добавление префикса «яяя_» в начало наименования отправит позицию в самый конец алфавитного списка.
  3. Сегментация: Создадим динамический сегмент «Только актуальные товары». В формах подбора (если они доработаны или позволяют настройку фильтров) установим отбор по этому сегменту.

Особенности учета ГФУ и остатков

Проанализируем техническую сторону вопроса, упомянутую в обсуждении. Если у дублей были разные Группы финансового учета (ГФУ), это означает, что они отражались на разных счетах бухгалтерского учета. Перед тем как «прятать» номенклатуру, убедитесь в следующем:

  1. Все остатки по регистрам Товары на складах и Товары в ячейках обнулены (перенесены на правильную позицию документом Пересортица товаров или Корректировка остатков).
  2. Сальдо по счетам 10, 41, 43 в бухгалтерском учете также закрыто.
  3. В текущем месяце по скрываемой номенклатуре не было движений, иначе процедура Закрытия месяца может выдать ошибки при расчете себестоимости.

Таким образом, для качественного сокрытия неиспользуемых позиций в 1С:УТ 11 или ERP рекомендуется комбинировать установку статуса Закрыта с программным фильтром в ОбработкаПолученияДанныхВыбора через расширение. Это обеспечит чистоту справочников и удобство работы пользователей без риска нарушения целостности исторических данных.

← На главную