# Форма редактирования запроса

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

На форме располагается поле для редактирования самого запроса, признак необходимости автоматического распознавания настроек отчета, табличное поле для редактирования "жестких" параметров запроса.

## Редактирование запроса

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

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

## Язык построителя отчета

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

ВЫБРАТЬ - в этом предложении описываются поля, которые пользователь сможет выбирать для вывода.
ГДЕ - описываются поля, на которые пользователь сможет накладывать ограничения.
УПОРЯДОЧИТЬ ПО - описываются поля для обозначения порядка.
ИТОГИ ПО - описываются поля, по которым будут выводиться итоговые значения.

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

> {ИТОГИ ПО Номенклатура КАК Товар, Контрагент КАК Покупатель}

Если после поля поставить ".*", то это будет означать, что кроме самого поля построитель даст возможность использовать и все поля "через точку" от данного поля.
Пример:

> {ИТОГИ ПО Номенклатура.* КАК Товар, Контрагент КАК Покупатель}

В данном примере пользователь сможет выбирать в качестве измерения не только номенклатуру но также и все ее реквизиты, например "Номенклатура.ОсновнойПоставщик".

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

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

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

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

> ВЫБРАТЬ

> {ВЫБРАТЬ
> СтравочникНоменклатуры.Код КАК Код,
> СтравочникНоменклатуры.Наименование КАК Наименование,
> СтравочникНоменклатуры.СтранаПроисхождения,
> УчетНоменклатурыОстатки.КоличествоОстаток КАК Остаток}

> СтравочникНоменклатуры.Код КАК Код,
> СтравочникНоменклатуры.Наименование КАК Наименование,
> СтравочникНоменклатуры.СтранаПроисхождения,
> УчетНоменклатурыОстатки.КоличествоОстаток КАК Остаток
> ИЗ
> Справочник.Номенклатура КАК СтравочникНоменклатуры
> {ЛЕВОЕ СОЕДИНЕНИЕ
> РегистрНакопления.УчетНоменклатуры.Остатки КАК
> УчетНоменклатурыОстатки
> ПО
> УчетНоменклатурыОстатки.Номенклатура =
> СтравочникНоменклатуры.Ссылка}

> {ГДЕ
> СтравочникНоменклатуры.Ссылка.* КАК Номенклатура,
> УчетНоменклатурыОстатки.КоличествоОстаток КАК Остаток}

> ГДЕ СтравочникНоменклатуры.ЭтоГруппа = Ложь

> {УПОРЯДОЧИТЬ ПО
> Код,
> Наименование}

> {ИТОГИ ПО
> СтравочникНоменклатуры.Ссылка.* КАК Номенклатура}

> ИТОГИ СУММА(Остаток) ПО ОБЩИЕ

> АВТОУПОРЯДОЧИВАНИЕ

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

## Автоматическое заполнение параметров

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

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

- Поля из списка выборки и все их подчиненные поля добавятся в доступные поля порядка, отбора, выбранных полей.
- Поля из списка выборки добавятся в список выбранных полей.
- Поля и их подчиненные поля из предложения "ИТОГИ ПО" добавятся в поля, доступные для выбора в измерения.
- Поля из предложения "ИТОГИ ПО" добавятся в измерения по строкам.
- Параметры виртуальных таблиц добавятся в доступные отборы.

## Настройка параметров

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

## Настройка представлений

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

## Настройка представлений

На закладке "Вывод отчета" можно настроить, куда осуществляется вывод отчета, а также настроить расшифровку отчета по умолчанию.