К статье
Практический материал

Разработка и Конфигурация · 11 мин

План видов характеристик в 1С: что это и как с ним работать

Что такое план видов характеристик в 1С, как он устроен, где применяется, как создать и настроить. Разбор типовых ошибок, примеры кода и ответы на вопросы.

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

Типовой пример — объект «ДополнительныеРеквизитыИСведения» в конфигурациях на базе Библиотеки стандартных подсистем (БСП). Когда пользователь в «1С:Управление торговлей» или «1С:Бухгалтерии» добавляет номенклатуре свойство «Производитель» или «Срок годности», именно план видов характеристик определяет, что это за свойство и какого оно типа.

В статье разобрано, как устроен ПВХ, чем он отличается от справочника, как его создать и настроить, как получать значения характеристик в запросах и каких ошибок стоит избегать при проектировании.

Как устроен план видов характеристик

План видов характеристик по структуре похож на справочник: у него есть код, наименование, иерархия, предопределённые элементы. Но есть ключевое отличие — каждый элемент ПВХ имеет тип значения. Это поле «Тип значения характеристик» задаётся в конфигураторе и определяет, какие данные можно хранить: строку, число, дату, булево, ссылку на справочник или составной тип.

То есть один элемент ПВХ — это не само значение, а «описание характеристики»: например, элемент «Цвет» с типом «СправочникСсылка.Цвета», элемент «Вес» с типом «Число». Сами значения (красный, 5 кг) хранятся в другом месте — чаще всего в табличной части объекта с колонками «Свойство» (ссылка на ПВХ) и «Значение» (соответствующего типа).

У ПВХ есть важная настройка — «Дополнительные значения характеристик». Если её включить и указать справочник, то для характеристик типа «ссылка на этот справочник» пользователи смогут добавлять новые значения прямо в режиме предприятия, не создавая новых элементов ПВХ.

Чем ПВХ отличается от справочника и регистра сведений

Частая путаница у начинающих разработчиков — когда использовать ПВХ, а когда обычный справочник. Разница принципиальна: справочник хранит однородные сущности (контрагенты, склады, валюты), а ПВХ хранит описания разнородных свойств с разными типами значений. Элемент справочника «Цвета» — это конкретный цвет. Элемент ПВХ «Цвет» — это сама характеристика, у которой есть тип, обязательность и набор допустимых значений.

Сравнение вариантов

Справочник

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

План видов характеристик

Подходит для описания разнородных свойств с разными типами: цвет (ссылка), вес (число), сертифицирован (булево). Значения хранятся отдельно.

Реквизит объекта

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

Регистр сведений

Не альтернатива ПВХ, а дополнение: именно в регистре сведений часто хранятся пары «объект — свойство — значение».

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

Как создать и настроить ПВХ в конфигураторе

Создание ПВХ занимает несколько минут, но ошибки на этом этапе потом сложно исправить без конвертации данных. Порядок действий следующий.

Обратите внимание на тип реквизита «Значение» в табличной части: правильно указывать не составной тип вручную, а специальный тип Характеристика.<ИмяПВХ>. Тогда платформа автоматически свяжет значение с типом, заданным в элементе ПВХ, и в поле ввода будет подставляться редактор нужного типа.

Где хранить значения характеристик

Есть три рабочих подхода, и выбор зависит от задачи. Первый — табличная часть объекта. Подходит, когда набор свойств привязан к конкретному экземпляру и редко используется в отборах. Просто реализовать, но медленно работает в запросах при больших объёмах и сложных соединениях.

Второй — регистр сведений с измерением «Объект» и «Свойство» и ресурсом «Значение». Этот вариант лучше подходит для отборов и отчётов, позволяет хранить свойства разных видов объектов в одном месте и не «раздувает» сами объекты. Именно так устроен механизм дополнительных сведений в БСП.

Третий — смешанный: шапочные, часто используемые свойства выносятся в реквизиты, а «длинный хвост» — в ПВХ. Это стандартная практика в типовых конфигурациях: основная аналитика типизирована, а пользовательские свойства живут в механизме дополнительных реквизитов и сведений.

Маршрут решения

Как выбрать хранилище значений

Свойства нужны только на форме объекта и почти не участвуют в отборахИспользуйте табличную часть объекта — это проще всего в реализации
По свойствам строятся отчёты, отборы в списках, обменыИспользуйте регистр сведений «Объект–Свойство–Значение»
Свойство участвует в проведении документов или расчётахВыносите его в обычный реквизит, а не в ПВХ
Набор свойств должен расширяться пользователями без разработчикаИспользуйте ПВХ с дополнительными значениями характеристик

Как получать значения характеристик в запросах и коде

Работа с ПВХ в коде строится вокруг обычных ссылок: элемент ПВХ — это ПланыВидовХарактеристик.ИмяПВХ.НайтиПоНаименованию(...) или предопределённый элемент ПланыВидовХарактеристик.ИмяПВХ.ИмяПредопределенного. Значения читаются из табличной части или регистра сведений запросом с соединением.

bsl
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДопСвойства.Свойство КАК Свойство,
| ДопСвойства.Значение КАК Значение
|ИЗ
| Справочник.Номенклатура.ДополнительныеСвойства КАК ДопСвойства
|ГДЕ
| ДопСвойства.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", НоменклатураСсылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
 Сообщить(Строка(Выборка.Свойство) + " = " + Строка(Выборка.Значение));
КонецЦикла;

Для отбора списка по значению характеристики запрос усложняется: нужно соединить основную таблицу с табличной частью по ссылке и добавить условия на свойство и значение. На больших базах такие запросы стоит проверять на производительность — соединение с табличной частью без индексов может работать заметно медленно.

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

Типичные ошибки и ограничения

Типичные ошибки
01
Использование ПВХ для критичной учётной логики — значения не типизированы жёстко, проверки сложнее, ошибки всплывают в отчётах.
02
Включение в составной тип всех возможных ссылок — раздувает индексы и замедляет запросы.
03
Хранение значений в табличной части там, где нужны массовые отборы — отчёты начинают «тормозить» на больших объёмах.
04
Создание дублей элементов ПВХ («Цвет», «цвет», «Цвет товара») — размывает аналитику и ломает группировки в отчётах.
05
Удаление элементов ПВХ, по которым уже есть значения, — приводит к битым ссылкам в данных.

Отдельно стоит сказать про производительность. ПВХ сам по себе лёгкий объект, но схема «объект — свойство — значение» (по сути EAV-модель) проигрывает обычным реквизитам в скорости выборок. Если по свойству постоянно фильтруют списки и строят отчёты на миллионах записей — это сигнал перенести свойство в реквизит или в регистр сведений с правильными индексами.

Проверка результата после настройки

После внедрения ПВХ убедитесь, что механизм работает корректно во всех сценариях: ручной ввод, программная запись, отчёты, обмены. Особое внимание уделите отчётам на СКД — там для вывода характеристик обычно используется левое соединение с табличной частью или регистром, и ошибка в соединении даёт задвоение строк.

Контрольные точки

Как проверить результат

Ввод значения на форме объекта
Норма

Поле значения предлагает тип, соответствующий элементу ПВХ

Тревожный признак

Поле принимает любой тип или не даёт выбрать значение

Отчёт по значениям характеристик
Норма

Одна строка объекта, значения в колонках или строках без дублей

Тревожный признак

Строки задваиваются, значения пустые при заполненных данных

Программная запись через обработку
Норма

Тип записанного значения совпадает с типом элемента ПВХ

Тревожный признак

Записываются значения несоответствующего типа

Удаление элемента ПВХ
Норма

Платформа предупреждает о существующих ссылках

Тревожный признак

Элемент удаляется, в данных остаются битые ссылки

Итог

Что важно запомнить

План видов характеристик — механизм описания дополнительных свойств объектов с заданным типом значения. Используйте его для расширяемой аналитики, а не для учётной логики; храните значения в табличной части или регистре сведений в зависимости от потребности в отборах; контролируйте составной тип и не удаляйте используемые элементы без проверки ссылок.

Частые вопросы о планах видов характеристик

Чем предопределённый элемент ПВХ отличается от обычного?

Предопределённый элемент создаётся в конфигураторе и имеет уникальное имя, по которому к нему можно обратиться в коде напрямую: ПланыВидовХарактеристик.ИмяПВХ.ИмяЭлемента. Обычные элементы создаются пользователем и ищутся только по наименованию или коду, что менее надёжно при разработке.

Можно ли изменить тип значения характеристик после заполнения базы?

Технически можно, но с осторожностью. Добавление новых типов безопасно, а удаление типов из составного — рискованно: существующие значения удалённого типа могут стать недоступными или вызвать ошибки. Перед изменением проверьте, какие типы реально используются в данных.

Как вывести значения характеристик в отчёт на СКД?

В запросе набора данных сделайте левое соединение основной таблицы с табличной частью дополнительных свойств (или регистром сведений) по ссылке на объект. Для вывода разных характеристик в отдельные колонки используйте несколько соединений с условием на конкретное свойство либо настройки ресурсов и группировок СКД.

Почему в поле значения доступен не тот тип, который задан в элементе ПВХ?

Чаще всего реквизит «Значение» в табличной части имеет составной тип, заданный вручную, а не тип Характеристика.<ИмяПВХ>. Замените тип реквизита на ссылку на характеристику — тогда платформа будет автоматически ограничивать ввод типом из выбранного элемента ПВХ.

Что выбрать: ПВХ или добавить реквизит в справочник?

Если свойство стабильно, обязательно для всех элементов и участвует в проведении документов или расчётах — добавляйте реквизит. Если набор свойств расширяется пользователями, различается между группами товаров и нужен в основном для аналитики и печати — используйте ПВХ.

Как найти все объекты, где заполнено конкретное свойство?

Напишите запрос к табличной части дополнительных свойств или к регистру сведений с условием «Свойство = &Свойство» и выведите ссылки на объекты. Для разового поиска удобно использовать консоль запросов в режиме предприятия.