Литералы и параметры в языке запросов

Добавил admin | Литералы и параметры в языке запросов | Понедельник 5 октября 2009 13:33

В выражениях языка запросов могут напрямую указываться зна-

чения типа «булево», «число», «строка» или «дата». Также могут

использоваться значения параметров запроса.

В следующей таблице приведены все возможные типы литералов

и примеры их значений:

Обратите внимание, что значения типа «дата» задаются с помощью ключевого слова ДАТАВРЕМЯ, после которого в скобках последовательно указываются год, месяц, день, час, минута и секунда.

В запрос также могут передаваться параметры. Эта возможность уже использовалась нами при рассмотрении предложения ГДЕ.

Значения параметров могут использоваться в выражениях языка запросов, для этого необходимо указать символ «&» и после него имя параметра.

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

Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ Документ.ПриходнаяНакладная


	ГДЕ Дата МЕЖДУ НачДата и КонДата");


Запрос.УстановитьПараметр("НачДата",ВыбНачалоПериода);


Запрос.УстановитьПараметр("КонДата",ВыбКонецПериода);


Результат = Запрос.Выполнить();


 

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

Группы справочника и список значений часто применяются с ключевым словом В. Если передается группа справочника (или родительский элемент для справочников из одних элементов), то можно применить конструкцию В ИЕРАРХИИ:

Например, покажем цены на товары из указанного списка:

//1-й пример: отбор по списку товаров


Запрос = Новый Запрос("


	|ВЫБРАТЬ * ИЗ Справочник.Номенклатура


	|ГДЕ Ссылка В &СписокТоваров");


Запрос.УстановитьПараметр("СписокТоваров",СписокВыбранныхТоваров);


//2-й пример: отбор по группе товаров


Запрос = Новый Запрос("


	| ВЫБРАТЬ * ИЗ Справочник.Номенклатура


	| ГДЕ Ссылка В ИЕРАРХИИ  ГруппаТоваров");


Запрос.УстановитьПараметр("ГруппаТоваров",ВыбГруппа);