Передача параметров в запрос
страницаПередача параметров в запрос
Допустим, вы хотите выбирать данные не из всех приходных накладных, а только из накладной № 1. Раньше, для упрощения, вы задавали отбор по номеру прямо в тексте запроса (листинг 11.45).
Листинг 11.45. Отбор записей из табличной части документа «ПриходнаяНакладная» по параметризуемому условию
ВЫБРАТЬ
ПриходнаяНакладнаяМатериалы.Материал,
ПриходнаяНакладнаяМатериалы.Ссылка.Дата,
ПриходнаяНакладнаяМатериалы.Ссылка.Номер
ИЗ
Документ.ПриходнаяНакладная.Материалы КАК ПриходнаяНакладнаяМатериалы
ГДЕ
ПриходнаяНакладнаяМатериалы.Ссылка.Номер = "000000001"
Однако далеко не всегда значение отбора известно заранее, поэтому в общем случае такие значения передаются в запрос через параметры. Вы уже использовали этот способ ранее (см. листинг 11.26), когда работали в консоли запросов в прикладном решении.
Теперь познакомьтесь с тем, как это действие выглядит во встроенном языке (листинг 11.46).
Листинг 11.4****6. Отбор записей из табличной части документа «ПриходнаяНакладная» по параметризуемому условию
ВЫБРАТЬ
ПриходнаяНакладнаяМатериалы.Материал,
ПриходнаяНакладнаяМатериалы.Ссылка.Дата,
ПриходнаяНакладнаяМатериалы.Ссылка.Номер
ИЗ
Документ.ПриходнаяНакладная.Материалы КАК ПриходнаяНакладнаяМатериалы
ГДЕ
ПриходнаяНакладнаяМатериалы.Ссылка.Номер = &НомерНакладной
В этом запросе вы использовали параметр НомерНакладной. Если текст запроса содержит параметры, то перед выполнением запроса значения параметров должны быть переданы в запрос.
Это делается с помощью метода УстановитьПараметр() объекта Запрос (листинг 11.47).
Листинг 11.47. Установка параметров запроса во встроенном языке
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПриходнаяНакладнаяМатериалы.Материал,
| ПриходнаяНакладнаяМатериалы.Ссылка.Дата,
| ПриходнаяНакладнаяМатериалы.Ссылка.Номер
|ИЗ
| Документ.ПриходнаяНакладная.Материалы КАК ПриходнаяНакладнаяМатериалы
|ГДЕ
| ПриходнаяНакладнаяМатериалы.Ссылка.Номер = &НомерНакладной";
Запрос.УстановитьПараметр("НомерНакладной", "000000001");
Первым параметром в метод УстановитьПараметр() передается строка с именем параметра запроса ("НомерНакладной"), а вторым параметром передается значение этого параметра.