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