584 документа
← К списку

Передача параметров в запрос

страница

Передача параметров в запрос

Допустим, вы хотите выбирать данные не из всех приходных накладных, а только из накладной № 1. Раньше, для упрощения, вы задавали отбор по номеру прямо в тексте запроса (листинг 11.45).

Листинг 11.45. Отбор записей из табличной части документа «ПриходнаяНакладная» по параметризуемому условию

ВЫБРАТЬ

ПриходнаяНакладнаяМатериалы.Материал,

ПриходнаяНакладнаяМатериалы.Ссылка.Дата,

ПриходнаяНакладнаяМатериалы.Ссылка.Номер

ИЗ

Документ.ПриходнаяНакладная.Материалы КАК ПриходнаяНакладнаяМатериалы

ГДЕ

ПриходнаяНакладнаяМатериалы.Ссылка.Номер = "000000001"

Однако далеко не всегда значение отбора известно заранее, поэтому в общем случае такие значения передаются в запрос через параметры. Вы уже использовали этот способ ранее (см. листинг 11.26), когда работали в консоли запросов в прикладном решении.

Теперь познакомьтесь с тем, как это действие выглядит во встроенном языке (листинг 11.46).

Листинг 11.4****6. Отбор записей из табличной части документа «ПриходнаяНакладная» по параметризуемому условию

ВЫБРАТЬ

ПриходнаяНакладнаяМатериалы.Материал,

ПриходнаяНакладнаяМатериалы.Ссылка.Дата,

ПриходнаяНакладнаяМатериалы.Ссылка.Номер

ИЗ

Документ.ПриходнаяНакладная.Материалы КАК ПриходнаяНакладнаяМатериалы

ГДЕ

ПриходнаяНакладнаяМатериалы.Ссылка.Номер = &НомерНакладной

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

Это делается с помощью метода УстановитьПараметр() объекта Запрос (листинг 11.47).

Листинг 11.47. Установка параметров запроса во встроенном языке

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ

|    ПриходнаяНакладнаяМатериалы.Материал,

|    ПриходнаяНакладнаяМатериалы.Ссылка.Дата,

|    ПриходнаяНакладнаяМатериалы.Ссылка.Номер

|ИЗ

|    Документ.ПриходнаяНакладная.Материалы КАК ПриходнаяНакладнаяМатериалы

|ГДЕ

|    ПриходнаяНакладнаяМатериалы.Ссылка.Номер = &НомерНакладной";

 

Запрос.УстановитьПараметр("НомерНакладной", "000000001");

Первым параметром в метод УстановитьПараметр() передается строка с именем параметра запроса ("НомерНакладной"), а вторым параметром передается значение этого параметра.