13.02.2019 Линейный (прямой) порядок обхода Линейный (прямой) порядок обхода Линейный обход результата запроса – самый простой способ обхода выборки. При линейном обходе выборка будет выдавать записи в той последовательности, в которой они располагаются в результате запроса. В нашем примере (см. рис. 2.33) это будут записи с номерами 1, 2, 3, 4, 5 и так далее до записи с номером 20. Для получения линейной выборки из результата запроса необходимо вызвать метод Выбрать() объекта РезультатЗапроса без параметров либо с параметром ОбходРезультатаЗапроса.Прямой (листинг 2.21). Листинг 2.21. Прямой порядок обхода выборки Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПриходнаяНакладнаяСостав.Товар КАК Товар, | ПриходнаяНакладнаяСостав.Количество КАК Количество |ИЗ | Документ.ПриходнаяНакладная.Состав КАК ПриходнаяНакладнаяСостав | |УПОРЯДОЧИТЬ ПО | Товар |ИТОГИ | СУММА(Количество) |ПО | Товар ИЕРАРХИЯ"; РезультатЗапроса = Запрос.Выполнить(); СпособВыборки = ОбходРезультатаЗапроса.Прямой; ВыборкаЗапроса = РезультатЗапроса.Выбрать(СпособВыборки); Сообщение = Новый СообщениеПользователю; Пока ВыборкаЗапроса.Следующий() Цикл Сообщение.Текст = "Товар: " + ВыборкаЗапроса.Товар.Наименование + " Итого: " + ВыборкаЗапроса.Количество + " Тип записи: " + ВыборкаЗапроса.ТипЗаписи() + " Уровень: " + ВыборкаЗапроса.Уровень() + " Группировка: " + ВыборкаЗапроса.Группировка(); Сообщение.Сообщить(); КонецЦикла; Пример этой процедуры находится в демонстрационной конфигурации «Язык запросов», прилагающейся к книге, в обработке Работа с запросами. В этом примере в окно сообщений формы обработки последовательно выдаются данные о поступлении товаров с иерархическими итогами по каждому товару. https://its.1c.ru/db/content/pubqlang/src/59.html?_=1549465893#_print 1/1