Общая схема выполнения запросов
страницаОбщая схема выполнения запросов
Запрос формируется вами и выполняется из встроенного языка. Для этого предназначены следующие программные объекты:
- Запрос,
- РезультатЗапроса,
- ВыборкаИзРезультатаЗапроса.
Не углубляясь в детали, рассмотрите самую распространенную и простейшую схему выполнения запроса.
- Сначала во встроенном языке создается объект Запрос (листинг 11.1).
Листинг 11.1. Создание запроса
Запрос = Новый Запрос;
- У объекта Запрос есть свойство Текст, в которое нужно поместить текст запроса, написанный на языке запросов. В тексте запроса описывается, какие данные из каких таблиц нужно получить и как эти данные представить (листинг 11.2).
Листинг 11.2. Заполнение текста запроса
Запрос.Текст =
"ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.Номенклатура";
- Далее запрос выполняется с помощью метода Выполнить() объекта Запрос. Именно в этот момент и происходит чтение данных из базы данных. Прочитанные данные возвращаются в виде объекта РезультатЗапроса, содержащего выбранные данные из базы данных (листинг 11.3).
Листинг 11.3. Выполнение запроса
РезультатЗапроса = Запрос.Выполнить();
- Чтобы обработать данные, содержащиеся в объекте РезультатЗапроса, из результата запроса получается выборка с помощью метода Выбрать(), который возвращает новый объект ВыборкаИзРезультатаЗапроса, то есть коллекцию данных, предназначенную для последовательного обхода ее элементов (листинг 11.4).
Листинг 11.4. Получение выборки из результата запроса
ВыборкаЗапроса = РезультатЗапроса.Выбрать();
- Далее выборка обходится с помощью цикла Пока Выборка.Следующий() Цикл, а в теле цикла производятся какие-то действия над данными, полученными с помощью запроса (листинг 11.5).
Листинг 11.5. Обход выборки
Пока ВыборкаЗапроса.Следующий() Цикл
Сообщить(ВыборкаЗапроса.Наименование);
КонецЦикла;
В результате, если соединить вместе тексты листингов 11.1–11.5, вы получите процедуру встроенного языка, в которой создается и выполняется запрос, в данном примере выводящий наименования всей номенклатуры из справочника Номенклатура в окно сообщений (листинг 11.6).
Листинг 11.6. Вывод наименований всей номенклатуры в окно сообщений
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.Номенклатура";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаЗапроса = РезультатЗапроса.Выбрать();
Пока ВыборкаЗапроса.Следующий() Цикл
Сообщить(ВыборкаЗапроса.Наименование);
КонецЦикла;
Чтобы не усложнять восприятие материала, вы пока не будете подробно останавливаться на выводе и обработке результатов запросов. Сначала вы начнете изучать сам язык запросов, то есть научитесь правильно составлять текст запросов.
Для выполнения запросов и просмотра результатов вы будете использовать специальную обработку Консоль запросов (КонсольЗапросов.epf). Данная обработка помогает отлаживать и просматривать результаты выполнения запросов в прикладном решении.