Получение выборки из результата запроса
страницаПолучение выборки из результата запроса
После присвоения текста и установки параметров запрос запускается на выполнение с помощью метода Выполнить() объекта Запрос. Именно в этот момент и происходит чтение данных из базы данных. Прочитанные данные возвращаются в виде объекта РезультатЗапроса, содержащего выбранные данные из базы данных (листинг 11.48).
Листинг 11.48. Выполнение запроса
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПриходнаяНакладнаяМатериалы.Материал,
| ПриходнаяНакладнаяМатериалы.Ссылка.Дата,
| ПриходнаяНакладнаяМатериалы.Ссылка.Номер
|ИЗ
| Документ.ПриходнаяНакладная.Материалы КАК ПриходнаяНакладнаяМатериалы
|ГДЕ
| ПриходнаяНакладнаяМатериалы.Ссылка.Номер = &НомерНакладной";
Запрос.УстановитьПараметр("НомерНакладной", "000000001");
РезультатЗапроса = Запрос.Выполнить();
Таким образом, происходит третий этап выполнения запроса, показанный на схеме (рис. 11.64).
Результат выполнения запроса может не содержать строк. Проверку этого следует выполнять с помощью метода Пустой() объекта РезультатЗапроса (листинг 11.49).
Листинг 11.49. Проверка результата запроса на наличие записей
…
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой(****) Тогда
Сообщить("Записей по условию не найдено");
Возврат;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
…
Проверку на пустой результат запроса следует выполнять до получения выборки из результата запроса методом Выбрать(), поскольку на получение выборки будет затрачиваться дополнительное время.
Далее, чтобы обработать данные, содержащиеся в объекте РезультатЗапроса, из него получается выборка с помощью метода Выбрать(), который возвращает новый объект ВыборкаИзРезультатаЗапроса, то есть коллекцию данных, предназначенную для обхода ее элементов (листинг 11.50).
Листинг 11.50. Получение выборки из результата запроса
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПриходнаяНакладнаяМатериалы.Материал,
| ПриходнаяНакладнаяМатериалы.Ссылка.Дата,
| ПриходнаяНакладнаяМатериалы.Ссылка.Номер
|ИЗ
| Документ.ПриходнаяНакладная.Материалы КАК ПриходнаяНакладнаяМатериалы
|ГДЕ
| ПриходнаяНакладнаяМатериалы.Ссылка.Номер = &НомерНакладной";
Запрос.УстановитьПараметр("НомерНакладной", "000000001");
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Таким образом, происходит четвертый этап выполнения запроса, показанный на схеме (рис. 11.64).