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