База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как совместно использовать ВыполнитьПакет и ПоГруппировкам в 1С? › RE: Как совместно использовать ВыполнитьПакет и ПоГруппировкам в 1С?

Для совместного использования методов Запрос.ВыполнитьПакет()
и ОбходРезультатаЗапроса.ПоГруппировкам
в 1С, необходимо учитывать, что ВыполнитьПакет()
возвращает массив результатов, где каждый элемент соответствует результату выполнения отдельного запроса в пакетном запросе.
Вот пример, как это можно реализовать:
1. Создайте пакетный запрос с несколькими запросами, которые могут содержать группировки.
2. Выполните пакетный запрос с помощью метода ВыполнитьПакет()
.
3. Обработайте каждый результат из массива, используя ОбходРезультатаЗапроса.ПоГруппировкам
для обхода группировок.
Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 1C Процедура ОбработкаЗапроса() Запрос = Новый Запрос; Запрос.Текст = " ВЫБРАТЬ Номенклатура, СУММА(Количество) КАК Количество ПОМЕСТИТЬ ДокТЧ ИЗ Документ.Приходная.Товары СГРУППИРОВАТЬ ПО Номенклатура ; ВЫБРАТЬ Номенклатура, СУММА(Количество) КАК Количество ИЗ Документ.Расходная.Товары СГРУППИРОВАТЬ ПО Номенклатура "; МассивРезультатов = Запрос.ВыполнитьПакет(); Для Каждого Результат Из МассивРезультатов Цикл Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл // Обработка данных выборки Сообщить("Номенклатура: " + Выборка.Номенклатура + ", Количество: " + Выборка.Количество); КонецЦикла; // Пример использования обхода по группировкам Если Результат.ТипЗаписи = ТипЗаписи.РезультатЗапроса Тогда ВыборкаГруппировки = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура"); Пока ВыборкаГруппировки.Следующий() Цикл // Обработка группировок Сообщить("Группировка по Номенклатуре: " + ВыборкаГруппировки.Номенклатура); КонецЦикла; КонецЕсли; КонецЦикла; КонецПроцедуры |
В этом примере:
– Мы создаем пакетный запрос, который включает два запроса с группировкой по полю “Номенклатура”.
– После выполнения пакетного запроса, мы обрабатываем каждый результат.
– Для каждого результата мы используем ОбходРезультатаЗапроса.ПоГруппировкам
, чтобы пройтись по группировкам и обработать их.
Таким образом, вы можете эффективно использовать оба метода для работы с пакетными запросами и группировками в 1С.