Справка 1С/Система компоновки данных/Расширение языка запросов для системы компоновки данных

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

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

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

Синтаксические элементы расширения языка запросов системы компоновки данных

ВЫБРАТЬ

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

Например:

{ВЫБРАТЬ Номенклатура, Склад}

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

Например, запись Номенклатура.* обозначает возможность использования дочерних полей поля "Номенклатура" (например, поля "Номенклатура.Код").
Элемент ВЫБРАТЬ может присутствовать только в первом запросе объединения.

ГДЕ

Описываются поля, на которые пользователь сможет накладывать отбор. В данном предложении используются поля таблиц. Использование псевдонимов полей списка выборки недопустимо. Каждая часть объединения может содержать собственный элемент ГДЕ.

Примеры:

{ГДЕ Номенклатура.*, Склад }

{ГДЕ Документ.Дата >= &ДатаНачала, Документ.Дата <= &ДатаКонца}

Если значения параметров не задано, то предложение ГДЕ в результирующий запрос не включается.

Механизм свойств (характеристик) и категорий

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

Также эту информацию можно указать с помощью дополнительных характеристик объекта метаданных [v8help://frntend/form_AdditCharateristicsEditorDlg].

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

Синтаксис:

ХАРАКТЕРИСТИКИ
         ТИП(<Имя типа>)
         ВИДЫХАРАКТЕРИСТИК <Имя таблицы> | (<Объединение запросов>)
         ПОЛЕКЛЮЧА <Поле>
         ПОЛЕИМЕНИ <Поле>
         [ПОЛЕТИПАЗНАЧЕНИЯ <Поле>]
         ЗНАЧЕНИЯХАРАКТЕРИСТИК <Имя таблицы> | (<Объединение запросов>)
         ПОЛЕОБЪЕКТА <Поле>
         ПОЛЕВИДА <Поле>
         [ПОЛЕЗНАЧЕНИЯ <Поле>]

После ТИП указывается <Имя типа> - имя типа, для которого определяются характеристики.

После ВИДЫХАРАКТЕРИСТИК указывается <Имя таблицы> | (<Объединение запросов>) - имя таблицы или текст запроса для получения видов характеристик.

После ПОЛЕКЛЮЧА указывается <Поле> - имя поля из таблицы или запроса ВИДЫХАРАКТЕРИСТИК, которое содержит ключ вида характеристики.

После ПОЛЕИМЕНИ  указывается <Поле> - имя поля из таблицы или запроса ВИДЫХАРАКТЕРИСТИК, которое содержит имя характеристики.

После ПОЛЕТИПАЗНАЧЕНИЯ  указывается <Поле> - имя поля из таблицы или запроса ВИДЫХАРАКТЕРИСТИК, которое содержит тип значения характеристики.

После ЗНАЧЕНИЯХАРАКТЕРИСТИК указывается <Имя таблицы> | (<Объединение запросов>) - имя таблицы или запрос, откуда получать значения характеристик.

После ПОЛЕОБЪЕКТА указывается <Поле> - имя поля из таблицы или запроса ЗНАЧЕНИЯХАРАКТЕРИСТИК, которое содержит объект, для которого указана характеристика.

После ПОЛЕВИДА указывается <Поле> - имя поля из таблицы или запроса ЗНАЧЕНИЯХАРАКТЕРИСТИК, которое содержит вид характеристики.

После ПОЛЕЗНАЧЕНИЯ указывается <Поле> - имя поля из таблицы или запроса ЗНАЧЕНИЯХАРАКТЕРИСТИК, которое содержит значение характеристики.

Пример описания характеристик:

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

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

Параметры

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

Например:

ВЫБРАТЬ
УчетНоменклатурыОбороты.Номенклатура КАК Номенклатура,
УчетНоменклатурыОбороты.Склад КАК Склад,
УчетНоменклатурыОбороты.КоличествоПриход КАК КоличествоПриход,
УчетНоменклатурыОбороты.КоличествоРасход КАК КоличествоРасход
ИЗ
РегистрНакопления.УчетНоменклатуры.Обороты({&ДатаНачала}, {&ДатаКонца}, ,{Номенклатура., Склад.}) КАК УчетНоменклатурыОбороты

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

Автоматическое заполнение доступных полей

При автоматическом заполнении доступных полей запроса выполняются следующие действия:

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