В процессе работы с каталогом товаров часто возникает необходимость классифицировать номенклатуру по признакам, которые не предусмотрены стандартной конфигурацией. Например, нам нужно пометить товар тегами «Акция», «Новинка», «Летний ассортимент» или привязать его к определенной коллекции. Основная сложность заключается в том, что стандартные поля обычно предполагают выбор только одного значения, в то время как теги подразумевают множественный выбор.
В этой статье мы подробно разберем, какими способами можно решить задачу добавления «тегов» или выбора нескольких позиций из другого справочника для одной карточки номенклатуры. Мы рассмотрим как стандартные настройки, доступные обычному пользователю, так и технические решения, требующие вмешательства программиста.
Рассмотрим самый простой и доступный способ, который упоминался в обсуждении на форуме. Этот механизм позволяет добавлять новые поля в карточку номенклатуры в пользовательском режиме, не прибегая к программированию и не снимая конфигурацию с поддержки.
Разберем по шагам, как включить и настроить этот функционал:
Номенклатура и нажмем кнопку «Создать».Проанализируем главный недостаток этого метода: стандартный дополнительный реквизит позволяет выбрать только одно значение из списка. Если нам нужно указать, что товар относится сразу к трем категориям, нам придется создавать три отдельных реквизита (например, «Тег 1», «Тег 2», «Тег 3»), что крайне неудобно для последующего формирования отчетов и фильтрации списка.
Если вы работаете в таких конфигурациях, как «1С:Управление торговлей 11», «1С:ERP» или «1С:Комплексная автоматизация», то для решения задачи «тегов» лучше всего подходит механизм Сегментации. Это штатный инструмент, специально предназначенный для гибкой классификации товаров.
Рассмотрим преимущества сегментов перед обычными реквизитами:
Чтобы начать работу с сегментами, проделаем следующие действия: зайдем в раздел CRM и маркетинг, найдем пункт Сегменты номенклатуры и создадим новый сегмент (например, «Популярные товары»). После этого в карточке сегмента мы сможем либо вручную добавить товары, либо настроить правила автоматического включения.
В конфигурации «1С:Управление нашей фирмой» механизм тегов реализован наиболее современно. В карточке номенклатуры уже присутствует специальное поле для ввода тегов. Мы можем вводить их через запятую, выбирать из уже существующих или создавать новые прямо в процессе редактирования товара. Если ваша программа поддерживает этот функционал, то дополнительных настроек не требуется — достаточно просто начать вводить значения в соответствующее поле.
Если штатные механизмы не подходят (например, вам нужно выбирать позиции именно из конкретного другого справочника), задачу можно решить программно. Проанализируем два основных архитектурных подхода.
Способ А: Добавление табличной части.
Через механизм расширений мы можем добавить в справочник Номенклатура новую табличную часть, например, с именем ДополнительныеТеги. В этой табличной части будет всего одна колонка — ссылка на целевой справочник. Это позволит пользователю добавлять в карточку товара столько «тегов», сколько необходимо.
Пример обращения к такой табличной части в коде может выглядеть так:
Для Каждого СтрокаТега Из ОбъектНоменклатура.ДополнительныеТеги Цикл
Сообщить("Товар имеет тег: " + СтрокаТега.ЗначениеТега);
КонецЦикла;
Способ Б: Использование регистра сведений.
Создание независимого регистра сведений (например, ТегиНоменклатуры) считается более профессиональным подходом. Это не перегружает основную таблицу справочника Номенклатура и позволяет быстрее работать с базой данных при больших объемах информации.
В таком регистре должно быть два измерения:
Номенклатура (Тип: СправочникСсылка.Номенклатура)Тег (Тип: Ссылка на ваш справочник тегов)После того как мы добавили теги одним из вышеперечисленных способов, нам нужно научиться делать по ним отборы. Рассмотрим, как это происходит в стандартном отчете 1С:
Номенклатура.Выясним причину, по которой иногда отбор не срабатывает: если вы используете дополнительные сведения (а не реквизиты), они хранятся в отдельном регистре, и их нужно искать в дереве полей в специальной ветке Дополнительные сведения.
Подводя итог, можно сказать: для начинающего пользователя (как автор темы на форуме) самым простым путем будет использование Дополнительных реквизитов (если достаточно одного значения) или Сегментов (если нужен множественный выбор в типовой торговой конфигурации). Если же требуется уникальный интерфейс и специфическая логика, стоит прибегнуть к расширению конфигурации и созданию Регистра сведений.