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