Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦОО_ИСБУ_Лек3.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
683.52 Кб
Скачать

Параметры в языке запросов

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

Обратите внимание, что в следующем запросе параметр МинЦена предваряется знаком «&».

ВЫБРАТЬ Наименование, ЗакупочнаяЦена

ИЗ Справочник.Номенклатура

ГДЕ ЗакупочнаяЦена >= &МинЦена

Общая схема выполнения запроса с параметрами выглядит следующим образом:

//создание объекта Запрос с текстом запроса

Запрос = Новый Запрос("Выбрать Наименование, Цена

|ИЗ Справочник.Номенклатура

|ГДЕ Цена >= &МинЦена");

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

Запрос.УстановитьПараметр("МинЦена",1000);

//выполнение запроса с установленными параметрами

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

  • Ключевое слово МЕЖДУ/BETWEEN

В языке запросов есть вспомогательное ключевое слово МЕЖДУ для задания интервалов. Например, если параметр МинЦена равен 1000, а МаксЦена - 1500, тогда следующий запрос выберет товары с ценой из указанного интервала:

ВЫБРАТЬ Наименование,

ЗакупочнаяЦена КАК Цена

ИЗ Справочник.Номенклатура

ГДЕ ЗакупочнаяЦена МЕЖДУ &МинЦена И &МаксЦена

Наименование

Цена

Ноутбук Rover Computers Explorer

1 326

Ноутбук Rover Computers Navigator KT7

1 118

Сист. блок IBM NetVista A22p

1 111

Сист. блок IBM NetVista M41

1 222

Ключевое слово МЕЖДУ введено для повышения наглядности при задании интервалов и всегда может быть заменено неравенствами. Следующий запрос полностью эквивалентен предыдущему:

ВЫБРАТЬ Наименование, ЗакупочнаяЦена

ИЗ Справочник.Номенклатура

ГДЕ ЗакупочнаяЦена >= МинЦена И ЗакупочнаяЦена <= МаксЦена

Проверка вхождения значения в список (в/in)

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

Следующие запросы демонстрируют варианты использования ключевого слова В:

//выбираем товары из заданного списка

ВЫБРАТЬ Наименование, ЗакупочнаяЦена

ИЗ Справочник.Номенклатура

ГДЕ Ссылка В (&СписокВыбранныхТоваров)

//выбираем товары, принадлежащие определенной группе

//независимо от уровня, на котором они находятся

ВЫБРАТЬ Наименование, ЗакупочнаяЦена

ИЗ Справочник.Номенклатура

ГДЕ Ссылка В ИЕРАРХИИ (&ВыбраннаяГруппа)

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

Во втором запросе параметр ВыбраннаяГруппа является группой иерархического справочника Номенклатура. В результат запроса

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

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

ВЫБРАТЬ Спр . Наименование, Спр.ЗакупочнаяЦена

ИЗ Справочник. Номенклатура КАК Спр

ГДЕ Спр.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ Номенклатура

ИЗ Документ.РасходнаяНакладная.Состав)

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

ВЫБРАТЬ РАЗЛИЧНЫЕ Номенклатура,

Номенклатура.ЗакупочнаяЦена ИЗ

Документ. РасходнаяНакладная.Состав

Это стало возможно, потому что разыменование полей заставляет систему 1C:Предприятие 8 производить неявное соединение таблиц. Рекомендуется всегда пользоваться разыменованием полей там, где это возможно, и не усложнять запросы лишними конструкциями.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]