Расширение языка запросов для системы компоновки данных
Расширение языка запросов для системы компоновки данных осуществляется при помощи специальных синтаксических инструкций, заключаемых в фигурные скобки и помещаемых непосредственно в текст запроса.
Синтаксические элементы расширения языка запросов системы компоновки данных
ВЫБРАТЬ
В этом предложении описываются поля, которые пользователь сможет выбирать для вывода. После данного ключевого слова через запятую перечисляются псевдонимы полей из основного списка выборки запроса, которые будут доступными для настройки.
Например:
{ВЫБРАТЬ Номенклатура, Склад}
После псевдонима поля может находиться комбинация символов ".*", что обозначает возможность использования дочерних полей от данного поля.
Например, запись Номенклатура.* обозначает возможность использования дочерних полей поля "Номенклатура" (например, поля "Номенклатура.Код").
Элемент ВЫБРАТЬ может присутствовать только в первом запросе объединения.
ГДЕ
Описываются поля, на которые пользователь сможет накладывать отбор. В данном предложении используются поля таблиц. Использование псевдонимов полей списка выборки недопустимо. Каждая часть объединения может содержать собственный элемент ГДЕ.
Примеры:
{ГДЕ Номенклатура.*, Склад }
{ГДЕ Документ.Дата >= &ДатаНачала, Документ.Дата <= &ДатаКонца}
Если значения параметров не задано, то предложение ГДЕ в результирующий запрос не включается.
Механизм свойств (характеристик) и категорий
Расширение языка запросов для системы компоновки данных позволяет указать системе компоновки данных, где искать виды и значения характеристик для того или иного объекта базы данных.
Также эту информацию можно указать с помощью дополнительных характеристик объекта метаданных.
Если информация о характеристиках указана и в запросе (с помощью конструкции ХАРАКТЕРИСТИКИ) и с помощью диалога метаданных, то приоритетом обладает конструкция ХАРАКТЕРИСТИКИ.
Синтаксис:
ХАРАКТЕРИСТИКИ
ТИП(<Имя типа>)
ВИДЫХАРАКТЕРИСТИК <Имя таблицы> | (<Объединение запросов>)
ПОЛЕКЛЮЧА <Поле>
ПОЛЕИМЕНИ <Поле>
[ПОЛЕТИПАЗНАЧЕНИЯ <Поле>]
ЗНАЧЕНИЯХАРАКТЕРИСТИК <Имя таблицы> | (<Объединение запросов>)
ПОЛЕОБЪЕКТА <Поле>
ПОЛЕВИДА <Поле>
[ПОЛЕЗНАЧЕНИЯ <Поле>]
После ТИП указывается <Имя типа> - имя типа, для которого определяются характеристики.
После ВИДЫХАРАКТЕРИСТИК указывается <Имя таблицы> | (<Объединение запросов>) - имя таблицы или текст запроса для получения видов характеристик.
После ПОЛЕКЛЮЧА указывается <Поле> - имя поля из таблицы или запроса ВИДЫХАРАКТЕРИСТИК, которое содержит ключ вида характеристики.
После ПОЛЕИМЕНИ указывается <Поле> - имя поля из таблицы или запроса ВИДЫХАРАКТЕРИСТИК, которое содержит имя характеристики.
После ПОЛЕТИПАЗНАЧЕНИЯ указывается <Поле> - имя поля из таблицы или запроса ВИДЫХАРАКТЕРИСТИК, которое содержит тип значения характеристики.
После ЗНАЧЕНИЯХАРАКТЕРИСТИК указывается <Имя таблицы> | (<Объединение запросов>) - имя таблицы или запрос, откуда получать значения характеристик.
После ПОЛЕОБЪЕКТА указывается <Поле> - имя поля из таблицы или запроса ЗНАЧЕНИЯХАРАКТЕРИСТИК, которое содержит объект, для которого указана характеристика.
После ПОЛЕВИДА указывается <Поле> - имя поля из таблицы или запроса ЗНАЧЕНИЯХАРАКТЕРИСТИК, которое содержит вид характеристики.
После ПОЛЕЗНАЧЕНИЯ указывается <Поле> - имя поля из таблицы или запроса ЗНАЧЕНИЯХАРАКТЕРИСТИК, которое содержит значение характеристики.
Пример описания характеристик:
{ХАРАКТЕРИСТИКИ ТИП(Справочник.Номенклатура)
СПИСОК (ВЫБРАТЬ
ВидыДопСвойств.Ссылка,
ВидыДопСвойств.Наименование,
ВидыДопСвойств.ТипЗначения
ИЗ
ПланВидовХарактеристик.ВидыДопСвойств КАК ВидыДопСвойств)
ИДЕНТИФИКАТОР Ссылка
ИМЯ Наименование
ТИПЗНАЧЕНИЯ ТипЗначения
ЗНАЧЕНИЯ РегистрСведений.ДопСвойства
ОБЪЕКТ Номенклатура
ХАРАКТЕРИСТИКА ВидСвойства
ЗНАЧЕНИЕ Свойство
}
В данном примере описываются характеристики для полей типа ссылка на справочник "Номенклатура".
Параметры
Кроме основных элементов, система компоновки данных принимает элементы, записанные в параметрах виртуальных таблиц. В таких случаях тип полей зависит от типа параметра, в котором располагаются элементы.
Например:
ВЫБРАТЬ
УчетНоменклатурыОбороты.Номенклатура КАК Номенклатура,
УчетНоменклатурыОбороты.Склад КАК Склад,
УчетНоменклатурыОбороты.КоличествоПриход КАК КоличествоПриход,
УчетНоменклатурыОбороты.КоличествоРасход КАК КоличествоРасход
ИЗ
РегистрНакопления.УчетНоменклатуры.Обороты({&ДатаНачала}, {&ДатаКонца}, ,{Номенклатура.*, Склад.*}) КАК УчетНоменклатурыОбороты
В этом приме поля "ДатаНачала", "ДатаКонца", "Номенклатура" и "Склад" станут доступными в отборе, т.е. пользователь сможет применять для них фильтры.
Автоматическое заполнение доступных полей
При автоматическом заполнении доступных полей запроса выполняются следующие действия:
- все поля списка выборки и их дочерние поля становятся доступными для выбора, упорядочивания, группировки, отбора и др.;
- параметры виртуальных таблиц становятся доступными для отбора.