База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как совместно использовать ВыполнитьПакет и ПоГруппировкам в 1С? › RE: Как совместно использовать ВыполнитьПакет и ПоГруппировкам в 1С?
Для совместного использования методов `Запрос.ВыполнитьПакет()` и `ОбходРезультатаЗапроса.ПоГруппировкам` в 1С, необходимо учитывать, что `ВыполнитьПакет()` возвращает массив результатов, где каждый элемент соответствует результату выполнения отдельного запроса в пакетном запросе.
Вот пример, как это можно реализовать:
1. Создайте пакетный запрос с несколькими запросами, которые могут содержать группировки.
2. Выполните пакетный запрос с помощью метода `ВыполнитьПакет()`.
3. Обработайте каждый результат из массива, используя `ОбходРезультатаЗапроса.ПоГруппировкам` для обхода группировок.
Пример кода:
1C
Процедура ОбработкаЗапроса()
Запрос = Новый Запрос;
Запрос.Текст = "
ВЫБРАТЬ Номенклатура, СУММА(Количество) КАК Количество
ПОМЕСТИТЬ ДокТЧ
ИЗ Документ.Приходная.Товары
СГРУППИРОВАТЬ ПО Номенклатура
;
ВЫБРАТЬ Номенклатура, СУММА(Количество) КАК Количество
ИЗ Документ.Расходная.Товары
СГРУППИРОВАТЬ ПО Номенклатура
";
МассивРезультатов = Запрос.ВыполнитьПакет();
Для Каждого Результат Из МассивРезультатов Цикл
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
// Обработка данных выборки
Сообщить("Номенклатура: " + Выборка.Номенклатура + ", Количество: " + Выборка.Количество);
КонецЦикла;
// Пример использования обхода по группировкам
Если Результат.ТипЗаписи = ТипЗаписи.РезультатЗапроса Тогда
ВыборкаГруппировки = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура");
Пока ВыборкаГруппировки.Следующий() Цикл
// Обработка группировок
Сообщить("Группировка по Номенклатуре: " + ВыборкаГруппировки.Номенклатура);
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
В этом примере:
— Мы создаем пакетный запрос, который включает два запроса с группировкой по полю «Номенклатура».
— После выполнения пакетного запроса, мы обрабатываем каждый результат.
— Для каждого результата мы используем `ОбходРезультатаЗапроса.ПоГруппировкам`, чтобы пройтись по группировкам и обработать их.
Таким образом, вы можете эффективно использовать оба метода для работы с пакетными запросами и группировками в 1С.