Разработка и Конфигурация · 11 мин
План видов характеристик в 1С: что это и как с ним работать
Что такое план видов характеристик в 1С, как он устроен, где применяется, как создать и настроить. Разбор типовых ошибок, примеры кода и ответы на вопросы.
План видов характеристик — один из самых полезных, но при этом недооценённых объектов конфигурации 1С. Он решает классическую задачу: пользователю нужно хранить дополнительные свойства номенклатуры, контрагентов или договоров, но разработчик не хочет (или не может) добавлять новый реквизит в метаданные под каждое свойство. ПВХ описывает «список возможных характеристик», а фактические значения хранятся отдельно — в табличной части объекта или в регистре сведений.
Типовой пример — объект «ДополнительныеРеквизитыИСведения» в конфигурациях на базе Библиотеки стандартных подсистем (БСП). Когда пользователь в «1С:Управление торговлей» или «1С:Бухгалтерии» добавляет номенклатуре свойство «Производитель» или «Срок годности», именно план видов характеристик определяет, что это за свойство и какого оно типа.
В статье разобрано, как устроен ПВХ, чем он отличается от справочника, как его создать и настроить, как получать значения характеристик в запросах и каких ошибок стоит избегать при проектировании.
Как устроен план видов характеристик
План видов характеристик по структуре похож на справочник: у него есть код, наименование, иерархия, предопределённые элементы. Но есть ключевое отличие — каждый элемент ПВХ имеет тип значения. Это поле «Тип значения характеристик» задаётся в конфигураторе и определяет, какие данные можно хранить: строку, число, дату, булево, ссылку на справочник или составной тип.
То есть один элемент ПВХ — это не само значение, а «описание характеристики»: например, элемент «Цвет» с типом «СправочникСсылка.Цвета», элемент «Вес» с типом «Число». Сами значения (красный, 5 кг) хранятся в другом месте — чаще всего в табличной части объекта с колонками «Свойство» (ссылка на ПВХ) и «Значение» (соответствующего типа).
У ПВХ есть важная настройка — «Дополнительные значения характеристик». Если её включить и указать справочник, то для характеристик типа «ссылка на этот справочник» пользователи смогут добавлять новые значения прямо в режиме предприятия, не создавая новых элементов ПВХ.
Чем ПВХ отличается от справочника и регистра сведений
Частая путаница у начинающих разработчиков — когда использовать ПВХ, а когда обычный справочник. Разница принципиальна: справочник хранит однородные сущности (контрагенты, склады, валюты), а ПВХ хранит описания разнородных свойств с разными типами значений. Элемент справочника «Цвета» — это конкретный цвет. Элемент ПВХ «Цвет» — это сама характеристика, у которой есть тип, обязательность и набор допустимых значений.
Сравнение вариантов
Подходит для однородных сущностей: номенклатура, контрагенты, склады. Не умеет задавать тип значения для каждого элемента.
Подходит для описания разнородных свойств с разными типами: цвет (ссылка), вес (число), сертифицирован (булево). Значения хранятся отдельно.
Самый быстрый и типизированный вариант, но требует изменения конфигурации и обновления базы. Используйте для стабильных, критичных для логики свойств.
Не альтернатива ПВХ, а дополнение: именно в регистре сведений часто хранятся пары «объект — свойство — значение».
Правило выбора простое: если свойство участвует в основной логике учёта (проведение, расчёт себестоимости, проверки) — делайте реквизитом. Если это аналитическая, справочная или редко меняющаяся информация, набор которой расширяется пользователями, — выносите в ПВХ.
Как создать и настроить ПВХ в конфигураторе
Создание ПВХ занимает несколько минут, но ошибки на этом этапе потом сложно исправить без конвертации данных. Порядок действий следующий.
Обратите внимание на тип реквизита «Значение» в табличной части: правильно указывать не составной тип вручную, а специальный тип Характеристика.<ИмяПВХ>. Тогда платформа автоматически свяжет значение с типом, заданным в элементе ПВХ, и в поле ввода будет подставляться редактор нужного типа.
Где хранить значения характеристик
Есть три рабочих подхода, и выбор зависит от задачи. Первый — табличная часть объекта. Подходит, когда набор свойств привязан к конкретному экземпляру и редко используется в отборах. Просто реализовать, но медленно работает в запросах при больших объёмах и сложных соединениях.
Второй — регистр сведений с измерением «Объект» и «Свойство» и ресурсом «Значение». Этот вариант лучше подходит для отборов и отчётов, позволяет хранить свойства разных видов объектов в одном месте и не «раздувает» сами объекты. Именно так устроен механизм дополнительных сведений в БСП.
Третий — смешанный: шапочные, часто используемые свойства выносятся в реквизиты, а «длинный хвост» — в ПВХ. Это стандартная практика в типовых конфигурациях: основная аналитика типизирована, а пользовательские свойства живут в механизме дополнительных реквизитов и сведений.
Как выбрать хранилище значений
Как получать значения характеристик в запросах и коде
Работа с ПВХ в коде строится вокруг обычных ссылок: элемент ПВХ — это ПланыВидовХарактеристик.ИмяПВХ.НайтиПоНаименованию(...) или предопределённый элемент ПланыВидовХарактеристик.ИмяПВХ.ИмяПредопределенного. Значения читаются из табличной части или регистра сведений запросом с соединением.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДопСвойства.Свойство КАК Свойство,
| ДопСвойства.Значение КАК Значение
|ИЗ
| Справочник.Номенклатура.ДополнительныеСвойства КАК ДопСвойства
|ГДЕ
| ДопСвойства.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", НоменклатураСсылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Строка(Выборка.Свойство) + " = " + Строка(Выборка.Значение));
КонецЦикла;Для отбора списка по значению характеристики запрос усложняется: нужно соединить основную таблицу с табличной частью по ссылке и добавить условия на свойство и значение. На больших базах такие запросы стоит проверять на производительность — соединение с табличной частью без индексов может работать заметно медленно.
При программной записи значений не забывайте проверять соответствие типа значения типу, заданному в элементе ПВХ. Платформа при интерактивном вводе контролирует тип сама, но при загрузке из обмена или обработки можно записать несоответствие, которое потом вызовет ошибки в отчётах.
Типичные ошибки и ограничения
Отдельно стоит сказать про производительность. ПВХ сам по себе лёгкий объект, но схема «объект — свойство — значение» (по сути EAV-модель) проигрывает обычным реквизитам в скорости выборок. Если по свойству постоянно фильтруют списки и строят отчёты на миллионах записей — это сигнал перенести свойство в реквизит или в регистр сведений с правильными индексами.
Проверка результата после настройки
После внедрения ПВХ убедитесь, что механизм работает корректно во всех сценариях: ручной ввод, программная запись, отчёты, обмены. Особое внимание уделите отчётам на СКД — там для вывода характеристик обычно используется левое соединение с табличной частью или регистром, и ошибка в соединении даёт задвоение строк.
Как проверить результат
Поле значения предлагает тип, соответствующий элементу ПВХ
Поле принимает любой тип или не даёт выбрать значение
Одна строка объекта, значения в колонках или строках без дублей
Строки задваиваются, значения пустые при заполненных данных
Тип записанного значения совпадает с типом элемента ПВХ
Записываются значения несоответствующего типа
Платформа предупреждает о существующих ссылках
Элемент удаляется, в данных остаются битые ссылки
Что важно запомнить
План видов характеристик — механизм описания дополнительных свойств объектов с заданным типом значения. Используйте его для расширяемой аналитики, а не для учётной логики; храните значения в табличной части или регистре сведений в зависимости от потребности в отборах; контролируйте составной тип и не удаляйте используемые элементы без проверки ссылок.
Частые вопросы о планах видов характеристик
Чем предопределённый элемент ПВХ отличается от обычного?
Предопределённый элемент создаётся в конфигураторе и имеет уникальное имя, по которому к нему можно обратиться в коде напрямую: ПланыВидовХарактеристик.ИмяПВХ.ИмяЭлемента. Обычные элементы создаются пользователем и ищутся только по наименованию или коду, что менее надёжно при разработке.
Можно ли изменить тип значения характеристик после заполнения базы?
Технически можно, но с осторожностью. Добавление новых типов безопасно, а удаление типов из составного — рискованно: существующие значения удалённого типа могут стать недоступными или вызвать ошибки. Перед изменением проверьте, какие типы реально используются в данных.
Как вывести значения характеристик в отчёт на СКД?
В запросе набора данных сделайте левое соединение основной таблицы с табличной частью дополнительных свойств (или регистром сведений) по ссылке на объект. Для вывода разных характеристик в отдельные колонки используйте несколько соединений с условием на конкретное свойство либо настройки ресурсов и группировок СКД.
Почему в поле значения доступен не тот тип, который задан в элементе ПВХ?
Чаще всего реквизит «Значение» в табличной части имеет составной тип, заданный вручную, а не тип Характеристика.<ИмяПВХ>. Замените тип реквизита на ссылку на характеристику — тогда платформа будет автоматически ограничивать ввод типом из выбранного элемента ПВХ.
Что выбрать: ПВХ или добавить реквизит в справочник?
Если свойство стабильно, обязательно для всех элементов и участвует в проведении документов или расчётах — добавляйте реквизит. Если набор свойств расширяется пользователями, различается между группами товаров и нужен в основном для аналитики и печати — используйте ПВХ.
Как найти все объекты, где заполнено конкретное свойство?
Напишите запрос к табличной части дополнительных свойств или к регистру сведений с условием «Свойство = &Свойство» и выведите ссылки на объекты. Для разового поиска удобно использовать консоль запросов в режиме предприятия.