Как изменить план видов характеристик

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

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

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

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

Структура

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

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


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

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


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

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

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

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


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

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

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

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


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

Форма списка

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


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

Форма характеристики

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Пример 1

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

Задача

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

Реализация

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Результат

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

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

Пример 2

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

Задача

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

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

Реализация

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

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

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

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

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

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

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

Результат

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

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

Пример 3

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

Задача

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

Реализация

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Расширение

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

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

Результат

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

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

Пример 4

Задача

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

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

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

Реализация

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Расширение

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

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

Результат

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

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

Пример 5

Задача

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

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

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

Реализация

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

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

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

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

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

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

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

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

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

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

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

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

Расширение

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

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

Результат

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

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

Дополнительные реквизиты объектов с помощью плана видов характеристик

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

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

Быстрый переход

  • Изменения в конфигурации
  • Использование дополнительных реквизитов в отчётах и списках
    • Вариант №1
    • Вариант №2

Изменения в конфигурации

Разработку конфигурации будем вести на базе платформе 1С: Предприятие 8.2 с установленным свойством “Основной режим запуска” – “Управляемое приложение”. В качестве основы для разработки подойдет любая демо-конфигурация. Добавим новый план видов характеристик “Виды характеристик”. На закладке “Основные” плана видов характеристик в поле “Тип значения характеристик” выберем необходимые типы.

plany-vidov-harakteristik-tip-znacheniya

В качестве одного из возможных типов значений характеристик выберем предварительно добавленный в конфигурацию справочник “Значения характеристик”, подчиненный плану видов характеристик “Виды характеристик”. Его же выберем в поле “Дополнительные значения характеристик”. Это позволит добавлять характеристики с произвольными ссылочными значениями (например, цвет или размер).

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

osnovnoj-otbor-u-rekvizitaЭто обеспечит связь объекта с записями регистра сведений. В форме элемента справочника “Контрагенты” переход к редактированию характеристик будет возможен с помощью соответствующего пункта меню “Перейти” в левой части формы.

Измерению “Вид характеристики” необходимо назначить тип “ПланВидовХарактеристикСсылка.ВидыХарактеристик”, а ресурсу “Значение” – “Характеристика.ВидыХарактеристик”.

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

otbor-znacheniya-po-tipu-v-harakteristka

Теперь всё готово для того чтобы мы могли вводить в базу данных дополнительные реквизиты справочника “Контрагенты”.

Попробуем добавить дополнительный реквизит “Адрес”

primer-ispolzovaniya-plana-harakteristik

Использование дополнительных реквизитов в отчётах и списках

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

Вариант №1

Начнём с использования характеристик в отчёте, разработанном с использованием системы компоновки данных. За основу возьмём отчёт “Ведомость взаиморасчетов”. Добавим в конфигурацию копию этого отчёта и назовём его “Ведомость взаиморасчетов (с характеристиками)”.

Оригинал отчёта нам понадобится для демонстрации второго варианта использования характеристик.

Итак, откроем набор данных “Взаиморасчеты” схемы компоновки данных нашего отчета в конструкторе запросов и перейдем на закладку “Характеристики”.

konstruktor-harakteristika

  • В таблицу на вкладке “Характеристики” добавим строку.
  • В поле “Тип” выберем “СправочникСсылка.Контрагенты” (это объект для которого в отчёте необходимо использовать дополнительные характеристики).
  • В поле “Источник видов” выберем вариант “Запрос” (хотя в нашем случае можно ограничиться и вариантом “Таблица”).
  • В колонку “Виды характеристик” внесём текст запроса, которым будут выбираться виды характеристик, используемые для справочника “Контрагенты”.

Текст запроса обязательно должен содержать три поля – ссылка на вид характеристики, наименование характеристики и тип значения характеристики. Наименования этих полей выбираются в колонках “Поле ключа”, “Поле имени” и “Поле типа значения” таблицы на закладке “Характеристики”.

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

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

{ХАРАКТЕРИСТИКИ
    ТИП(Справочник.Контрагенты)
    ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
        ВидыХарактеристик.Ссылка,
        ВидыХарактеристик.Наименование + » (доп. реквизит)» КАК Наименование,
        ВидыХарактеристик.ТипЗначения
    ИЗ
        ПланВидовХарактеристик.ВидыХарактеристик КАК ВидыХарактеристик)
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.Характеристики
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА ВидХарактеристики
ПОЛЕЗНАЧЕНИЯ Значение }

Проверим работу отчёта. Для этого откроем отчёт “Ведомость взаиморасчетов (с характеристиками)”. Перейдем в пункт меню “Все действия -> Изменить вариант”. В окне настроек перейдём на закладку “Отбор” и добавим отбора по дополнительному реквизиту контрагента “Адрес”

otbor-v-skd

Вариант №2

Рассмотрим более универсальный вариант работы с характеристикам объектов, благодаря которому характеристики возможно будет использовать в любых отчетах, содержащих объект-владелец характеристик, а также устанавливать отборы по значению этих характеристик в формах списков.
Перейдём на закладку “Данные” справочника “Контрагенты” и нажмём кнопку “Характеристики”.

dopolnitelnye-harakteristiki-obekta-metadannyh

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

Сохраним конфигурацию и попробуем воспользоваться дополнительными характеристиками справочника “Контрагенты” в форме списка (в отчёте “Ведомость взаиморасчетов” использование дополнительных реквизитов будет выглядеть аналогичному тому как это было описано в Варианте №1, с той лишь разницей, что наименованию вида характеристики не будет добавляться текст “(доп. реквизит)”).

Откроем список справочника “Контрагенты”, перейдем в пункт меню “Все действия -> Настройка списка” и установим отбор по дополнительному реквизиту “Адрес”.

nastrojka-spiska-dobavlenie-v-otbor

Стоит отметить, что при использовании Варианта №1 в отчётах с использованием СКД отключается приведенный механизм платформы и используется описанный пользователем.

Статья найдена на просторах интернета.

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

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

Создаем ПВХ в 1С

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

Еще одна ситуация, где ПВХ будет оптимальным решением – перепроверка элементов с указанием новых свойств. К примеру, в 1С номенклатуру всегда добавляли, указывая только наименование, а теперь решили, что нужно указывать цвет, длину и марку. Многие решают эту ситуацию с помощью текстового поля «Комментарий», куда заносят всю информацию через запятую. Этот путь ведет к проблеме усложнения получения правильных данных из отчетов, в отличие от добавления плана видов характеристик.

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

Рис.1 Создаем ПВХ
Рис.1 Создаем ПВХ

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

Рис.2 Добавляем дополнительный справочник
Рис.2 Добавляем дополнительный справочник

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

  1. Измерение «Номенклатура». Тип – ссылка на соответствующий справочник, отметка «Ведущее» обязательна, чтобы в 1С при открытии номенклатуры пользователь мог указывать дополнительные показатели;
  2. Измерение «СвойствоНоменклатуры». Тип – ссылка на созданный ПВХ;
  3. Ресурс «ЗначениеСвойстваНоменклатуры». Тип – Характеристика.СвойствоНоменклатуры, в свойство «Связь по типу» указываем Свойствономенклатуры. Для удобства пользователей настройте связи параметров выбора, указав отбор по владельцу (СвойствоНоменклатуры).
Рис.3 Вкладка «Данные»
Рис.3 Вкладка «Данные»

Проверка работоспособности

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

Рис.4 Проверка работоспособности
Рис.4 Проверка работоспособности

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

Рис.5 Показатели номенклатуры
Рис.5 Показатели номенклатуры
Рис.6 Свойства номенклатуры
Рис.6 Свойства номенклатуры

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

Рис.7 Созданное свойство номенклатуры
Рис.7 Созданное свойство номенклатуры

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

Рис.8 Показатели номенклатуры
Рис.8 Показатели номенклатуры
Рис.9 Ошибка
Рис.9 Ошибка

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

Рис.10 Данные нового справочника
Рис.10 Данные нового справочника

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

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

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

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

  • Количество сотрудников (число)
  • Дата регистрации (дата)
  • Страна (выбор из списка стран)
  • Регион (выбор из списка регионов)
  • Сфера деятельности (выбор из списка сфер деятельности)
  • Категория (важный, обычный, проблемный)

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

  • Справочник
  • План видов характеристик
  • Регистр сведений
  • Табличная часть справочника “Контрагенты”

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

План видов характеристик не подходит по тем же причинам, что и справочник.

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

Табличная часть справочника “Контрагенты” также подходит для решения поставленной задачи. В табличной части уже есть стандартный реквизит “Ссылка”, остается добавить только реквизиты “ДополнительныйРеквизит” и “Значение”. К тому же при использовании табличной части с данными можно работать непосредственно в форме контрагента. Минус использования табличной части — отсутствие контроля уникальности записей на уровне платформы. Но есть возможность реализовать программный контроль на дубли.

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

Рассмотрим решение с использованием табличной части справочника “Контрагенты”. Добавим табличную часть “ДополнительныеРевизиты” с двумя реквизитами “ДополнительныйРеквизит” и “Значение”:

image
Теперь нужно определиться с типом данных для этих реквизитов.

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

Для хранения списка дополнительных реквизитов есть следующие варианты:

  • Справочник
  • План видов характеристик

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

В плане видов характеристик, напротив, есть возможность для каждого элемента хранить тип значения.

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

imageНа закладке “Данные” настроим длину кода и наименования:
imageВ свойствах реквизита “Значение” табличной части “ДополнительныеРеквизиты” справочника “Контрагенты” укажем тип — ПланВидовХарактеристикСсылка.ДополнительныеРеквизиты:
imageЧтобы для реквизита “Значение” были доступны типы данных, которые были указаны при создании плана видов характеристик, нужно выбрать тип данных “Характеристика.ДополнительныеРеквизиты”:
imageДля того чтобы при выборе значения не нужно было дополнительно выбирать его тип, настроим для реквизита “Значение” свойство “Связь по типу”:
imageВ этом случае тип реквизита “Значение” будет определяться типом выбранного дополнительного реквизита в конкретной строке табличной части.

Создадим в режиме пользователя необходимые дополнительные реквизиты в плане видов характеристик:

imageПосле этого переходим в форму конкретного контрагента и создаем необходимое количество записей в табличной части “Дополнительные реквизиты”:
imageПоскольку для дополнительных реквизитов “Регион”, “Страна” и “Сфера деятельности” был выбран тип данных “Строка”, значения нужно вводить вручную, что на практике совсем неудобно — для разных контрагентов значения этих реквизитов могут повторяться.

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

imageЧтобы хранить список значений для дополнительных реквизитов можно использовать отдельный справочник “ЗначенияДополнительныхРеквизитов”.
imageА чтобы отличать значения разных дополнительных реквизитов, этот справочник нужно сделать подчиненным плану видов характеристик “ДополнительныеРеквизиты”:
imageТеперь добавим этот справочник в качестве типа для плана видов характеристик “Дополнительные реквизиты”, а также заполним свойство “Дополнительные значения характеристик:
imageТакже настроим свойство “Связи параметров выбора” реквизита “Значение” в табличной части “ДополнительныеРеквизиты” справочника “Номенклатура для того чтобы при выборе значения в списке отображались только те значения, которые относятся к выбранному дополнительному реквизиту:
imageВ режиме “1С:Предприятие” для дополнительных реквизитов “Регион”, “Страна” и “Категория” изменить тип данных на “Значения дополнительных реквизитов”:
imageДля каждого дополнительного реквизита теперь есть возможность хранить список значений:
imageimageimage
Теперь при заполнении дополнительных реквизитов в форме контрагента, если выбрать один из реквизитов с типом “Значения дополнительных реквизитов”, то выбор осуществляется из справочника с отбором по конкретному дополнительному реквизиту:
image
Таким образом, с помощью плана видов характеристик мы реализовали возможность добавлять в справочник “Контрагенты” произвольное количество дополнительных реквизитов различного типа данных.

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

  • Хранение настроек пользователя
  • Список видов субконто (аналитик) бухгалтерского учета

В
этой
работе
мы

познакомимся
с
новым
объектом
конфигурации

План
видов

характеристик

и

узнаем,

как
можно
использовать

этот
объект
для
расширения
возможностей
нашей
конфигурации.

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

описывать

материалы

и

вести

учет

в

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

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

Объект
конфигурации
план
видов
характеристик
предназначен
для
описания

структуры
хранения

информации

о

характеристиках,
создаваемых
пользователем.

Он

напоминает
справочник,
но

с
более
узкой
специализацией

хранит
только
виды
характеристик
объекта
БД.

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

видов
характеристик,
описываемых
наименованием
и
типом
значения.

Разработчик

и

пользователь
могут
задать

в

нем

любое

необходимое
количество
видов
характеристик.

Для

задания

набора

возможных

типов

значений,
которые

могут
принимать
виды
характеристик,
существует
свойство
Тип

значения
характеристик.

Если
пользователю
будет
недостаточно
определенных
в
данной
конфигурации
типов
данных,
он

может
воспользоваться

специальным
вспомогательным
справочником,
который
разработчик
создаст
заблаговременно

и
укажет

в

качестве

свойства

объекта

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

Дополнительные
значения
характеристик.

Логическая
связь
объектов

Для
реализации
этого
примера
нам
понадобятся
три

новых
объекта
конфигурации.

Прежде

всего,

План

видов

характеристик,

который
будет

хранить
виды
характеристик,
описывающих
материалы.

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

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

Третье

регистр

сведений,

в
котором
и

будет
храниться

соответствие
конкретных
значений
характеристик
некоторому
варианту
материала.

Справочник

Номенклатура

Справочник

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

Объект

Вид
характеристики

Значение

Номенклатура

Объект

Склад

Количество

Регистр
накопления
ОстаткиМатериалов

Регистр
сведений

Создание
новых
объектов
конфигурации

В
режиме
Конфигуратор

Нам

понадобится
создать
несколько
новых
объектов:

 Справочник

ВариантыНоменклатуры,

чтобы

описывать

партии
материалов.

 Справочник

ДополнительныеСвойстваНоменклатуры,

чтобы
задавать

значения

видов
характеристик,

для

которых
нет
подходящих
типов
в
конфигурации.

 План

видов

характеристик

СвойстваНоменклатуры,

чтобы
создавать
виды
характеристик.

 Регистр

сведений

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

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

Сначала
создадим
справочник
с
именем
ВариантыНоменклатуры

и
укажем,
что

он

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

Затем

создадим

еще

один

справочник

с

именем

ДополнительныеСвойстваНоменклатуры.

После
этого
создадим
План
видов
характеристик
с
именем
СвойстваНоменклатуры.
Установим
его
свойство
Тип

значения
характеристик.

Для
этого
нажмите
кнопку
выбора

и
задайте
составной
тип

данных:


Число,
длина
15,
точность
3;


Строка,
длина
25;


Дата;


Булево;

СправочникСсылка.ДополнительныеСвойстваНоменклатуры.

Затем

справочнику

ДополнительныеСвойстваНоменклатуры

укажем

владельца

план

видов

характеристик

СвойстваНоменклатуры.

После
определим,
что

дополнительные
значения
характеристик
плана
видов
х
арактеристик

будут

располагаться

в

справочнике
ДополнительныеСвойстваНоменклатуры.

В

заключение

создадим

объект

Регистр

сведений

с

именем

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

На

закладке
Данные
создадим
измерения
регистра:


НаборСвойств,
Ведущее,

тип

СправочникСсылка.ВариантыНоменклатуры;


ВидСвойства,
тип

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

Затем

создадим

ресурс

регистра:

Значение,

тип

Характеристика.СвойстваНоменклатуры.

Обратите
внимание,
что

мы

имеем
возможность
определить
тип
значения
ресурса
регистра
как
Характеристика.<имя>.
Это

определение
представляет
собой
составной
тип

данных,
как
он

задан
в
типе
значения
соответствующего

плана
видов

характеристик.

Т.е.

ресурс

регистра
может

иметь

значение

любого

типа

из

тех,

которые

описаны
в
типе
значения
плана
видов
характеристик.

Кроме
этого,
зададим

в

свойстве

Связь

по

типу

этого

ресурса
измерение

регистра
ВидСвойства.

Связь

по

типу
будет

обеспечивать
нам
соответствие
типа
значений,
вводимых
в
это
поле,
и

типа
характеристики,
выбранной
в
поле
Вид
свойства.

А
также
заполним
еще
одно
свойство

Связи
параметров
выбора.
Для
этого
нажмите
кнопку
выбора

у
этого
свойства
и
перенесите
из

списка
доступных

реквизитов

в

список

параметров

измерение

регистра

ВидСвойства.

Установка

свойства
Связи
параметров

выбора

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

номенклатуры,

для

выбора

будут
предлагаться

только

те

значения,
которые
относятся
к
выбранной
характеристике.

Доработка
объектов
конфигурации

Справочник
Но
менклатура

В
режиме
1С:Предприятие

Запустите
режим
отладки
и

посмотрите,
как
взаимодействуют
логически

связанные

объекты
конфигурации

Справочник
Номенклатура,

Справочник
ВариантыНоменклатуры,
План
видов
характеристик
СвойстваНоменклатуры
и
Регистр
сведений
ЗначенияСвойствНоменклатуры.

Мы
не
указывали
для
этих
объектов
подсистем,
к
которым
они
относятся,
потому
что

отображение
этих
объектов
вне
их

логической
связи
не
имеет
особого
смысла.
Т.к.
мы

задали
подчинения,
то

нужные
объекты
автоматически

попадут

в

панели

навигации

форм

своих

владельцев.

Поэтому
проигнорируйте

системное

сообщение

об

отсутствии

привязки
объектов
к
подсистемам.

В
разделе
Учет

материалов

откройте
справочник
Номенклатура

и

его

элемент

Кабель

электрический

из

группы

Материалы

Прочее.

Поскольку
справочник

Номенклатура

является

владельцем
справочника
ВариантыНоменклатуры,
мы

видим
в
панели
навигации
ссылку

для

перехода

к

подчиненному

списку.

Это
значит,

что

при
открытии

этого

списка

мы

будем
видеть

только

наборы

свойств,
относящиеся
к
редактируемому
элементу
справочника
Номенклатура.

Это

система

сделала

за
нас,

и

нас

это

устраивает.

Но

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

реквизита
Родитель

не

совсем

понятно.

Более
естественное
название

Группа
номенклатуры.

Поскольку
в интерфейсе

отражаются

синонимы

объектов,
нам
нужно

изменить
синоним
стандартного

реквизита

справочника,

который
по

умолчанию
совпадает
с
его
именем
Родитель.

В
режиме
Конфигуратор

Для

этого

вернемся

в

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

и

откроем

окно
редактирования
Справочника
Номенклатура.

На
закладке

Данные

нажмите

кнопку

Стандартные

реквизиты,
дважды
щелкните
на
реквизите
Родитель
и
в
открывшемся
окне
задайте
Синоним
реквизита
Группа
номенклатуры.

Мы
изменили
синоним
реквизита
объекта
конфигурации,
а
не
реквизита
формы.
В

данном
случае

форма
элемента
справочника

Номенклатура
вообще
сгенерирована
системой
автоматически.

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

В
режиме
1С:Предприятие

Откройте
форму
того
же

элемента
номенклатуры
и
вместо
названия
мы

увидим
Группа
номенклатуры.

Справочник
Варианты
номенклатуры

В
режиме
1С:Предприятие

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

Для

этого
выполним

команду
Варианты
номенклатуры

для

перехода

к

списку,

где

будут
храниться

наборы

свойств
элементов
номенклатуры.

Открывшаяся
форма

списка

вариантов

номенклатуры
не

совсем
нас устраивает

поля
Код
и

Владелец

явно
лишние.
Код
нового
варианта
номенклатуры
генерируется
автоматически
и
ничего
пользователю
не
говорит.
Владелец

варианта
номенклатуры
отражен
в
левом
верхнем
углу
панели
навигации
формы
и
тоже
в
списке
не
имеет
смысла.

Чтобы

сделать

эти

колонки

невидимыми,

нам

нужно

создать
форму
списка
справочника
ВариантыНоменклатуры
и

при
ее
создании
проанализировать,
откуда

она

открывается

(это

можно

понять

по
значению
параметра
формы
Отбор).

Если
установлен

отбор

по

владельцу
(т.е.

она
открывается
из

списка
номенклатуры),
то

мы

будем
в
ней
скрывать
колонки
Код
и
Владелец.
Если

же

форма

открывается

другими
способами,
то

эти
колонки
могут
понадобиться,

поэтому

просто

удалить

их

из

формы
было

бы
неправильно.

Поскольку
форма
создается
на
сервере,

делать
это
нужно
в
обработчике
события
формы
ПриСозданииНаСервере.

В
режиме
Конфигуратор

Для
создания
формы
откройте
окно
редактирования
объекта
Справочник
ВариантыНоменклатуры,

перейдите

на
вкладку

Формы,
нажмите
кнопку
открытия

и
создайте
основную
форму
списка.

Форма,
созданная
конструктором,
не
содержит
поля
Владелец.
Поэтому
наша
задача

даже
упрощается:

нам
нужно
будет
скрыть
только
поле
Код.

В

открывшемся
окне
редактора

форм
вверху

слева

расположено
окно

элементов

формы.

Выделите
в
нем

элемент

Форма

(нам
нужно
событие
формы
в
целом)
и

двойным
щелчком
откройте

свойства

этого
элемента.

Прокрутите

список

вниз,

найдите

событие

ПриСозданииНаСервере
и
нажмите
кнопку
открытия

.

В

модуле

формы

будет

создан

обработчик

события

формы

ПриСозданииНаСервере,
в
который
мы

внесем
следующий
текст:

&НаСервере

Процедура
ПриСозданииНаСервере(Отказ,
СтандартнаяОбработка)

Если
Параметры.Отбор.Свойство(«Владелец«)
Тогда

Элементыодидимость
=
Ложь;
КонецЕсли;

КонецПроцедуры

Прокомментируем
этот
код.

Параметры

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

Используя

это

свойство,

мы

получаем

объект,
который
содержит
коллекцию
параметров
формы.

К
элементу
этой
коллекции
Отбор
мы

обращаемся
по

имени.

Используя
метод
Свойство
структуры
элементов
отбора,
мы

определяем,
установлен
ли

отбор
по

полю
Владелец.

Если
такой
отбор
установлен,
мы

устанавливаем
видимость
поля
Код
в
значение
Ложь,
т.е.
скрываем
это
поле.
Здесь
Элементы

это
свойство
управляемой
формы,
которое
позволяет
получить
доступ
ко

всем
элементам
формы.

В
режиме
1С:Предприятие

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

Как

видите,

мы

добились

желаемого

результата:

было

три
колонки,
теперь
только
одна

Наименование.

Нажмите

кнопку
Создать,

чтобы

создать

новый

набор

свойств

для
элемента
номенклатуры.
Появится
сгенерированная
форма
элемента
справочника
ВариантыНоменклатуры.
В
ней
есть
недостатки:


Заголовок
формы
должен
быть
задан
в
единственном
числе,


Лишние
поля
Код

и
Владелец,

 Команду

перехода

к

подчиненной

информации

нужно
переименовать
в
более
понятную.

Вернемся
в
конфигуратор
и
исправим
это.

В
режиме
Конфигуратор

Переименуем

заголовок

формы,

чтобы

было
понятно,

что

мы
создаем
в
данный
момент
один
элемент
номенклатуры.

Для

этого
в
окне

редактирования

справочника
ВариантыНоменклатуры
на

закладке

Основные

задайте
Представление

объекта

в
единственном
числе
как
Вариант
номенклатуры.
Это

свойство
будет
использоваться
в
интерфейсе

как
заголовок
формы
элемента
справочника.

Нужно
убрать
поля
Код
и

Владелец
из

этой
формы.
Для
этого
в
окне
редактирования
справочника
ВариантыНоменклатуры
перейдите
на
закладку
Формы,
нажмите
кнопку
открытия
и
создайте
основную
форму
элемента.

В
окне
структуры
элементов
формы
выделите
поочередно
эти

элементы
и
удалите
их

из

формы.

В
результате

в
форме
элемента
будет
отображен
только
один
реквизит
справочника

Наименование.

Его

представление

мы

тоже

немного
поправим.

На

закладке

Данные

в

окне

редактирования

справочника
нажмите
кнопку
Стандартные

реквизиты,

в

списке

реквизитов

дважды
щелкните
на
реквизите
Наименование

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


Название.

Заголовок
формы
Вариант
номенклатуры
и
подчиненная
ему
информация

Значения
с
войств
номенклатуры
не
«вяжутся»
друг
с
другом.
Это

записи
одноименного
регистра,
к

которым
можно
перейти
из
формы
элемента.

Поэтому
в
окне
редактирования
объекта
конфигурации
Регистр
сведений
ЗначенияСвойствНоменклатуры
на
закладке

Основные
задайте
Представление
списка
как
Состав
варианта
номенклатуры.

Это

свойство
будет
использоваться

в
интерфейсе

1С:Предприятия
как
заголовок
формы
списка
регистра.

В
режиме
1С:Предприятие

В
разделе
Учет
материалов

откройте
справочник
Номенклатура
и
его
элемент
Кабель
электрический.

В

форме
элемента

выполните
команду
Варианты
номенклатуры

для
перехода
к

списку
наборов
свойств
данного
элемента.
Пока
этот
список
пуст.
Нажмите
кнопку
Создать.
Теперь
в
открывшейся
форме
варианта
номенклатуры
нас
всѐ
устраивает.

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

В
режиме
1С:Предприятие

Создадим
вариант
номенклатуры
Белые
кабели.

Выполните
команду

Состав

варианта

номенклатуры

для
перехода

к

составу

редактируемого

варианта

номенклатуры.
Если
вариант

номенклатуры
еще

не

записан,

то

появится

вопрос

о
записи
данных,
на
который
мы

ответим
утвердительно.

После
этого
откроется
форма
списка
регистра
Значения

свойств
номенклатуры,
которая
генерируется
по

умолчанию.

В
этой
форме
нас
также
не
всѐ
устраивает:


Заголовок
колонки
ВидСвойства
лучше
переименовать,


Лишняя
колонка
НаборСвойств.

Вернемся
в
конфигуратор
и
устраним
эти
недостатки.

В
режиме
Конфигуратор

Название

колонки

Вид

свойства

лучше

переименовать

в

Свойство.

Для
этого
в
окне
редактирования
регистра
сведений
ЗначенияСвойствНоменклатуры
на
закладке

Данные
откройте
свойства

измерения

ВидСвойства

и
задайте

его

Синоним

как

Свойство.

Поскольку
регистр
имеет
ведущее

измерение

НаборСвойств

типа

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

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

Поэтому
создадим
обработчик
события
ПриСозданииНаСервере
формы
списка
регистра
и

в
нем
сделаем
колонку
НаборСвойств
невидимой
в
случае

открытия

формы

с
отбором

по

этому
полю,

т.е.

если

форма
списка
регистра
открыта
из

формы
элемента
справочника
Варианты
номенклатуры.

Откройте
окно
редактирования

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

события
формы
ПриСозданииНаСервере
со

следующим
текстом:

&НаСервере

Процедура
ПриСозданииНаСервере(Отказ,
СтандартнаяОбработка)
Если
Параметры.Отбор.Свойство(«НаборСвойств»)
Тогда

Элементы.НаборСвойств.Видимость
=
Ложь;

КонецЕсли;
КонецПроцедуры

В
режиме
1С:Предприятие

В

результате
форма
списка
регистра
Состав

варианта
номенклатуры

примет
вид:

Теперь,

если

нажать

Создать,

чтобы
ввести

новую
запись,

откроется
форма
записи
регистра
ЗначенияСвойствНоменклатуры.

Эта
форма
сгенерирована
автоматически
и
не
лишена
недостатков:


Заголовок
формы
должен
быть
задан
в
единственном
числе,


Лишняя
колонка
Набор
свойств.

В
режиме
конфигуратор

Во-первых,
нужно
переименовать
заголовок
формы,
чтобы
было
понятно,
что

мы

создаем
в
данный
момент
одно
свойство
и

его
значение
в
составе
варианта
номенклатуры.

Для

этого

в

окне

редактирования

регистра

сведений

ЗначенияСвойствНоменклатуры

на

закладке

Основные

задайте

Представление
записи
как
Свойство
и
значение.

Это

свойство
будет
использоваться
в
интерфейсе
как
заголовок
формы
записи
регистра.

Во-вторых,
нужно
убрать
поле
НаборСвойств

из

этой
формы.
Для
этого
в
окне
редактирования
регистра
сведений
ЗначенияСвойствНоменклатуры
перейдите
на
закладку
Формы
и
создайте
основную
форму
записи.

В

окне

структуры
элементов

формы

выделите

поле

НаборСвойств

и
удалите
его.

В
режиме
1С:Предприятие

Форма
записи
регистра
ЗначенияСвойствНоменклатуры
примет
вид:

Создание
характеристик
номенклатуры

В
режиме
1С:Предприятие

Теперь

создадим

различные

варианты

номенклатуры

в

режиме

1С:Предприятие.

В
разделе
Учет
материалов

откройте
справочник
Номенклатура
и
его
элемент
Кабель
электрический.

В
форме
элемента
номенклатуры
выполните
команду
Варианты
номенклатуры

для

перехода

к

списку
наборов
свойств

данного
элемента

номенклатуры.

В
форме

списка

вариантов

номенклатуры
откройте
набор
свойств
Белые
кабели,

который
мы

создали
ранее.

В
форме

варианта

номенклатуры

нажмите

Состав

варианта
номенклатуры.
Этот

список

пока

пуст.

Нажмите
кнопку

Создать.

В
открывшейся
форме
создайте
свойство
Цвет
со

значением
Белый.

Обратите
внимание,

что

в

форме

элемента

плана

видов
характеристик
и
в
форме
элемента
справочника
дополнительных
характеристик
номенклатуры
также
есть
лишнее
поле
Код.
Можете
самостоятельно

исправить
эти
недостатки
аналогично

предыдущим
для
справочника
ВариантыНоменклатуры.

В
окне
выбора
плана
видов
характеристик
появится
созданная
нами
характеристика.

Нажмите
кнопку
Выбрать.
В
результате
мы

вернемся
в
форму
записи
состава
варианта
номенклатуры
с

заголовком
Свойство

и

значение.

Нажмите
кнопку
выбора

в
поле
Значение.

Ресурс
Значение

регистра
ЗначенияСвойствНоменклатуры
имеет
тип

Характеристика.СвойстваНоменклатуры.
Это

составной
тип

данных,
который
описан
в
свойстве
Тип

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

задали
тип

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

Введите

тип

значения

Белый,

в

поле

Владелец

оставим
имеющееся
значение

Цвет.

Нажмите
Записать
и
закрыть.
Нажмите
кнопку
Выбрать.

Нажмите
Записать

и

закрыть.
Мы

вернулись
в
форму
списка
состава
варианта
номенклатуры.

Создадим
еще

одно

свойство

Сечение,

мм2

в

составе
варианта
номенклатуры

Белые

кабели.

Для

этого

повторим

только

что

выполненные
действия.
Нажмите
кнопку
Создать.

В
открывшейся
форме
нажмите
кнопку
выбора
в
поле
Свойство.

Далее
кнопку
Создать.

Введите
наименование

Сечение,

мм2
и

выберите
тип

Число,
длина

15,
точность
3.

Нажмите
Записать

и

закрыть.

Нажмите

Выбрать.
Введите

в

поле

Значение
число
2,5.

Нажмите
Записать
и
закрыть.

Теперь

аналогично
создадим
набор
свойств
для

элемента

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

Шланг
резиновый.
Этот

набор
будет
называться
Польша
и
состоять
из

свойств:


Цвет

Черный;


Производитель

Fagumit.

При

создании
свойства
Цвет
выберем
его
из

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

него.

При

создании

свойства

Производитель

с
типом

значения
Дополнительные

свойства

номенклатуры

сначала
добавим

это
свойство
в
план
видов
характеристик
(тип
значения

Дополнительные
свойства

номенклатуры),
а
затем
выберем
из

него.

Значение

этой
характеристики

(Fagumit),

сначала

добавим

в

справочник

дополнительных
свойств
номенклатуры
и
затем
выберем
из

него.

Теперь
посмотрим
на
созданное
нами
с
точки
зрения
разработчика.

Доработка
учетных
механизмов

Мы

добавили
возможность

указывать

произвольные
характеристики

для

номенклатуры
и

создали

несколько

таких
характеристик

вариантов

номенклатуры.
Теперь

хотелось

бы

иметь
возможность

еще

и

учитывать
номенклатуру
в

разрезе

этих
характеристик,
а
именно:


Приходовать
товар,
указывая
характеристики;


Расходовать
товар,
указывая
характеристики;

 Получать
отчеты
не
просто
по

номенклатуре,
а
по

номенклатуре
с
определенными
характеристиками.

Для
этого
требуется
доработать
регистры
и
создать
новый
отчет.

Регистр
Ос
татки
м
атериалов

В
режиме
Конфигуратор

Изменим
структуру
регистра
накопления

ОстаткиМатериалов.
Откройте

окно

редактирования

регистра
накопления

и

на

закладке
Данные

добавим

новое

измерение

НаборСвойств

с

типом

Справочник.Ссылка.ВариантыНоменклатуры.

Документ
П
риходная
накладная

Теперь
нам
нужно
доработать
документ
ПриходнаяНакладная,

чтобы
при

приходовании

материалов

можно
было

указать

набор

свойств

и
чтобы
этот
набор
записывался
в
регистры
при
проведении
документа.

Для

этого
откройте

окно

редактирования

документа
ПриходнаяНакладная

и
на

вкладке

Данные

добавим
в

табличную
часть
документа
новый
реквизит
НаборСвойств
с
типом
СправочникСсылка.ВариантыНоменклатуры.

У
этого
реквизита

необходимо
заполнить
свойство
Связи

параметров
выбора,

чтобы
после
выбора
номенклатуры
в
этом
свойстве
выбирать
только
среди

тех

наборов

свойств,

которые

относятся

к

данной
номенклатуре.
Найдите
это

свойство
и
нажмите
кнопку
выбора.

Перенесите
из

списка
реквизит
Материалы.Материал.

Тем
самым

мы
задали,
что

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

После
этого

расположим

этот
реквизит

в

табличной

части

формы
документа.
Для
этого
перейдите
на
вкладку
Формы
и

двойным
щелчком
на
строке
ФормаДокумента
откройте
форму.

В

правом
верхнем

окне

на

закладке

Реквизиты

раскройте

реквизит
формы
Объект.

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

расположите
его
в
структуре
элементов

формы
после
поля
Материал.

В
заключение

в

окне

редактирования

документа
ПриходнаяНакладная

на
закладке

Прочее

откроем
модуль
объекта.
Откройте
процедуру

обработчика

события
ОбработкаПроведения

и

добавьте

к

формируемым
движениям
присвоение

значения

измерению

НаборСвойств
регистра
ОстаткиМатериалов.

//
регистр
ОстаткиМатериалов
Приход
Движения.ОстаткиМатериалов.Записывать
=
Истина;
Движения.СтоимостьМатериалов.Записывать
=
Истина;
Для
Каждого
ТекСтрокаМатериалы

Из
Материалы
Цикл

Движение
=
Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения
=
ВидДвиженияНакопления.Приход;
Движение.Период
=
Дата;

Движение.Материал
=
ТекСтрокаМатериалы.Материал;
Движение.НаборСвойств
=
ТекСтрокаМатериалы.НаборСвойств;
Движение.Склад
=
Склад;

Движение.Количество
=
ТекСтрокаМатериалы.Количество;

Документ
Ока
зание
услуги

Теперь
аналогично
доработаем
документ
ОказаниеУслуги.

Для

того

чтобы

при

расходовании
материалов

пользователь

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

У
этого
реквизита
заполним
свойство
Связи
параметров
выбора.
Перенесем
из

списка
реквизитов
в
список
параметров
ПереченьНоменклатуры.Номенклатура.

Тем

самым

мы

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

выбранному
в
колонке

Номенклатура.

Расположим
этот
реквизит

в

табличной

части

формы
документа

после

поля
Номенклатура.

В

окне
редактирования
документа
на
закладке
Прочее

откройте
модуль
объекта.
Откройте
процедуру
обработчика
события
ОбработкаПроведения
и

добавьте

к

формируемым

движениям
присвоение

значения

измерению

НаборСвойств

регистра

ОстаткиМатериалов:

//
регистр
ОстаткиМатериалов
Расход

Движение
=
Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения
=
ВидДвиженияНакопления.Расход;
Движение.Период
=
Дата;

Движение.Материал
=
ВыборкаДетальныеЗаписи.Номенклатура;
Движение.НаборСвойств
=
ВыборкаДетальныеЗаписи.НаборСвойств;
Движение.Склад
=
Склад;

Поскольку
в

предыдущей
работе

мы

оптимизировали

процедуру
проведения

документа

и

получали

все

данные

документа

с
помощью
запроса,
то

в
текст
запроса
нужно
также
добавить
строки
для
получения

нового
рек
визита
документа.

Запрос.Текст
=

«ВЫБРАТЬ

|

ОказаниеУслугиПереченьНоменклатуры.Номенклатура,

|

ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры

КАК
ВидНоменклатуры,

|

ОказаниеУслугиПереченьНоменклатуры.НаборСвойств,

|

СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество)
КАК
КоличествоВДокументе,

|

СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма)
КАК

СуммаВДокументе

|ПОМЕСТИТЬ
НоменклатураДокумента

|ИЗ

|

Документ.ОказаниеУслугиереченьНоменклатуры
КАК

ОказаниеУслугиПереченьНоменклатуры

|ГДЕ

|

ОказаниеУслугиПереченьНоменклатуры.Ссылка
=
&Ссылка

|

|СГРУППИРОВАТЬ
ПО

|

ОказаниеУслугиПереченьНоменклатуры.Номенклатура,

|

ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры,

|

ОказаниеУслугиПереченьНоменклатуры.НаборСвойств«;

Запрос.УстановитьПараметр(«Ссылка«,
Ссылка);

Результат
=
Запрос.Выполнить();
Запрос2
=
Новый
Запрос;
Запрос2.МенеджерВременныхТаблиц
=
МенеджерВТ;
Запрос2.Текст
=
«ВЫБРАТЬ

Стоимость,
Количество

|

НоменклатураДокумента.Номенклатура,

|

НоменклатураДокумента.ВидНоменклатуры,

|

НоменклатураДокумента.НаборСвойств,

|

НоменклатураДокумента.КоличествоВДокументе,

|

НоменклатураДокумента.СуммаВДокументе,

|

ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток,
0)
КАК

|

ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток,
0)
КАК

|ИЗ

|

НоменклатураДокумента
КАК
НоменклатураДокумента

Приход/расход
номенклатуры
с
учетом
характеристик

В
режиме
1С:Предприятие

Запустим

режим

отладки

и

укажем

наборы

свойств
при приходовании
материалов.

Откройте
документ
Приходная

накладная

2

и
укажите,

что

был
закуплен
белый
электрический
кабель

в
количестве
2
шт.
и

польский
резиновый
шланг
5
шт

(см
рисунок).

Затем
скопируйте
первую
строку
документа
и
укажите,
что

был
закуплен
еще
и

черный
электрический
кабель
3
шт.

процессе
ввода
придется
создать
еще
один
набор
свойств
для
электрического
кабеля

Черные
кабели,
у
которого
Цвет

Черный
и
Сечение

2,5).

Проведите

документ

и

перейдите

в

регистр

Остатки
материалов

по
ссылке
слева.

Теперь

откройте

Оказание

услуги

1

и

укажите,

что

был

израсходован
польский
резиновый
шланг.

Проведите
документ
и
перейдите
в
Остатки
материалов.

Отчет,
использующий
характеристики

Для
полного
завершения
картины
мы

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

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

Набором
данных
для
системы
компоновки
данных
будет
простой
запрос
к
регистру
ОстаткиМатериалов,
к
нему
мы

опишем
как
выглядит
механизм
характеристик.
На

основе
этих
описаний
система
компоновки
сама
сформирует
достаточный
интерфейс.

В
режиме
Конфигуратор

Добавьте
новый
отчет
ОстаткиМатериаловПоСвойствам
и
запустите
конструктор
схемы
компоновки
данных.
Добавьте
новый
Набор
данных


запрос
и
вызовите
конструктор
запроса.

Запрос
для
набора
данных

Источником
данных
для

запроса

будет

виртуальная

таблица

регистра
накопления

ОстаткиМатериалов.ОстаткиИОбороты.
Из
нее
выберем
поля:

1.
Материал,

2.
НаборСвойств,

3.
КоличествоНачальныйОстаток,

4.
КоличествоПриход,

5.
КоличествоРасход,

6.
КоличествоКонечныйОстаток.

После

этого

на

вкладке

Объединения/Псевдонимы

задайте
псевдонимы
числовых
полей,
убрав
из
них

слово
Количество:

Характеристики

Теперь

приступим
к

описанию
характеристик.

Для
этого
перейдем
на
закладку
Характеристики
и
нажмем
кнопку
Добавить.

Первое
поле

Тип.
Выбираем

СправочникСсылка.ВариантыНоменклатуры.

Следующее

описание
того,
откуда
система
компоновки
будет
получать
список

характеристик.

Для

этого

нужно

указать

источник
списка
характеристик
и
описать
назначение
конкретных
полей
этого
источника.

В

качестве

источника
укажем

Таблица,

в

поле

Виды
характеристик
выберем
ПланВидовХарактеристик.СвойстваНоменклатуры.

Далее
следует
описание
назначения
полей
источника
списка
характеристик.
Это
стандартные
реквизиты
плана

видов
характеристик
СвойстваНоменклатуры.

В

Поле
ключа
выберем
Ссылка,

в
Поле
имени

Наименование,

в

Поле
типа
значения

ТипЗначения.

Опишем
источник

значений

характеристик.

В

нашем
случае

это
регистр
сведений

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

поэтому
в

поле
источник
значений


Таблица,
в

поле

Значение

характеристик

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

В

Поле
объекта

НаборСвойств,
Поле
вида

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

ресурс
регистра
Значение.

Анализ
текста
з
апроса

ВЫБРАТЬ

ОстаткиМатериаловОстаткиИОбороты.Материал,
ОстаткиМатериаловОстаткиИОбороты.НаборСвойств,
ОстаткиМатериаловОстаткиИОбороты.КоличествоНачальныйОстаток

КАК

НачальныйОстаток,

ОстаткиМатериаловОстаткиИОбороты.КоличествоПриход
КАК
Приход,
ОстаткиМатериаловОстаткиИОбороты.КоличествоРасход
КАК
Расход,
ОстаткиМатериаловОстаткиИОбороты.КоличествоКонечныйОстаток

КАК

КонечныйОстаток

ИЗ

РегистрНакопления.ОстаткиМатериалов.ОстаткиИОбороты

КАК
ОстаткиМатериаловОстаткиИОбороты

{ХАРАКТЕРИСТИКИ
ТИП(Справочник.ВариантыНоменклатуры)

ВИДЫХАРАКТЕРИСТИК

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

ПОЛЕКЛЮЧА

Ссылка
ПОЛЕИМЕНИ
Наименование
ПОЛЕТИПАЗНАЧЕНИЯ
ТипЗначения

ЗНАЧЕНИЯХАРАКТЕРИСТИК
РегистрСведений.ЗначенияСвойствНоменклатуры

ПОЛЕОБЪЕКТА
НаборСвойств
ПОЛЕВИДА

ВидСвойства
ПОЛЕЗНАЧЕНИЯ
Значение
}

Секция
ХАРАКТЕРИСТИКИ

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

которые

будут
использованы

в

данном
отчете.

Текст
этой
секции

заключен

в

фигурные

скобки.

Это

означает,

что

он

не
является

частью

запроса,

а

представляет

собой

конструкцию
для
системы
компоновки.

Ресурсы

Приступим
к
редактированию

схемы
компоновки
данных.

На

закладке
Ресурсы
выберем
все
доступные
ресурсы.

Настройки

Перейдем
на
закладку
Настройки.
Создадим
структуру
отчета

добавим
группировку
Детальные

записи.

Затем

на

закладке
Выбранные

поля
выберем

поля:
Материал,

НаборСвойств,

НачальныйОстаток,
Приход,
Расход,
КонечныйОстаток.

Затем
перейдем
на
закладку

Другие

настройки

и

зададим
заголовок
отчета

Остатки
материалов

по
свойствам.

Чтобы
иметь
возможность
протестировать
наш
отчет,
включим
настройку

Отбор
в
состав
быстрых
пользовательских
настроек.

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

На

вкладке

Подсистемы

отметьте
УчетМатериалов

и
Бухгалтерия.
На

этом
создание
отчета
завершено,
перейдите
в
режим
отладки.

В
режиме
1С:Предприятие

В

разделе
Учет
материалов

откройте
отчет
Остатки
материалов

по
свойствам.

Сначала
посмотрим,
какие
у
нас
есть
материалы
с
сечением
2,5
мм2.

Для

этого
в
поле

настройки

Отбор

нажмите
кнопку
выбора

,
раскройте

поле

Набор
с
войств.

Выберите

поле

Сечение,

мм2

и
задайте
для
него
условие
равенства
2,5.
Нажмите
ОК.

В
окне
отчета
нажмите
Сформировать
и
получим
результат.

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

отбор
кнопкой
удалить

над
списком
условий
отбора.

Затем
выберем
из

списка
полей
Цвет,
в
поле
Значение

нажмите
кнопку
выбора
и
выберем
Черный.
Нажмите
ОК
и
Сформировать.

В

заключение

посмотрим,
сколько

у
нас

резиновых

шлангов

черного
цвета.

Создайте
новый
отбор
по

полю
Материал,
значение

Шланг
резиновый
и
тут

же

Цвет
значение
Черный.
Сформируйте
отчет.

Следует
заметить,
что

пример,
рассмотренный
нами
в
этой
работе,

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

Контрольные
вопросы


Для

чего

предназначен

объект

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

План

видов
характеристик.


В

чем

принципиальное

отличие

Плана

видов

характеристик

от

Справочника.


Что

такое
тип

значения
характеристик.


Как
создать
план
видов
характеристик.


Как,

используя

план

видов

характеристик,

организовать

учет
по
переменному
количеству
характеристик.


Что

такое
связь
по

параметрам
выбора.


Как
задать
синоним
стандартного
реквизита.


Как
изменить
заголовок
формы.


Как
скрывать
элементы
формы
с
подчиненной
информацией
при
ее
создании.


Как
использовать
характеристики
при
выполнении
отчета.

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

Читайте также:

  • Как изменить плагин java
  • Как изменить плагин amxx
  • Как изменить плавность на телефоне
  • Как изменить плавность мыши
  • Как изменить пкм на другую кнопку

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии