Зачем нужно свойство «Дополнительные значения характеристик» в Плане видов характеристик?

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

При разработке конфигураций на платформе 1С:Предприятие 8 программисты часто сталкиваются с объектом План видов характеристик (ПВХ). Одним из самых неоднозначных свойств этого объекта является поле «Дополнительные значения характеристик». На первый взгляд кажется, что система прекрасно функционирует и без его заполнения: характеристики создаются, типы назначаются, данные записываются. Однако это свойство несет в себе важную функциональную нагрузку, влияющую на удобство работы пользователя, логику хранения данных и поведение системы в целом.

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

Суть проблемы: почему возникает путаница?

Рассмотрим стандартную ситуацию. Нам нужно реализовать механизм дополнительных реквизитов для номенклатуры (например, «Цвет», «Размер», «Материал»). Мы создаем ПВХ ДополнительныеРеквизиты и справочник ЗначенияСвойствОбъектов. В ПВХ в поле «Тип значения характеристик» мы включаем наш справочник. На этом этапе многие разработчики задаются вопросом: зачем нужно еще одно отдельное поле «Дополнительные значения характеристик» в палитре свойств, если справочник уже указан в типах?

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

1. Автоматическое определение типа по умолчанию

Первое и самое очевидное следствие заполнения этого поля — это упрощение ввода новых данных в режиме «1С:Предприятие». Проанализируем поведение системы при создании нового элемента в Плане видов характеристик:

  1. Если поле не заполнено: При создании нового свойства (например, «Цвет обуви») поле «Тип значения» будет пустым. Администратору системы придется каждый раз вручную открывать редактор типа данных, искать в огромном списке нужный справочник и выбирать его.
  2. Если поле заполнено: Платформа автоматически подставит указанный справочник в качестве типа значения для каждого нового элемента ПВХ. Это значительно ускоряет настройку системы пользователями, минимизируя риск выбора неверного типа данных.

2. Реализация механизма владельца и фильтрация значений

Это, пожалуй, наиболее важный технический аспект. Справочник, предназначенный для хранения дополнительных значений, обычно является подчиненным Плану видов характеристик. Это значит, что для каждого конкретного свойства (владельца) должен существовать свой изолированный набор значений.

Рассмотрим пример с обувью. У нас есть два свойства: «Цвет» и «Материал». Все они хранятся в одном справочнике ЗначенияСвойствОбъектов.

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

3. Автоматизация интерфейса и быстрое создание значений

Платформа 1С обладает встроенными механизмами генерации интерфейса. Когда свойство заполнено, система понимает, что данный справочник является «основным помощником» для этого ПВХ. Это проявляется в следующем:

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

4. Работа Системы компоновки данных (СКД)

Выясним, как это свойство влияет на отчетность. В СКД при настройке параметров или отборов по характеристикам система обращается к метаданным. Если свойство ДополнительныеЗначенияХарактеристик заполнено, СКД «знает», откуда брать список возможных значений для выпадающего списка в заголовке отчета. Если оно пустое, то при попытке выбрать значение для отбора по характеристике пользователь может увидеть пустой список или окно выбора типа, что крайне неудобно для бизнес-пользователей.

5. Универсальные алгоритмы и программный доступ

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


// Получаем справочник дополнительных значений программно
СправочникЗначений = ПланыВидовХарактеристик.ДополнительныеРеквизиты.ПустаяСсылка().Метаданные().ДополнительныеЗначенияХарактеристик;

Если СправочникЗначений <> Неопределено Тогда
    ИмяСправочника = СправочникЗначений.Имя;
    Сообщить("Значения хранятся в справочнике: " + ИмяСправочника);
КонецЕсли;

Использование такого подхода позволяет писать обработки (например, «Групповое изменение реквизитов» или универсальные выгрузки в Excel), которые не зависят от конкретных имен объектов. Если вы решите переименовать справочник значений, вам не придется искать и исправлять все текстовые упоминания его имени в коде — система сама определит актуальный объект через метаданные.

Подведем итог

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

Основные преимущества использования этого свойства:

  1. Автоматизация: Тип значения заполняется автоматически при создании новых характеристик в режиме предприятия.
  2. Целостность: Платформа обеспечивает связь между характеристикой и ее значениями через механизм подчинения (Владелец).
  3. Юзабилити: Удобный выбор значений в формах и отчетах без лишних кликов.
  4. Гибкость: Возможность написания универсального программного кода, работающего через метаданные.

Таким образом, даже если ваш учебный пример работает без этой настройки, в реальных проектах (особенно при использовании Библиотеки стандартных подсистем — БСП) заполнение этого поля является обязательным стандартом качественной разработки.

← На главную