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

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

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

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

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

Простой пример: в справочнике «Номенклатура» у разных товаров разные параметры — у обуви размер и цвет, у монитора диагональ и разрешение, у продуктов срок годности. Заводить отдельные реквизиты под каждый случай нереально. План видов характеристик позволяет описать «Свойства номенклатуры» как список: «Цвет» (тип — строка или ссылка на справочник), «Диагональ» (число), «Срок годности» (дата) — и хранить значения этих свойств отдельно.

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

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

Каждый элемент ПВХ — это одна характеристика: например, «Цвет», «Материал», «Гарантийный срок». У элемента есть наименование, код и, главное, тип значения. Тип задаётся в свойстве «Тип значения характеристик» самого плана — это составной тип, который может включать примитивные типы (строка, число, дата, булево) и ссылки на справочники и документы.

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

Если значение свойства должно быть ссылкой на объект, которого нет среди типов плана (например, «Страна производства» как отдельный список), используется механизм дополнительных значений: в ПВХ указывается ссылка на справочник «Значения свойств объектов», куда пользователь вводит произвольные варианты.

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

Разработчики часто выбирают между тремя подходами: обычный реквизит объекта, план видов характеристик и механизм дополнительных реквизитов/сведений БСП. Выбор влияет на производительность, гибкость и удобство отчётов.

КритерийРеквизит объектаПВХ + регистр сведенийДоп. реквизиты БСП
Изменение состава свойствТолько доработкой конфигурацииПользователем, без доработкиПользователем, без доработки
Структура храненияКолонка таблицы объектаОтдельный регистр сведенийТабличная часть или регистр БСП
Обязательность заполненияСтандартный контрольТребует своей проверкиНастраивается штатно
Скорость выборки в отчётахМаксимальнаяТребует соединений, медленнееСредняя
Типовая поддержкаПолнаяНужна своя реализацияГотовый интерфейс из коробки

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

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

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

Подходит для фиксированных, критичных для логики свойств. Ограничение: любое новое свойство требует обновления конфигурации.

Свой ПВХ + регистр сведений

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

Доп. реквизиты и сведения БСП

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

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

Создание ПВХ выполняется в конфигураторе и занимает несколько минут. Ниже — типовой порядок для задачи «свойства номенклатуры».

Порядок создания ПВХ
  1. 1
    Откройте конфигуратор, в дереве конфигурации найдите ветку «Планы видов характеристик» и добавьте новый объект, например «СвойстваНоменклатуры».
  2. 2
    В свойстве «Тип значения характеристик» задайте составной тип: Строка, Число, Дата, Булево, а также ссылки на нужные справочники (например, «ЗначенияСвойствОбъектов»).
  3. 3
    Создайте справочник «ЗначенияСвойствОбъектов» с владельцем — вашим ПВХ, если нужны произвольные списки значений.
  4. 4
    Создайте регистр сведений «ЗначенияСвойств»: измерения «Объект» (СправочникСсылка.Номенклатура) и «Свойство» (ПланВидовХарактеристикСсылка.СвойстваНоменклатуры), ресурс «Значение» с тем же составным типом.
  5. 5
    Добавьте на форму элемента номенклатуры таблицу значений свойств с динамическим списком или программным заполнением из регистра.
  6. 6
    Обновите конфигурацию базы данных и проверьте работу на тестовых данных.

Обратите внимание на согласованность типов: тип ресурса «Значение» в регистре должен совпадать с типом значения характеристик плана. Иначе при записи вы получите либо ошибку приведения типов, либо тихое обрезание данных (например, строка запишется в числовое поле как 0).

Работа с ПВХ программно: запись и чтение значений

Запись значения свойства выполняется через менеджер записи регистра сведений. Сначала нужно получить или создать элемент ПВХ — само свойство, затем записать значение для конкретного объекта.

bsl
// Поиск или создание характеристики "Цвет"
СвойствоЦвет = ПланыВидовХарактеристик.СвойстваНоменклатуры.НайтиПоНаименованию("Цвет");
Если СвойствоЦвет.Пустая() Тогда
    НовыйЭлемент = ПланыВидовХарактеристик.СвойстваНоменклатуры.СоздатьЭлемент();
    НовыйЭлемент.Наименование = "Цвет";
    НовыйЭлемент.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.ЗначенияСвойствОбъектов");
    НовыйЭлемент.Записать();
    СвойствоЦвет = НовыйЭлемент.Ссылка;
КонецЕсли;

// Запись значения для товара
Запись = РегистрыСведений.ЗначенияСвойств.СоздатьМенеджерЗаписи();
Запись.Объект = ТоварСсылка;
Запись.Свойство = СвойствоЦвет;
Запись.Значение = ЗначениеЦвета;
Запись.Записать();

Чтение значений удобнее делать запросом с левым соединением, чтобы получить все свойства объекта одной выборкой. Для отчётов на СКД регистр сведений со значениями свойств подключается как обычный источник данных, а отборы по значениям свойств строятся через характеристики СКД (закладка «Характеристики» в настройках источника данных) — это стандартный механизм платформы, который автоматически формирует соединения.

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

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

Вторая группа — ошибки с типами. Слишком широкий составной тип (включены все справочники конфигурации) раздувает индексы и ухудшает производительность. Слишком узкий — пользователи упираются в невозможность ввести нужное значение. Оптимально включать только реально используемые типы плюс справочник дополнительных значений.

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

Типичные ошибки
01
Использовать ПВХ для свойств, участвующих в проведении и отборах, — запросы деградируют из-за постоянных соединений с регистром.
02
Включать в тип значения характеристик все подряд ссылки — лишние типы увеличивают индексы и замедляют работу.
03
Изменять тип значения на рабочей базе без копии — значения удалённых типов будут безвозвратно очищены.
04
Не проверять соответствие значения типу характеристики при записи — в регистре накапливается мусор, который ломает отчёты.
05
Создавать свой ПВХ в типовой конфигурации, где уже есть механизм дополнительных реквизитов БСП, — двойная схема хранения запутывает пользователей.

Как проверить, что механизм работает правильно

После внедрения или доработки механизма свойств полезно пройти короткий контроль: заполнить несколько свойств разных типов у тестовых объектов и проверить чтение, отбор и отчёт. Это занимает 15–20 минут и отлавливает большинство ошибок до того, как с ними столкнутся пользователи.

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

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

Запись значения
Норма

Значение сохраняется и отображается после повторного открытия объекта

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

Значение пропадает или обрезается — несовпадение типов ресурса и ПВХ

Отбор в списке
Норма

Отбор по значению свойства возвращает правильные объекты

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

Отбор пустой или лишний — ошибка в запросе динамического списка

Отчёт на СКД
Норма

Свойства доступны как поля и отборы

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

Свойств нет в полях — не настроена закладка «Характеристики»

Производительность
Норма

Отчёт по свойствам выполняется за приемлемое время на реальном объёме данных

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

Заметные задержки — стоит пересмотреть состав типов или вынести свойство в реквизит

Когда ПВХ использовать не стоит

Есть ситуации, где план видов характеристик — заведомо неверный выбор. Не храните в нём данные, по которым нужна историчность с точностью до документа: регистр сведений значений свойств обычно не подчинён регистратору, и восстановить «какое значение было на дату документа» будет невозможно.

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

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

Как выбрать действие

Свойство участвует в проведении документов или постоянных отборахДелайте обычный реквизит объекта, а не характеристику ПВХ
Набор свойств разный у разных групп объектов и меняется пользователямиИспользуйте ПВХ или штатные дополнительные реквизиты БСП
Конфигурация типовая на БСПИспользуйте встроенные дополнительные реквизиты и сведения, не создавая свой ПВХ
Нужна история изменения значения по документамИспользуйте периодический регистр сведений, подчинённый регистратору, а не классическую схему ПВХ
Итог

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

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

Частые вопросы

Чем план видов характеристик отличается от плана видов расчёта?

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

Можно ли добавить элемент ПВХ без конфигуратора?

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

Как задать разные типы значений для разных характеристик одного плана?

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

Почему в отчёте СКД не отображаются характеристики для отбора?

Чаще всего не настроена закладка «Характеристики» у набора данных: нужно указать тип характеристики, источник видов (ваш ПВХ), поля объекта, вида и значения. Без этих настроек СКД не знает, как присоединять значения свойств, и они недоступны в полях и отборах.

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

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

Как перенести свойства в другую базу?

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