Разработка и Конфигурация · 12 мин
Планы видов характеристик в 1С: что это и как с ними работать
Что такое планы видов характеристик в 1С, зачем они нужны, как создать и настроить ПВХ, типовые ошибки и примеры кода на встроенном языке.
План видов характеристик (ПВХ) — это объект метаданных конфигурации 1С, который описывает список возможных характеристик (свойств) объектов и типы значений этих характеристик. Классическая задача, которую решает ПВХ, — хранение произвольных дополнительных свойств товаров, контрагентов или договоров без изменения структуры конфигурации: пользователь сам добавляет нужные свойства, а разработчику не приходится дорабатывать справочники под каждое новое требование.
Простой пример: в справочнике «Номенклатура» у разных товаров разные параметры — у обуви размер и цвет, у монитора диагональ и разрешение, у продуктов срок годности. Заводить отдельные реквизиты под каждый случай нереально. План видов характеристик позволяет описать «Свойства номенклатуры» как список: «Цвет» (тип — строка или ссылка на справочник), «Диагональ» (число), «Срок годности» (дата) — и хранить значения этих свойств отдельно.
ПВХ лежит в основе механизма «Дополнительные реквизиты и сведения» в типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP), а также используется в подсистеме свойств БСП. Понимание этого объекта необходимо и разработчику, и внедренцу, который настраивает типовое решение.
Как устроен план видов характеристик
Каждый элемент ПВХ — это одна характеристика: например, «Цвет», «Материал», «Гарантийный срок». У элемента есть наименование, код и, главное, тип значения. Тип задаётся в свойстве «Тип значения характеристик» самого плана — это составной тип, который может включать примитивные типы (строка, число, дата, булево) и ссылки на справочники и документы.
Важно понимать: сам ПВХ хранит только описания характеристик, а не их значения. Значения хранятся отдельно — чаще всего в регистре сведений с измерением «Объект» (ссылка на номенклатуру, контрагента и т.д.), измерением «Свойство» (ссылка на элемент ПВХ) и ресурсом «Значение» того же составного типа.
Если значение свойства должно быть ссылкой на объект, которого нет среди типов плана (например, «Страна производства» как отдельный список), используется механизм дополнительных значений: в ПВХ указывается ссылка на справочник «Значения свойств объектов», куда пользователь вводит произвольные варианты.
Чем ПВХ отличается от реквизитов и дополнительных сведений
Разработчики часто выбирают между тремя подходами: обычный реквизит объекта, план видов характеристик и механизм дополнительных реквизитов/сведений БСП. Выбор влияет на производительность, гибкость и удобство отчётов.
| Критерий | Реквизит объекта | ПВХ + регистр сведений | Доп. реквизиты БСП |
|---|---|---|---|
| Изменение состава свойств | Только доработкой конфигурации | Пользователем, без доработки | Пользователем, без доработки |
| Структура хранения | Колонка таблицы объекта | Отдельный регистр сведений | Табличная часть или регистр БСП |
| Обязательность заполнения | Стандартный контроль | Требует своей проверки | Настраивается штатно |
| Скорость выборки в отчётах | Максимальная | Требует соединений, медленнее | Средняя |
| Типовая поддержка | Полная | Нужна своя реализация | Готовый интерфейс из коробки |
Практическое правило: если свойство используется в отборах, проведении документов или критично для производительности — делайте реквизит. Если набор свойств непредсказуем и различается между группами объектов — подходит ПВХ. Если вы работаете в типовой конфигурации на БСП и задача — просто дать пользователю «добавить поле», используйте штатные дополнительные реквизиты и сведения, не создавая свой ПВХ.
Сравнение вариантов
Подходит для фиксированных, критичных для логики свойств. Ограничение: любое новое свойство требует обновления конфигурации.
Подходит для самописных конфигураций и нестандартных задач. Ограничение: интерфейс, проверки и отчёты нужно разрабатывать самостоятельно.
Подходит для типовых конфигураций. Ограничение: зависимость от БСП, сложнее использовать в произвольных запросах.
Как создать план видов характеристик в конфигураторе
Создание ПВХ выполняется в конфигураторе и занимает несколько минут. Ниже — типовой порядок для задачи «свойства номенклатуры».
- 1Откройте конфигуратор, в дереве конфигурации найдите ветку «Планы видов характеристик» и добавьте новый объект, например «СвойстваНоменклатуры».
- 2В свойстве «Тип значения характеристик» задайте составной тип: Строка, Число, Дата, Булево, а также ссылки на нужные справочники (например, «ЗначенияСвойствОбъектов»).
- 3Создайте справочник «ЗначенияСвойствОбъектов» с владельцем — вашим ПВХ, если нужны произвольные списки значений.
- 4Создайте регистр сведений «ЗначенияСвойств»: измерения «Объект» (СправочникСсылка.Номенклатура) и «Свойство» (ПланВидовХарактеристикСсылка.СвойстваНоменклатуры), ресурс «Значение» с тем же составным типом.
- 5Добавьте на форму элемента номенклатуры таблицу значений свойств с динамическим списком или программным заполнением из регистра.
- 6Обновите конфигурацию базы данных и проверьте работу на тестовых данных.
Обратите внимание на согласованность типов: тип ресурса «Значение» в регистре должен совпадать с типом значения характеристик плана. Иначе при записи вы получите либо ошибку приведения типов, либо тихое обрезание данных (например, строка запишется в числовое поле как 0).
Работа с ПВХ программно: запись и чтение значений
Запись значения свойства выполняется через менеджер записи регистра сведений. Сначала нужно получить или создать элемент ПВХ — само свойство, затем записать значение для конкретного объекта.
// Поиск или создание характеристики "Цвет"
СвойствоЦвет = ПланыВидовХарактеристик.СвойстваНоменклатуры.НайтиПоНаименованию("Цвет");
Если СвойствоЦвет.Пустая() Тогда
НовыйЭлемент = ПланыВидовХарактеристик.СвойстваНоменклатуры.СоздатьЭлемент();
НовыйЭлемент.Наименование = "Цвет";
НовыйЭлемент.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.ЗначенияСвойствОбъектов");
НовыйЭлемент.Записать();
СвойствоЦвет = НовыйЭлемент.Ссылка;
КонецЕсли;
// Запись значения для товара
Запись = РегистрыСведений.ЗначенияСвойств.СоздатьМенеджерЗаписи();
Запись.Объект = ТоварСсылка;
Запись.Свойство = СвойствоЦвет;
Запись.Значение = ЗначениеЦвета;
Запись.Записать();Чтение значений удобнее делать запросом с левым соединением, чтобы получить все свойства объекта одной выборкой. Для отчётов на СКД регистр сведений со значениями свойств подключается как обычный источник данных, а отборы по значениям свойств строятся через характеристики СКД (закладка «Характеристики» в настройках источника данных) — это стандартный механизм платформы, который автоматически формирует соединения.
Типовые ошибки и ограничения
Первая группа ошибок связана с архитектурой: ПВХ используют там, где нужен обычный реквизит. Если по свойству постоянно отбирают документы, строят остатки или оно участвует в проведении, хранение в регистре сведений замедлит запросы и усложнит код. Соединение с регистром значений в каждом запросе к большим таблицам — заметная нагрузка.
Вторая группа — ошибки с типами. Слишком широкий составной тип (включены все справочники конфигурации) раздувает индексы и ухудшает производительность. Слишком узкий — пользователи упираются в невозможность ввести нужное значение. Оптимально включать только реально используемые типы плюс справочник дополнительных значений.
Третья группа — отсутствие контроля. Платформа не проверяет обязательность заполнения свойств и соответствие значения типу конкретной характеристики: если элемент ПВХ «Мощность» имеет тип «Число», а пользователь запишет строку, ограничить это должен ваш код или настройки формы. В типовых механизмах БСП такая проверка встроена, в самописной схеме — нет.
Как проверить, что механизм работает правильно
После внедрения или доработки механизма свойств полезно пройти короткий контроль: заполнить несколько свойств разных типов у тестовых объектов и проверить чтение, отбор и отчёт. Это занимает 15–20 минут и отлавливает большинство ошибок до того, как с ними столкнутся пользователи.
Как проверить результат
Значение сохраняется и отображается после повторного открытия объекта
Значение пропадает или обрезается — несовпадение типов ресурса и ПВХ
Отбор по значению свойства возвращает правильные объекты
Отбор пустой или лишний — ошибка в запросе динамического списка
Свойства доступны как поля и отборы
Свойств нет в полях — не настроена закладка «Характеристики»
Отчёт по свойствам выполняется за приемлемое время на реальном объёме данных
Заметные задержки — стоит пересмотреть состав типов или вынести свойство в реквизит
Когда ПВХ использовать не стоит
Есть ситуации, где план видов характеристик — заведомо неверный выбор. Не храните в нём данные, по которым нужна историчность с точностью до документа: регистр сведений значений свойств обычно не подчинён регистратору, и восстановить «какое значение было на дату документа» будет невозможно.
Не используйте ПВХ для нормативно-справочной информации с жёсткой структурой и связями — для этого есть обычные справочники. И не применяйте его как замену табличных частей: если у объекта есть повторяющийся набор строк (например, комплектация), табличная часть проще, быстрее и понятнее пользователю.
Как выбрать действие
Что важно запомнить
План видов характеристик описывает список свойств и типы их значений, а сами значения хранятся в связанном регистре сведений. ПВХ оправдан для гибких, пользовательских свойств; для критичных к логике и производительности данных используйте реквизиты. Перед изменением типов в рабочей базе всегда делайте копию.
Частые вопросы
Чем план видов характеристик отличается от плана видов расчёта?
Это разные объекты метаданных. План видов характеристик описывает свойства объектов и их типы. План видов расчёта используется в механизме расчётов (зарплата) и описывает виды начислений и удержаний с формулами и периодами действия. Путать их не стоит, несмотря на похожее название.
Можно ли добавить элемент ПВХ без конфигуратора?
Да, и это главное назначение объекта: элементы ПВХ — это данные, а не метаданные. Пользователь с соответствующими правами добавляет новые характеристики прямо в режиме предприятия через список плана. В конфигураторе создаётся только сам план и его тип значения.
Как задать разные типы значений для разных характеристик одного плана?
Тип значения характеристик задаётся один на весь план как составной тип, но у каждого элемента можно уточнить тип через свойство «Тип значения» самого элемента — платформа позволяет сузить тип конкретной характеристики. При записи значений контролируйте соответствие программно или через форму.
Почему в отчёте СКД не отображаются характеристики для отбора?
Чаще всего не настроена закладка «Характеристики» у набора данных: нужно указать тип характеристики, источник видов (ваш ПВХ), поля объекта, вида и значения. Без этих настроек СКД не знает, как присоединять значения свойств, и они недоступны в полях и отборах.
Влияет ли количество элементов ПВХ на производительность?
Количество самих характеристик влияет умеренно. Критичнее объём регистра значений и ширина составного типа: миллионы записей значений с соединениями в запросах и избыточный список типов замедляют отчёты заметно сильнее, чем сотня лишних элементов в плане.
Как перенести свойства в другую базу?
Элементы ПВХ — обычные данные, их можно переносить обработками обмена (например, универсальным обменом XML) вместе со справочником дополнительных значений и регистром значений свойств. Важно переносить все три сущности согласованно, иначе значения окажутся без ссылок на характеристики.