Назначение прикладного объекта "план видов характеристик". Назначение прикладного объекта "план видов характеристик" Примеры использования "Планов вида характеристик" в типовых конфигурациях

План видов характеристик достаточно простой объект, раньше при изучении, когда разбирал примеры в учебниках, то он казался сложным т.к. сразу давался в купе с другими объектами. Это были примеры характеристик для номенклатуры или субконто. Так что же это такое ПВХ?

Думаю, Вы знакомы с такими понятиями как ОписаниеТипов и Справочник. Если нет, то посмотрите нижеуказанные статьи перед дальнейшим чтением, тогда всё станет более понятно.

Итак, продолжим. Если Вам уже известны ОписанияТипов и Справочники, то План видов характеристик это Справочник + ОписаниеТипов . Как видите всё просто. И эта мысль главная, т.е. сам по себе план видов характеристик не может реализовать функционал характеристики номенклатуры или субконто, для этого дополнительно используются свойства и механизмы других объектов.

Давайте рассмотрим, как настраивается функционал характеристик для номенклатуры.

Задача

Итак, у нас есть Номенклатура для которой нужно установить какие-то дополнительные свойства, например:

На данной картинке ПВХ будет отвечать за колонку "Свойство" и тип значения в колонке "Значение".

Т.е. Свойство - это будет элемент ПВХ (м.б. предопределенный), а тип значения для колонки "Значение" это будет объект ОписаниеТипов который присутствует в каждом элементе ПВХ.

Создаем ПВХ

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

Чтобы указать дополнительный справочник нужно сначала у этого справочника установить владельцем наш ПВХ иначе его не будет в списке выбора, а дальше выбрать его в свойствах ПВХ на закладке "Основные".

Небольшое пояснение о работе ПВХ. Сначала на закладке "Основные" мы выбираем все типы доступные в данном ПВХ в поле "Тип значения характеристик", а у элементов устанавливаем тип значения уже из доступных в данном ПВХ. В нашем случае для ПВХ можно выбрать только справочник "ДопЗначения".

Создаем регистр сведений

Вот мы создали свойства(ПВХ) и справочник для хранения значений(ДопЗначения) теперь нужно связать номенклатуру и свойства. Для этого используется регистр сведений, в нашем случае у него будут следующие поля: измерения "Номенклатура, СвойствоНоменклатуры" и ресурс "ЗначениеСвойства"

Если Вы используете управляемые формы то достаточно будет добавить для ресурса "ЗначениеСвойства" в регистре "ЗначенияСвойствНоменклатуры" Связь по типу с полем "СвойствоНоменклатуры" и тогда, во время редактировании записи регистра сведений, при выборе значения для поля "СвойствоНоменклатуры" будет изменяться тип значения в поле "ЗначениеСвойства".

Если у Вас обычное приложение то эту связь, "Связь по типу", нужно будет настраивать в форме для поля ввода "ЗначениеСвойства" и при этом нужно будет в событие ПриИзмении поля "СвойствоНоменклатуры" использовать метод "ПривестиЗначение() " чтобы избавиться от излишнего выбора типа и избежать ошибочных ситуаций:

ЗначениеСвойства = СвойствоНоменклатуры . ТипЗначения . ПривестиЗначение (ЗначениеСвойства );

Отбор по владельцу

Т.к. у нас справочник "ДопЗначения" подчинен ПВХ "СвойстваНоменклатуры" то можно установить отбор, чтобы при выборе СвойствоНоменклатуры в поле "ЗначениеСвойства" можно было выбать только из подчиненных элементов. Для управляемого приложения это делается в свойствах ресурса, свойство называется "Связи параметров выбора" нужно выбрать "Отбор.Владелец(СвойствоНоменклатуры)". Для обычного приложения ничего делать не надо т.к. установив Связь по типу программа сама будет показывать только подчиненные элементы.

Важно! Свойство "Связь по типу" работает только с реквизитами у которых тип ПВХ.

В заключении

Таким образом посредством регистра сведений мы связали справочник "Номенклатура" с его свойствами ПВХ "СвойстваНоменклатуры" и его значениями справочник "ДопЗначения".

Важно! Все интересующие нас данные т.е. характеристики номенклатуры хранятся именно в регистре, а не в ПВХ.

Для обычного приложения есть возможность открыть регистр, со свойствами номенклатуры нажав на кнопку "Перейти" т.к. мы указали что измерение "Номенклатура" - "Ведущее".

Для управляемого приложения есть ссылка на панели навигации

Вы догадались, что также можно перейти в регистр и из ПВХ т.к. измерение "СвойствоНоменклатуры" тоже ведущее.

В этой статье рассказывается о связях между планом видов характеристик, подчиненным справочником дополнительных характеристик и регистром сведений, в котором хранятся значения характеристик.
Занимаюсь изучением 1С 8.2. В аудиокурсе Гилева дошла до плана видов характеристик. До этого в нескольких источниках читала про ПВХ. Вроде все понятно, но поскольку я пока не программирую на 1с 8, теория со временем забывается, и каждый раз, когда встречается тема про план видов характеристик, приходится мучительно вспоминать и выстраивать в голове схему. Сейчас возник конкретный вопрос, все в голове поплыло, и стало понятно, что опять ничего не понятно. Поэтому пришлось разбираться подробно с самого начала. Решила записать на будущее для себя, но может еще кому-нибудь пригодится.
Собственно вопрос: не могла понять смысл свойства «Связи параметров выбора» в ресурсе регистра сведений, где хранятся значения характеристик номенклатуры (структура регистра: измерения – номенклатура и вид свойства, ресурс – значение)
2-ю часть видеокурса Гилева можно скачать например тут http://turbobit.net/8ztu277cf9t9/Gil_Base_02.rar.html . Там же есть и файл базы. В этой статье я использую главы 404-409 данного видеокурса

План Видов Характеристик

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

Итак, в плане хранятся виды свойств чего - либо.

Например, вид свойства - цвет, значения вида свойств - синий, желтый. Вид свойства - материал, значения вида свойств - кожа, заменитель.

В свойстве «Типы значения характеристик» задаются ТИПЫ (а не сами виды) значений видов свойств (видов характеристик). Сами названия характеристик (свойств) задает либо пользователь, либо разработчик как предопределенные в конфигураторе.

В свойстве «Дополнительные значения характеристик» задается НАЗВАНИЕ (а не ссылка) справочника, в котором будут храниться значения свойств. Владельцем этого справочника является ПВХ.

Т.е. если посмотреть на этот справочник без отбора по владельцу, то там будут именно значения всех видов характеристик.

Откроем форму этого справочника:

Тут видно, что хранятся значения разных свойств, и цвета, и материалы. Но у каждого значения есть владелец - вид свойства, или, другими словами - элемент плана видов характеристик, т.е. тут все правильно.

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

Откроем форму самого плана видов хар-к:

Тут видно, что пользователь создает новые виды свойств, и выбирает их тип из предоставленного списка типов. Список типов, как я уже говорила, задается в свойстве «Типы значения характеристик».

Вид свойства - дата появления, тип значения - дата

Вид свойства - кладовщик, тип значения - ссылка на справочник «Физические лица»

Если пользователь создал вид свойства «цвет», то в форме создания элемента плана справа будет ссылка для перехода в подчиненный плану справочник, в котором пользователь должен создать значения цветов. Форма справочника открывается с отбором по владельцу автоматически, т.е. в форме списка только цвета, а не значения всех свойств, как на первом рисунке.


Рис. 4


Далее, создаваемый регистр сведений, для чего он нужен. В нем хранятся виды свойств, значения свойств, и то, к чему эти свойства относятся. Т.е. не свойства сами по себе, а в привязке к какому-то объекту. Например, регистр сведений «Значения свойств товаров» (я бы назвала «Свойства номенклатуры» ). Т.е. что у конкретного товара «стол компьютерный» есть цвет - «синий», и есть материал - «дуб». Это будет 2 записи регистра сведений:

Рис. 5


Структура регистра:

Измерения - номенклатура и вид свойства (тип - ссылка на план).

Ресурс - значение (тип Характеристика - это такой виртуальный тип, который включает в себя все типы из плана).

Итак, подходим к вопросу, что же это за свойство «Связи параметров выбора» в ресурсе регистра сведений. Там у нас Отбор.Владелец(ВидСвойства). Я не могла понять, к чему относится отбор, и что за владелец, владелец чего? Мы же не знаем, какой будет тип у значения.

Идем по порядку: я думаю, что отбор - это свойство формы списка справочника «Пользовательские характеристики»

Синтаксис-помощник говорит, что у списка справочника есть свойство "отбор" типа отбор (некоторые свойства в синтаксис-помощнике в треугольных скобках, они в статье не отображаются):

СправочникСписок.Имя справочника (CatalogList.Имя справочника)
Отбор (Filter)

Тип Отбор:

Отбор (Filter)
Элементы коллекции:
ЭлементОтбора
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы отбора.
Возможно обращение к элементу отбора посредством оператора [...]. В качестве аргумента передается индекс элемента (нумерация с 0).
Свойства:
Имя элемента отбора (Filter element name)

А у отбора тоже есть свойство «Имя элемента отбора»

Т.е. в данном случае имя элемента отбора - Владелец.

Но владелец имеет смысл только для записей, у которых в качестве ресурса выступает элемент справочника «Пользовательские характеристики». Из этого я делаю вывод, что это свойство относится только к таким записям. Т.е. для записей с видами свойств «дата появления» и «кладовщик» оно просто не имеет смысла. Тогда все становится на свои места.

Например, открывается форма записи регистра сведений с пользовательской характеристикой:

Рис. 6

Если мы перейдем в форму списка справочника «Пользовательские характеристики» для выбора цвета, то там при заданном значении свойства «Связи параметров выбора» Отбор.Владелец(ВидСвойства) будут только цвета

Т.е. отбираются только такие значения свойств, у которых вид свойства - это цвет. (значения с владельцем «Цвет», а не «Материал», например)

Т.е. форма такая же, как и на третьем рисунке.

Вывод о том, что свойство «Связи параметров выбора» относится только к дополнительным значениям характеристик подтверждает тот факт, что если мы очистим это свойство, то это повлияет только на записи с дополнительными видами свойств, а например, при выборе кладовщика открывается всегда, как и положено, справочник физических лиц.

Как обычно ведется учет в торговом предприятии?

В первые несколько лет - все гонятся за прибылью: побольше закупить, побыстрее продать, никого пока не интересуют зависающие остатки товаров в магазинах и на складах. Объем базы растет как на дрожжах, т.к. пока порядок оприходуемого товара хаотичный.

Например, вчера купили красный стул, сегодня зеленый стул, поначалу так и вбивают в базу данные: 1) старая позиция - красный стул;2) новая позиция - зеленый стул. Но после инвентаризации - всегда появляется пересорт товара, и здесь приходят к варианту - создать новую позицию, без конкретного описания в названии товара его спец.свойств, т.е. заводят товар так, например, просто "Стул", а две предыдущие позиции товара - помечают на удаление.

Через некоторое время - свободных оборотных средств становится лимитное количество. Здесь возникает вопрос: а какие именно товары имели больший спрос, чтобы вкладывать средства в них, а не в зависающий товар.

То есть вновь требуется знать дополнительные характеристики товара , но вводить эти характеристики в базу нужно уже не в хаотичном порядке, - просто в названии товара добавив какие-нибудь описания, а четко и правильно:название должно быть коротким, лаконичным, и в дополнительном поле - описаны всевозможные характеристики данного товара : например, его цвет, объем, вес, производителя и многое другое.

Тут если мы запишем свойства товара в справочнике Номенклатуры в поле "Комментарии", то Аналитику будет не просто сделать нужный ему отчет по популярности и оборачиваемости конкретно данного товара с конкретно данными свойствами товара.

Мы можем прикрепить к справочнику Номенклатура - подчиненный справочник, в который пользователь может вводить необходимые свойства и описания товара, но в таком подходе - мы столкнемся с проблемой невозможности угадать какого именно типа пользователь захочет ввести доп.информацию.

Н-р, под товаром "Стул" - пользователь желает указать свойство товара - цвет, это строковое значение данных. Значит в подчиненном справочнике - мы реквизит сделаем строковым. А если он желает указать доп.свойство товара, например, производителя? Тогда мы должны реквизит в подчиненном справочнике сделать ссылочного типа, указывая на др.справочник "Производители". А если пользователь в доп.свойствах к своему товару желает указать сколько ножек у стула? Мы в подчиненном справочнике должны реквизит сделать числовым.....

Отсюда, когда нам нужно дать возможность пользователю самому создавать ТИП данных , в значения которых он будет вносить свою информацию, то нам нужно создавать ПВХ (план видов характеристик).

Мы создадим в нашем примере сложный ПВХ , чтобы был полноценный механизм описания дополнительных свойств товара.

Но для начала рассмотрим урок по созданию ПВХ из книги (стр.476) "1С_ Предприятие 8.3 . Практическое пособие разработчика. Примеры и типовые приемы" Радченко /Хрусталева

Здесь у нас уже есть справочник Номенклатура. Цель задачи : иметь возможность знать остатки материалов, обладающих некоторым значением характеристики . Для этого создадим в Конфигураторе новые объекты:1) регистр Сведений "ЗначенияСвойствНоменклатуры";2) ПВХ "СвойстваНоменклатуры";3) подчиненный Номенклатуре справочник "ВариантыНоменклатуры", чтобы описывать партии материалов;4) подчиненный ПВХ справочник "ДополнительныеСвойстваНоменклатуры", чтобы задавать значения видов характеристик,для которых нет подходящих типов в конфигурации.

В результате нам достаточно будет выбирать из регистра сведений все элементы подчиненного справочника с этим значением характеристики и затем по ним и их владельцам - получить остатки регистра накоплений.

В создаваемом нами ПВХ в поле "Тип значения характеристик" - укажем составной тип данных: Число,Строка,Дата,Булево,СправочникСсылка.ДополнительныеСвойстваНоменклатуры. А так же в поле ПВХ "Дополнительные значения характеристик" - указываем подчиненный ПВХ справочник "ДополнительныеСвойстваНоменклатуры".

2) ВидСвойства, тип = ПланВидовХарактеристикСсылка.СвойстваНоменклатуры

И создаем ресурс регистра сведений:

Значение, тип = Характеристика.СвойстваНоменклатуры.

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

Существует несколько ньюансов при настройки регистра сведений "ЗначенияСвойствНоменклатуры", здесь желательно установить измерение регистра НаборСвойств (сюда попадает выборка из спр.ВариантыНоменклатуры) - как Ведущее , это даст нам возможность из спр."ВариантыНоменклатуры" - вызывать данный регистр Сведений . А так же для ресурса регистра Значение - установить "Связь по типу" = ВидСвойства и "Связи параметров выбора" = Отбор.Владелец(ВидСвойства) .Данные настройки регистра сведений - упростят ввод пользователем данных.

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

Просто попробуем в нашем товаре, н-р, "Кабели электрические" - задать дополнительное свойство "Белые кабели", а состав свойства: "тип свойства"=Цвет и "значение свойства" = Белый. Вот по такой схеме открывающихся друг за другом окон:

....я не знаю как у вас, но у меня уже закружилась голова и уже не совсем понятно - что мы делаем и зачем))))

А представьте - объяснить такую цепочку пользователю?!?.....Чтобы наш пользователь смог понять того, чего мы уже сами не понимаем - у него должно быть минимум три сертификата по 1С)))

Если вас пугает и расстраивает введение свойств товара по выше описанной схеме, то можно посмотреть эту же схему из самого учебника:

Это просто нереально сложно!!! И любой начинающий программист решит, что проще никогда не связываться с ПВХ, чем пытаться в подобной схеме разобраться.....

Чтобы получить итоговый результат задачи - остатки товаров по его свойствам, в книге предлагается в регистр Остатков добавить измерение "НаборСвойств" с сылочным типом на подчиненный Номенклатуре справочник "ВариантыНоменклатуры". Далее в документы прихода/расхода материалов добавить в табличные части поле с таким же названием и типом данных, дописать модулях этих документах проведение по регистру остатков "НаборСвойств". На самом справочнике "ВариантыНоменклатуры" - прописать в его меню Характеристики, что позволит их видеть потом в СКД отчете. И, как окончание, создать сам СКД-отчет по Остаткам Товара с отбором по Характеристикам:

Да, отчет получается интересный, но сам процесс создания дополнительных Характеристик (свойств) товара - очень запутанный, кроме того, пользователь при вводе стольких дополнительных данных при заполнении приходных/расходных накладных - создаст ни одну ошибку.....Начиная с ввода "НабораСвойств" в полях документа....

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Давайте попробуем разобраться в самом механизме создания доп.Свойств Товару , возможно у нас получится прийти к решению задачи более простым путем.

Итак, что нам нужно:

1. Дать возможность пользователю к Номенклатуре добавлять описание Свойств.

2. Дать возможность Аналитику исследовать показатели продаж в отборе по Свойствам Товара.

Рассмотрим какие у нас есть варианты при решении первого пункта задачи:

1. Мы можем добавить к справочнику Номенклатура подчиненный справочник, в который пользователь будет описывать только конкретными, заданные нами в Конфигураторе, данные строчного типа....это не подходит, так как при описании Свойств товара может понадобиться "непредсказуемый" нами в Конфигураторе Тип данных: например дата, число, строка, ссылка на др.справочник.

2. Поэтому для создания доп.Свойств Номенклатуры - мы должны создать ПВХ, так как ПВХ - это справочник + Описание Типов данных .

Если мы в справочнике Номенклатура - создадим табличную часть, в которой будет два поля - Тип данных вводимого Свойства товара и,непосредственно, само значение. Это очень просто - одно поле у нас будет ссылаться на ПВХ, др.на Характеристику этого ПВХ.

Но в этом случае, у нас не получится сделать записи уникальными....Только представьте себе вариант, где под товаром,например, Сосиски - можно ввести два вида значения Свойства "Цвет": и красные и зеленые)))

Поэтому этот метод самый простой, но не дает уникальности в свойствах Номенклатуры.

3. Создадим ПВХ , но его значения будем набирать через регистр Сведений . Регистр Сведений - содержит только уникальные данные .

Это самый универсальный вариант. У нас будут записываться Свойства товара с разными типами данных, причем значения этих свойств для конкретного товара будет уникальным.

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

Для этого в регистре сведений добавляем два измерения:

2) СвойстваНоменклатуры, тип = ПланВидовХарактеристикСсылка.УниверсальныйПВХ.

В ресурсах регистра указываем "ЗначениеСвойства", тип = Характеристика.УниверсальныйПВХ:

Пока на данном этапе все, мы создали механизм уникальных свойств товара. Нам еще нужно настроить удобство выбора данных для пользователя.

Выделим ресурс "ЗначениеСвойства" регистра сведений и в меню справа на вкладке "Представления" - создадим связи, чтобы при выборе значения данного регистра в пользовательском режиме - нам выпадал сразу список из измерения данного регистра "СвойствоНоменклатуры". Т.к. помним, что измерение "СвойствоНоменклатуры"-это ПВХ, а ресурс "ЗначениеСвойства" - это и есть Характеристика данного ПВХ. Итак, на этой владке указываем "Связь по Типу" = "СвойствоНоменклатуры" . Теперь, если мы в измерении регистра выбрали Тип данных,н-р, строка, то когда будем вводить значение в ресурс - у нас сразу будет стоить тип строка, а не все возможные перечни типов!

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

В данном примере Товару "Транзистор Philips 2N2369" - создаем сначала Вид желаемого свойства товара, пусть это будет "Транзисторы", и сразу указываем тип данных для этого свойства - в данном примере мы выбираем вручную тип данных = Строка. Сохраняем. И далее нам нужно задать значения этому виду свойств товара, пусть это будет "Слаботочечные транзисторы":

Добавим еще одно Свойство этому товару, например, производитель "Корея".

Возьмем другой товар, создадим ему свойство "Трансформаторы", тип = строка, значение = "Строчные трансформаторы". А второе свойство, которое мы желаем ввести этому товару будет тоже "Производитель" - его создавать не нужно, оно уже есть у нас в выборке, но вот если мы попробуем ввести то же самое значение этого свойства, равного "Корея", то нам придется набирать его вручную....Это не очень удобно...Хорошо, когда один раз введенное значение - можно подставлять множество раз.

Чтобы добавить данное удобство, перейдем в Конфигуратор и создадим справочник, на вкладке "Владелец" укажем созданный ранее наш "УниверсальныйПВХ". Теперь, если у нас свойства значений будут строковыми, то нам не обязательно постоянно выбирать тип = Строка, достаточно будет дать ссылку на этот подчиненный справочник: в него очень удобно сохранять строковые значения, а кроме того - такой способ позволит нам выбирать уже готовые строковые значения для Свойств товара.

Произведем небольшие настройки ПВХ в связи с появившемся подчиненным ему справочником:

Также и в регистре сведений нам нужно добавить настройки, чтобы при выборе значения ресурса регистра - у нас сразу же появлялась выборка по Владельцу данного свойства.

С первым пунктом поставленной задачи мы справились - механизм создания уникальных свойств товару создали.

Заполним различные свойства номенклатуры в пользовательском режиме 1с. Обратим внимание, что уже введенные ранее свойства, такие как,н-р, Производитель, уже сразу есть в варианте выборке свойств, а так же нам дается сразу выбрать готовое значение этого свойства,н-р, "Корея".

Теперь перейдем ко второму этапу решения поставленной задачи: дать возможность в отчете делать отбор,н-р, по остаткам товара или по продажам товара от Свойств этого товара.

Сразу скажу, что мы не будем придумывать сложный механизм, добавляя в поля табличных частей документов какие-нибудь свойства товара!!! На практике так нельзя делать, иначе будет такая неразбириха с документами, что потом никаких сил не хватит это исправить....

Все гораздо проще. У нас есть товар, название его краткое, лаконичное, в свойствах его описаны все ньюансы. Если у нас появился товар с другими видами свойств - то это значит, что этот товар другой, а не тот же самый!

Н-р, у нас есть один товар "Строчный трансформатор Samsung", у которого два свойства:1) "Трансформаторы" = "Строчные трансформаторы";2) "Производитель" = "Корея", и другой товар "Строчный трансформатор Россия", у которого два свойства:1) "Трансформаторы" = "Строчные трансформаторы";2) "Производитель" = "Россия". Так вот мы никак не можем сказать, что эти два товара одинаковые, а отличаются только свойствами!!! Нет, эти два товара разные, чем мы коротко указываем различие их в Названии, и более подробно - описываем в свойствах данного товара.

Отсюда, нам не нужно создавать какое-то дополнительное поле в первичных документах, чтобы в нем прописывать одну из характеристик товара (у нас этих характеристик может быть более одной!).

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

В Конфигураторе создадим Отчет по регистру "УникальностьУниверсальногоПВХ". Запишем в запрос СКД-отчета следующий код:

ВЫБРАТЬ ОстаткиМатериаловОстаткиИОбороты.Материал, ОстаткиМатериаловОстаткиИОбороты.КоличествоНачальныйОстаток КАК НачальныйОстаток, ОстаткиМатериаловОстаткиИОбороты.КоличествоПриход КАК Приход, ОстаткиМатериаловОстаткиИОбороты.КоличествоРасход КАК Расход, ОстаткиМатериаловОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток, УникальностьУниверсальногоПВХ.СвойствоНоменклатуры, УникальностьУниверсальногоПВХ.ЗначениеСвойства ИЗ РегистрНакопления.ОстаткиМатериалов.ОстаткиИОбороты КАК ОстаткиМатериаловОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УникальностьУниверсальногоПВХ КАК УникальностьУниверсальногоПВХ ПО ОстаткиМатериаловОстаткиИОбороты.Материал = УникальностьУниверсальногоПВХ.Номенклатура

В настройках СКД-отчета разрешим использовать в пользовательском режиме "Отбор". При формировании отчета в 1с-Предприятии - в отборе выбирем СвойствоНоменклатуры=Производитель. У нас получится очень интересный отчет:

Заменив регистр остатков на регистр Продаж - создадим второй отчет Продажи с возможностью отбора по свойствам товаров.

Мы выполнили и даже перевыполнили второй пункт задачи - дать возможность Аналитику создавать отчеты в разрезе Свойств товара.

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

п.с. при создании данной статьи мне очень помогла информация, прочитанная вот отсюда:

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Надеюсь, что моя статья пригодится начинающим программистам на платформе 1с 8.3

п.с. в загрузку прилагаю учебную базу, в которой созданы были все текущие примеры. Эту базу я начала писать с нуля по урокам книги "1С_ Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы" Радченко/Хрусталева http://v8.1c.ru/metod/books/book.jsp?id=441 , просто дополняя ее еще и свои наработки.

Успехов в освоении ПВХ, в случае с решением этой непростой задачки - очень подходит лозунг ниже)):

На всякий случай копирайт

В конструкторе запросов, когда он вызывается из формы настройки источника данных, для схемы компоновки данных. Есть закладка “характеристики”, использование которой не вполне ясно описано в документации. В этой статье я постараюсь объяснить, как и для чего используются характеристики в СКД.

В типовых конфигурациях активно используется механизм свойств и значений свойств доступный практически для любых объектов. Примитивно, на справочниках, этот механизм реализовывался еще в конфигурациях 7.7. Сейчас этот механизм реализован с использованием плана видов характеристик и регистра сведений, но идея осталась прежней.

Когда я впервые столкнулся с необходимостью использования этого механизма, в схеме СКД, я очень долго мучился, организовывал вложенные запросы, присоединял к основной выборке и ломал голову над тем, как учесть возможность появления новых видов свойств, которых нет на момент разработки отчета. Весь механизм свойств, будучи простым и логичным с точки зрения пользователя, не поддавался никакой нормальной обработке, пока я не разобрался с закладкой “Характеристики”.

Таблица на закладке очень капризная, либо вы введете всю строку корректно, либо откажетесь от ввода строки совсем, оставить “на потом” не до конца заполненную строку система не даст.

Итак, перейдем к конкретике. Первая колонка: Тип – здесь выбираем тип объекта, к которому привяжутся характеристики, например “СправочникСсылка.Номенклатура”

Это означает, что теперь для всех объектов указанного типа можно будет получить значения свойств.

Далее в следующей колонке Источник видов мы должны задать параметры источника видов свойств. Возможны варианты таблица м запрос , зачем нужен вариант запрос расскажу позже, сейчас выберем пункт таблица .

В колонке Виды характеристик мы должны выбрать таблицу информационной базы, в которой хранятся нужные виды характеристик, в нашем примере это будет “ПланВидовХарактеристик.СвойстваОбъектов”.

Далее, значения доступные нам для выбора в колонках Поле ключа , Поле имени и Поле типа значения , непосредственно зависят от полей выбранной нами таблицы. В Поле ключа мы выбираем Ссылка , в Поле имени Представление (именно его пользователь увидит в качестве имени реквизита), а в Поле типа соответственноТипЗначения .

Теперь перейдем к источнику значений. Источником значений у нас будет регистр сведений “ЗначенияСвойствОбъектов”, поэтому мы выбираем в колонке Источник значений таблица , а в колонкеЗначения характеристик – “РегистрСведений.ЗначенияСвойствОбъектов”. В колонках Объект , Свойство ,Значение , выбираем соответствующие поля регистра Объект , Свойство , Значение .

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

Разворачиваем список реквизитов группировки Номенклатура и … не видим там никаких свойств:

Дело в том, что мы находимся в конфигураторе, откуда нет доступа к данным. Как же сделать нужную настройку? Удобнее всего для этого использовать консоль компоновки данных, ту что на диске ИТС, или ту что входит в подсистему “Инструменты разработчика”. Но можно и просто открыть настройку отчета в режиме предприятия.

Итак, откроем ту же настройку, но в режиме предприятия:

Как видите, у нас добавились новые “Реквизиты”, при этом свойство “Бренд ” внешне не отличается от обычных реквизитов справочника. А свойство “Вид товара ” взято в квадратные скобки, это связано с тем, что представление свойства содержит пробел.

Однако, у нас появилось и свойство “Вид договора ” которое привязано к справочнику “Договора ” и никакого отношения не имеет к “Номенклатуре “. Если не использовать в настройке “Вид договора ” то все будет работать корректно, если же его выбрать, то в результате оно окажется не заполненным, потому что ни у одного элемента номенклатуры это свойство действительно не заполнено. Но как же отфильтровать лишние свойства, чтобы они не “путались под ногами”?

Для этого нам нужно изменить настройку источника видов, в конструкторе запроса, на закладке “Характеристики”. Помните, я в начале статьи обещал рассказать, для чего нужен тип источника видов запрос ? Сейчас как раз такой случай. Меняем тип источника видов на запрос . В колонке виды характеристик нажимаем кнопочку “[…]” и открывается новое окно конструктора запросов.

Вводим туда такой запрос:

ВЫБРАТЬ
СвойстваОбъектов.Ссылка,
СвойстваОбъектов.Наименование + ” (свойство)” КАК Наименование,
СвойстваОбъектов.ТипЗначения
ИЗ
ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
ГДЕ
СвойстваОбъектов.НазначениеСвойства =ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура)
И (НЕ СвойстваОбъектов.ПометкаУдаления)
И (НЕ СвойстваОбъектов.Категория)

В колонках Поле ключа , Поле имени и Поле типа значения , выберем соответствующие поля выборки:Ссылка , Наименование и ТипЗначения . Получится так:

Теперь, когда мы перейдем к настройке отчета, в списке реквизитов Номенклатуры картинка изменится:

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

На этом собственно и все, но многих может смутить невозможность настройки в конфигураторе. На самом деле ничего страшного нет. Достаточно сохранить настройку (или всю схему) в файл, а в конфигураторе восстановить.

Непонятные ему реквизиты конфигуратор отобразит красными крестами, как недоступные:

Но это уже не страшно, потому что отчет с такими настройками можно сохранить в конфигурации и он будет корректно работать при открытии пользователем.

Предназначенные для хранения информации о характеристиках различных объектов; это объект метаданных, предназначенный для организации хранения информации свойств объектов и аналитики.

С их помощью пользователь может создавать всевозможные характеристики, описывать этих характеристик и задавать их значения. Например для того, чтобы описывать товары произвольным количеством произвольных характеристик (цвет, размер, запах и т.д.).

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

Основное назначение плана видов характеристик:

  • хранение для каждой характеристики типа значения, который она может принимать.

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

Примеры использования "Планов вида характеристик" в типовых конфигурациях:

  • хранение аналитики;
  • субконто (для планов счетов);
  • хранение свойств и прав пользователей, и т.д.

Замечание. Не исключена ситуация, когда для создания очередной характеристики пользователю понадобится тип, не существующий в прикладном решении. Например, пользователь решит создать характеристику "Запах", которая должна иметь значения "Запахи", но такого справочника в прикладном решении нет. Специально для таких ситуаций разработчик может создать специальный пустой справочник, и указать, что в нем будут храниться дополнительные значения характеристик.

Рисунки "Дополнительные значения характеристик ПВХ"

[свернуть]

Теперь, создавая характеристику "Запах", пользователь сможет выбрать для нее тип значения этого специального справочника, а в самом справочнике создать нужные ему значения: "Сладкий, Резкий, Кислый" и т.д.

Т.о. в поле "Дополнительные значения характеристик" выбирается подчиненный справочник, которых хранит произвольные характеристики.

Структура объекта 1С "Планы видов характеристик"

По своей структуре план видов характеристик напоминает справочник: в плане видов характеристик хранятся элементы - характеристики, которые могут:

  1. иметь некоторый набор реквизитов и табличных частей;
  2. образовывать иерархические структуры;
  3. содержать предопределенные характеристики, заданные разработчиком.

Формы объекта 1С "Планы видов характеристик"

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

Форма списка ПВХ

Форма списка Планов видов характеристик используется для просмотра данных, содержащихся в плане видов характеристик. Она позволяет:

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

Форма списка может представлять данные в иерархическом и не иерархическом виде и позволяет выполнять сортировку и отбор отображаемой информации по нескольким критериям.

Форма характеристики ПВХ

Для просмотра и изменения данных отдельных характеристик используется форма характеристики. Как правило, она представляет данные в удобном для восприятия и редактирования виде.

Кроме этого для планов видов характеристик, также как и для справочников, поддерживаются формы группы, выбора и выбора группы.

Понравилась статья? Поделиться с друзьями: