Книга: Разработка сложных отчетов в «1С:Предприятии 8». Система компоновки данных
Назад: Описание видов характеристик
Дальше: Описание характеристик в метаданных

Описание значений характеристик

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

Для получения характеристик системе необходима следующая информация:

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

Рис. 3.19. Связь объектов конфигурации и описания характеристик в конструкторе запроса

В результате визуального описания характеристик в конструкторе запроса платформа добавит в запрос секцию описания характеристик, начинающуюся с ключевого слова ХАРАКТЕРИСТИКИ. В следующем запросе описываются характеристики для полей типа СправочникСсылка.Контрагенты (листинг 3.1).

Листинг 3.1. Текст запроса с использованием характеристик

ВЫБРАТЬ

ПродажиОбороты.Контрагент,

ПродажиОбороты.СтоимостьОборот

ИЗ

РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

{ХАРАКТЕРИСТИКИ

ТИП(Справочник.Контрагенты)

ВИДЫХАРАКТЕРИСТИК ПланВидовХарактеристик.ВидыХарактеристик

ПОЛЕКЛЮЧА Ссылка

ПОЛЕИМЕНИ Наименование

ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения

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

ПОЛЕОБЪЕКТА Объект

ПОЛЕВИДА ВидХарактеристики

ПОЛЕЗНАЧЕНИЯ ЗначениеХарактеристики }

В предложении ХАРАКТЕРИСТИКИ тип указывается в скобках после ключевого слова ТИП. Типы, входящие в составной тип, перечисляются через запятую.

Виды характеристик описываются при помощи ключевых слов ВИДЫХАРАКТЕРИСТИК, ПОЛЕКЛЮЧА, ПОЛЕИМЕНИ, ПОЛЕТИПАЗНАЧЕНИЯ. После ключевого слова ВИДЫХАРАКТЕРИСТИК идет имя таблицы, из которой будут получаться виды характеристик, либо в скобках текст запроса, при помощи которого получаются виды характеристик. После ключевых слов ПОЛЕКЛЮЧА, ПОЛЕИМЕНИ, ПОЛЕТИПАЗНАЧЕНИЯ указываются имена полей для получения ключа, имени и типа значения характеристики соответственно.

Значения характеристик описываются при помощи ключевых слов ЗНАЧЕНИЯХАРАКТЕРИСТИК, ПОЛЕОБЪЕКТА, ПОЛЕВИДА, ПОЛЕЗНАЧЕНИЯ. После ключевого слова ЗНАЧЕНИЯХАРАКТЕРИСТИК указывается имя таблицы, из которой будут получаться значения характеристики, или, в скобках, текст запроса, при помощи которого будут получаться значения характеристики. После ключевого слова ПОЛЕОБЪЕКТА указывается имя поля, в котором содержится объект. После слова ПОЛЕВИДА указывается поле ключа характеристики, а после слова ПОЛЕЗНАЧЕНИЯ – имя поля, из которого будут получаться значения характеристики.

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

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

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

Листинг 3.2. Получение списка характеристик с помощью запроса

ВЫБРАТЬ

ПродажиОбороты.Контрагент,

ПродажиОбороты.СтоимостьОборот

ИЗ

РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

{ХАРАКТЕРИСТИКИ

ТИП(Справочник.Контрагенты)

ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ

ВидыХарактеристик.Ссылка,

ВидыХарактеристик.Наименование,

ВидыХарактеристик.ТипЗначения

ИЗ

ПланВидовХарактеристик.ВидыХарактеристик КАК ВидыХарактеристик

ГДЕ

ВидыХарактеристик.ПометкаУдаления = ЛОЖЬ)

ПОЛЕКЛЮЧА Ссылка

ПОЛЕИМЕНИ Наименование

ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения

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

ПОЛЕОБЪЕКТА Объект

ПОЛЕВИДА ВидХарактеристики

ПОЛЕЗНАЧЕНИЯ ЗначениеХарактеристики }

Для описания запроса при описании списка характеристик в конструкторе запроса следует указать в качестве источника видов Запрос и, нажав кнопку выбора в поле Виды характеристик, создать запрос (рис. 3.20, 3.21).

Рис. 3.20. Создание полей запроса для получения видов характеристик

Рис. 3.21. Создание условий запроса для получения видов характеристик

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

В результате закладка Характеристики в конструкторе запроса примет вид (рис. 3.22).

Рис. 3.22. Описание характеристик в конструкторе запроса

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

Назад: Описание видов характеристик
Дальше: Описание характеристик в метаданных