Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Виды обходов результата запроса



Линейный обход результата

Первый, и самый простой способ обхода - линейный. При ли­нейном обходе выборка будет выдавать записи в той последова­тельности, в которой они располагаются в результате запроса. В нашем примере это будут записи с номерами 1, 2, 3, 4, 5 и так да­лее до записи с номером 20.

Для получения линейной выборки из результата необходимо вы­звать метод Выбрать объекта РезультатЗапроса без пара­метров, либо с параметром ОбходРезультатаЗапроса.Прямой.

Пример:

СпособВыборки = ОбходРезультатаЗапроса.Прямой;
Выборка1 = РезультатЗапроса.Выбрать(СпособВыборки);
// что равнозначно записи
Выборка1 = РезультатЗапроса.Выбрать();

Иерархический обход результата

Следующий способ обхода результата - иерархический. При дан­ном обходе обходятся только записи, находящиеся на одном уровне. Для получения иерархической выборки из результата не­обходимо вызвать метод Выбрать объекта РезультатЗапроса с параметром ОбходРезультатаЗапроса.ПоГруппировкамСИерархией.

СпособВьборки = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией;
Выборка2 = РезультатЗапроса.Выбрать(СпособВыборки);

Обход результата по группам

Третий, и последний способ обхода результата - по группам. Он сходен с иерархическим обходом, но с одним различием: записи с иерархическими итогами при обходе в нем рассматриваются как детальные записи, а не как узловые. Для получения выборки по группам из результата запроса необходимо вызвать метод Выбрать объекта РезультатЗапроса с параметром ОбходРезультатаЗапроса.ПоГруппировкам.

Пример:

СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкам;
Вы6орка2 = РезультатЗапроса.Выбрать(СпособВыборки);

Пример:

Процедура ВыдатьДочерниеЗаписи(Выборка) Далее;

Процедура ВыполнитьЗапрос()
Запрос = Новый Запрос;
Текст = "Выбрать Товар, Количество
| Из Документ.РасхНакя.Состав
| Упорядочить по Товар
| Итоги Сумма(Количество) По Товар, Товар Иерархия";
РезультатЗапроса = Запрос.Выполнить();
// Получим выборку из результата запроса.
СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкам;
Выборка = РезультатЗапроса.Выбрать(СпособВыборки);
// Пока в выборке есть записи...
Пока Выборка.Следующий() Цикл
//... выведем в окно сообщений доля из результата
Товар = Выборка.Наименование;
Количество = Выборка.Количество;
Сообщить("Товар: " + Товар + " Итого по товару: " + Количество);
ВыдатьДочерниеЗаписи(Выборка.Выбрать());
КонецЦикла;
КонецПроцедуры

Процедура ВыдатьДочерниеЗапися (Выборка)
// Пока в выборке есть записи...
Пока Выборка.Следующий() Цикл
//... выведем в окно сообщений поля из результата
Товар = Выборка.Наименование;
Количество = Выборка.Количество;
Сообщить("Товар: " + Товар + " Количество: " + Количество);
КонецЦикла;
КонецПроцедуры





Дата публикования: 2015-02-03; Прочитано: 3832 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...