Почему справочник «Наборы упаковок» в 1С:ERP, КА и УТ 11 не имеет иерархии и как правильно настроить удобный выбор

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

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

Рассмотрим подробно, почему разработчики фирмы 1С отказались от иерархии в данном объекте, проанализируем критические риски при доработке структуры справочника и разберем проверенные способы решения этой задачи без снятия конфигурации с поддержки.

Архитектурная логика типового решения

В типовой архитектуре флагманских решений 1С справочник НаборыУпаковок спроектирован не как справочник брендов или классификатор физической тары, а как нормативно-справочный классификатор правил учета, весогабаритных характеристик и коэффициентов пересчета.

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

Последствия включения иерархии в конфигураторе

Если изменить свойства справочника НаборыУпаковок и сделать его иерархическим, это приведет к ряду технических проблем при эксплуатации базы данных:

  1. Невозможность настройки через расширение. Платформа 1С не позволяет включить иерархию у существующего справочника через механизм расширений. Потребуется снимать объект (или всю конфигурацию) с поддержки, что усложнит последующие обновления.
  2. Сбои в запросах и алгоритмах системы. Встроенные механизмы ордерного склада, WMS (адресного хранения), подсистемы ценообразования и RLS (ограничения прав на уровне записей) рассчитывают получить в качестве значения реквизита конкретную ссылку на набор. Если в алгоритм попадает группа или запрос не содержит проверки ЭтоГруппа = Ложь, система генерирует критические ошибки или некорректно рассчитывает количество товара.
  3. Ошибки обмена данными. Форматы интеграции (включая EnterpriseData, обмены с 1С:Розница, мобильными рабочими местами и маркетплейсами) рассчитывают на стандартную структуру справочника. Появление групп верхнего уровня нарушает сериализацию объектов при синхронизации.

Альтернативные способы организации удобного выбора

Проанализируем безопасные методы, которые позволяют организовать удобный подбор упаковок по производителям и поставщикам, сохраняя типовую конфигурацию в неизменном виде.

Способ 1. Использование дополнительных реквизитов (БСП)

Наиболее простой и рекомендуемый способ — задействовать стандартный механизм дополнительных реквизитов Библиотеки Стандартных Подсистем (БСП):

  1. Перейдем в раздел Администрирование — Общие настройки — Дополнительные реквизиты и сведения.
  2. Добавим для справочника НаборыУпаковок новый дополнительный реквизит, например, ПроизводительУпаковки или Поставщик со типом значения Контрагенты или произвольным значением из списка.
  3. В форме списка и форме выбора справочника через меню Еще — Изменить форму выведем созданный реквизит в колонки формы.
  4. Настроим быструю группировку или отбор по этому полю. Пользователь сможет фильтровать список по конкретному поставщику в один клик.

Способ 2. Подмена формы выбора через расширение конфигурации

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

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

Рассмотрим пример кода в модуле формы выбора расширения, фильтрующий динамический список при выборе категории:


&НаКлиенте
Процедура Расш1_ДеревоКатегорийПриАктивизацииСтроки(Элемент)
    
    ТекущиеДанные = Элемент.ТекущиеДанные;
    Если ТекущиеДанные = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    // Устанавливаем элемент отбора для динамического списка Наборов упаковок
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
        Список,
        "ДополнительныеРеквизиты.Значение",
        ТекущиеДанные.ЗначениеКатегории,
        ВидСравненияКомпоновкиДанных.Равно,
        Истина
    );
    
КонецПроцедуры

Способ 3. Использование индивидуальных наборов упаковок

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

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

← На главную