Планы видов характеристик

Печать (Ctrl+P)

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

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


Свойство «Тип значения характеристик»

Данное свойство описывает перечень типов, которые в дальнейшем могут быть указаны в качестве типа (одного или нескольких) значения конкретного вида характеристики. Возможность такого выбора типа(-ов) не требует изменения структуры и программного кода прикладного решения. Также следует отметить, что для задания типа реквизита, хранящего значение характеристики, связанной с конкретным планом видов характеристик, служит специальный тип Характеристика.<ИмяПланаВидовХарактеристик>. Реквизит, для которого указан такой тип, не может быть составного типа.

Если в состав свойства Тип значения характеристик входят типы ЧислоДата, СправочникСсылка.Номенклатура и СправочникСсылка.Контрагенты, то появляется возможность создать вид характеристики Размер с типом Число или вид характеристики Поставщик с типом СправочникСсылка.Контрагенты. Однако нельзя создать вид характеристики с типом Булево, т. к. этот тип не входит в состав свойства Тип значения характеристик. В связи с этим следует тщательно подходить к выбору набора типов при создании плана видов характеристик.

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

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

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

Примеры реализации механизма характеристик

Будем рассматривать следующие примеры

  • Пример №1 Самый простой пример механизма учета характеристик. Для каждого объекта метаданных создается свой план видов характеристик и регистр сведений, который хранит значения характеристик.
  • Пример №2 В данном примере рассматривается случай, когда необходимо создавать виды характеристик таких типов, которые не описаны в прикладном решении. При этом сохраняются все возможности предыдущего примера.
  • Пример №3 Этот пример следует использовать при необходимости использовать один план видов характеристик для описания видов характеристик всех необходимых объектов метаданных, а для хранения значений характеристик использовать один регистр сведений.
  • Пример № 4 . Такой пример следует использовать в тех случаях, когда необходимо использовать один и тот же вид характеристик для различных объектов метаданных (наборы характеристик). При этом значения характеристик хранятся в регистре сведений.
  • Пример №5 Если доступ к характеристикам и их значениям должен ограничиваться с помощью механизма ограничения доступа к данным, наложенным на сам объект, то можно воспользоваться этим примером реализации механизма.

Пример 1

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

Задача

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

Реализация


Регистр сведений «ЗначенияХарактеристикНоменклатуры»

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

Рассмотрим структуру регистра подробно:

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

Для ресурса необходимо в свойство Связи параметров выбора добавить параметр с именем Отбор.Владелец, связанный с измерением ВидХарактеристики и с режимом использования Очищать. Такая настройка при редактировании в форме обеспечит очистку значения характеристики при смене вида характеристики.


Настройки ресурса «Значение»

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

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


Описание характеристик справочника «Номенклатура»

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

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

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


Значения характеристик

Например, для получения списка значений отбора в динамическом списке. В данном примере описана следующая схема хранения значений характеристик:

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

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

  • Реквизит типа того объекта, для которого хранится значение характеристики ‑ поле объекта.
  • Реквизит типа плана видов характеристик, который хранит собственно характеристику ‑ поле вида.
  • Реквизит типа значения характеристики (собственно значение характеристики) ‑ поле значения.

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

  • Справочники,
  • Документы,
  • Перечисления,
  • Планы видов характеристик,
  • Планы счетов,
  • Планы видов расчета,
  • Планы обмена,
  • Бизнес-процессы,
  • Задачи.

Результат

Реализация данного примера позволит:

  • В плане видов характеристик создавать виды характеристик, которые необходимы для элементов «своего» объекта метаданных.
  • Для каждого элемента справочника Номенклатура указывать собственный набор характеристик и указывать для каждого вида характеристик необходимое значение характеристики.

Пример 2

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

Задача

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

Для реализации такой задачи необходимо создать специальный справочник, который будет являться хранилищем дополнительных значений характеристик. Этот справочник будет являться подчиненным для плана видов характеристик. Затем надо будет указать этот справочник в специальном свойстве плана видов характеристик ‑ Дополнительные значения характеристик. Также этот справочник нужно будет указать в качестве одного из возможных типов свойства Тип значения характеристик.

Реализация

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

● Указать для справочника ЗначенияХарактеристик план видов характеристик в качестве владельца. В результате для каждого вида характеристики будет доступен тот набор значений, который указан именно для этого вида характеристики.

Рис. 171. Владелец справочника «ЗначенияХарактеристик»

● Указать справочник ЗначенияХарактеристик в качестве одного из значений составного типа для свойства Тип значений характеристик плана видов характеристик ХарактеристикиНоменклатуры.

● Выбрать справочник ЗначенияХарактеристик в качестве значения свойства Дополнительные значения характеристикплана видов характеристик.


Свойство «Дополнительные значения характеристик»

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

Результат

Реализация данного примера позволит:

  • Создавать виды характеристик, для хранения значений (дополнительных значений характеристик) которых в прикладном решении нет подходящих типов.
  • Указывать в качестве значений характеристик дополнительные значения характеристик.

Пример 3

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

Задача

Этот пример можно рассмотреть при необходимости использовать для описания видов характеристик всех объектов метаданных один план видов характеристик, а для хранения значений характеристик использовать один регистр сведений. Разделение видов характеристик между объектами метаданных будет выполняться с помощью реквизита плана видов характеристик. Значение этого реквизита будет определять «принадлежность» конкретному объекту (реквизит содержит значение) или всем объектам метаданных (реквизит не задан).

Реализация

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

ПРИМЕЧАНИЕ. Для ускорения отборов нужных видов характеристик, желательно для реквизита ТипВидаХарактеристикиустановить свойство Индексировать в значение Индексировать с доп. упорядочиванием.

Для хранения значений реквизитов следует создать регистр сведений с именем ЗначенияХарактеристикОбъектов, при этом его состав и настройки следует взять из примера 1 (регистр ЗначенияХарактеристикНоменклатуры. Отличие от примера 1 заключается в том, что тип измерения Объект будет составного типа и в состав типов должны входить все ссылочные типы, для которых планируется вести учет характеристик.

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

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


Структура конфигурации

В данном примере предполагается, что характеристики буду учитываться только для справочников Номенклатура и Контрагенты.


Задание принадлежности характеристики

Теперь следует «объяснить» системе, как выполнять отбор видов характеристик для того или иного объекта метаданных (это необходимо проделать для каждого объекта, обладающего характеристиками):

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

Далее приведен пример указания правила отбора характеристик для справочника Номенклатура.


Привязка характеристик к объекту метаданных

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

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

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


Отбор «свободных» характеристик

При этом «общими» будут считаться те виды характеристик, в которых значение реквизита ТипВидаХарактеристики не заполнено. Хранение значений характеристик описывается аналогично примеру 1 .

Расширение

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

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

Результат

Реализация данного примера позволит:

  • Использовать для хранения видов характеристик всех объектов один план видов характеристик.
  • Разделять виды характеристик на «принадлежащие» конкретным объектам и общие для всех объектов.

Пример 4

Задача

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

Схема, удовлетворяющая вышеописанным требованиям, выглядит следующим образом:

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

Реализация

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


Хранение списка характеристик в табличной части справочника

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

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


Интерактивная настройка характеристик

В результате получается следующая схема:

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

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

Рассматриваемая схема хранения списка характеристик не обеспечивает автоматического формирования списка выбора характеристик при добавлении в объект новой характеристики (из перечня доступных). Для формирования такого списка следует особым образом сформировать форму выбора объекта метаданных план видов характеристик.

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

ВЫБРАТЬ
    ПланВидовХарактеристик.Ссылка,
    ПланВидовХарактеристик.Код,
    ПланВидовХарактеристик.Наименование,
    ПланВидовХарактеристик.ТипЗначения
ИЗ
    ПланВидовХарактеристик.ХарактеристикиОбъектов КАК ПланВидовХарактеристик
        {ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НаборыХарактеристик.СоставНабора КАК СоставНабора
        ПО ПланВидовХарактеристик.Ссылка = СписокХарактеристик.ВидХарактеристики}
{ГДЕ
    СписокХарактеристик.Ссылка.* КАК НаборХарактеристик}

Также следует указать в качестве основной таблицы динамического списка ПланВидовХарактеристик.ХарактеристикиОбъектови установить флажок Динамическое считывание данных.


Форма выбора плана видов характеристик

В модуле формы необходимо определить обработчик события ПриСозданииНаСервере:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Предопределенные = Новый Соответствие;
    Предопределенные.Вставить(Тип("СправочникСсылка.Номенклатура"), Справочники.НаборыХарактеристик.Номенклатура);
    Если Не Параметры.Свойство("ОбъектОтбораВидовХарактеристик") Тогда
        Возврат;
    Иначе
        ОбъектОтбора = Параметры.ОбъектОтбораВидовХарактеристик;
        ТипОбъектаОтбора = ТипЗнч(ОбъектОтбора);
        Если Предопределенные.Получить(ТипОбъектаОтбора) <> Неопределено Тогда
            НовыйЭлемент = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
            НовыйЭлемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НаборХарактеристик");
            НовыйЭлемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
            НовыйЭлемент.ПравоеЗначение = Предопределенные[ТипОбъектаОтбора];
            НовыйЭлемент.Использование = Истина;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

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

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

Расширение

Если в описанный пример необходимо добавить поддержку характеристик для еще одного объекта метаданных, то следует выполнить следующие действия:

  • В справочнике НаборыХарактеристик создать новый предопределенный элемент.
  • Для «нового» объекта метаданных следует настроить связь между объектом конфигурации и справочником НаборыХарактеристик (по аналогии с примером из данного раздела).
  • В форме выбора плана видов характеристик добавить нужный тип в код заполнения соответствия Предопределенные. Например, для справочника Контрагенты добавляемая строчка будет выглядеть следующим образом (предопределенный элемент справочника НаборыХарактеристик будет называться Контрагенты):
Предопределенные.Вставить(Тип("СправочникСсылка.Контрагенты"), Справочники.НаборыХарактеристик.Контрагенты);
  • Расширить тип измерения Объект регистра сведений ЗначенияХарактеристикОбъектов, добавив в него тип «нового» объекта метаданных.
  • В режиме «1С:Предприятие» заполнить табличную часть нового предопределенного элемента допустимыми видами характеристиками.

Результат

Реализация данного примера позволит:

  • Вести единый список видов характеристик для всех объектов метаданных, для которых нужно вести учет характеристик.
  • Формировать, в режиме «1С:Предприятия», для каждого объекта метаданных список допустимых видов характеристик.

Пример 5

Задача

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

При этом можно выделить несколько особенностей такого способа хранения характеристик:

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

Реализация

Схема, удовлетворяющая вышеописанным требованиям, выглядит следующим образом:

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

Характеристики в табличной части ‑ общая схема

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

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

Хранение характеристик и их значений в табличной части справочника

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

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


Настройки реквизита справочника «ВидХарактеристики»

Для реквизита ЗначениеХарактеристики следует:

  • В свойство Связи параметров выбора добавить параметр с именем Отбор.Владелец, связанный с реквизитом Характеристики.ВидХарактеристики и с режимом использования Очищать. Такая настройка при редактировании в форме обеспечит очистку значения характеристики при смене вида характеристики.
  • Свойство Связь по типу установить в значение Характеристики.ВидХарактеристики.

Организация хранения списка используемых характеристик для каждого объекта метаданных (равно как и специальная форма выбора плана видов характеристик) аналогично примеру, рассмотренному в примере 4.

Расширение

Если в описанный пример необходимо добавить поддержку характеристик для еще одного объекта метаданных, то следует выполнить следующие действия:

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

Результат

Реализация данного примера позволит:

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

0

Автор публикации

не в сети 1 неделя

master1c8

0
Комментарии: 10Публикации: 406Регистрация: 25-12-2016

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.