![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Линейный обход результата
Первый, и самый простой способ обхода - линейный. При линейном обходе выборка будет выдавать записи в той последовательности, в которой они располагаются в результате запроса. В нашем примере это будут записи с номерами 1, 2, 3, 4, 5 и так далее до записи с номером 20.
Для получения линейной выборки из результата необходимо вызвать метод Выбрать объекта РезультатЗапроса без параметров, либо с параметром ОбходРезультатаЗапроса.Прямой.
Пример:
СпособВыборки = ОбходРезультатаЗапроса.Прямой;
Выборка1 = РезультатЗапроса.Выбрать(СпособВыборки);
// что равнозначно записи
Выборка1 = РезультатЗапроса.Выбрать();
Иерархический обход результата
Следующий способ обхода результата - иерархический. При данном обходе обходятся только записи, находящиеся на одном уровне. Для получения иерархической выборки из результата необходимо вызвать метод Выбрать объекта РезультатЗапроса с параметром ОбходРезультатаЗапроса.ПоГруппировкамСИерархией.
СпособВьборки = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией;
Выборка2 = РезультатЗапроса.Выбрать(СпособВыборки);
Обход результата по группам
Третий, и последний способ обхода результата - по группам. Он сходен с иерархическим обходом, но с одним различием: записи с иерархическими итогами при обходе в нем рассматриваются как детальные записи, а не как узловые. Для получения выборки по группам из результата запроса необходимо вызвать метод Выбрать объекта РезультатЗапроса с параметром ОбходРезультатаЗапроса.ПоГруппировкам.
Пример:
СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкам;
Вы6орка2 = РезультатЗапроса.Выбрать(СпособВыборки);
Пример:
Процедура ВыдатьДочерниеЗаписи(Выборка) Далее;
Процедура ВыполнитьЗапрос()
Запрос = Новый Запрос;
Текст = "Выбрать Товар, Количество
| Из Документ.РасхНакя.Состав
| Упорядочить по Товар
| Итоги Сумма(Количество) По Товар, Товар Иерархия";
РезультатЗапроса = Запрос.Выполнить();
// Получим выборку из результата запроса.
СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкам;
Выборка = РезультатЗапроса.Выбрать(СпособВыборки);
// Пока в выборке есть записи...
Пока Выборка.Следующий() Цикл
//... выведем в окно сообщений доля из результата
Товар = Выборка.Наименование;
Количество = Выборка.Количество;
Сообщить("Товар: " + Товар + " Итого по товару: " + Количество);
ВыдатьДочерниеЗаписи(Выборка.Выбрать());
КонецЦикла;
КонецПроцедуры
Процедура ВыдатьДочерниеЗапися (Выборка)
// Пока в выборке есть записи...
Пока Выборка.Следующий() Цикл
//... выведем в окно сообщений поля из результата
Товар = Выборка.Наименование;
Количество = Выборка.Количество;
Сообщить("Товар: " + Товар + " Количество: " + Количество);
КонецЦикла;
КонецПроцедуры
Дата публикования: 2015-02-03; Прочитано: 3939 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!