Добрый день! Не могу понять, как правильно обойти результат запроса, чтобы получить необходимый результат.
Имеется результат выполнения запроса (таблица с колонками): Номенклатура, СерияНоменклатуры, Количество - количество номенклатуры в серии, Страна - страна, куда отправлена номенклатура конкретной серии. По одной конкретной номенклатуре и одной конкретной серии может быть несколько строк, т.к. одна серия номенклатуры может отгружаться сразу в несколько стран.
Требуется на выходе сформировать таблицу (отчет) с колонками: Номенклатура, КоличествоСерийНоменклатуры - количество серий по конкретной номенклатуре, ОбщееКоличествоТовараВСериях, Страна - страны, в которые отгружались конкретные серии номенклатуры.
Спасибо за помощь!
---
на вот, занимайся

```1c
    |///////////////////////
    |Выбрать
    | СерияНоменклатуры
    | ,КоличествоВСериии
    | ,Страна
    | ,Номенклатура
    |Из Нечто

    |ИТОГИ
    | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СерияНоменклатуры),
    | СУММА(КоличествоВСериии)
    |ПО
    | Номенклатура ";

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

Если дано:

Товар2|Серия2|3000|Россия
Товар2|Серия2|3000|Казахстан
Товар2|Серия3|2000|Россия
Товар2|Серия3|2000|Узбекистан

то как может в итоге быть:

Товар2|2|5000|Россия, Казахстан, Узбекистан

???

Должно же быть:

Товар2|2|10000|Россия, Казахстан, Узбекистан

нет?

По алгоритму:

1. получить ТЗ, и нее сделать копии по товару, сериям, количеству в серии и странам.
2. обойти ТЗ по каждому товару с подсчетом количества серий и суммированием количества в серии
3. конкатенировать страны
---
Серия2 - 3000 (всего), товар из этой серии поехал и в Казахстан, и продавался в России. Серия3 - 2000 (всего), товар из этой серии поехал и в Узбекистан, и продавался в России. Общее количество товара по двум сериям: 3000 + 2000 = 5000.
---
и какие еще нюансы есть?
---
Больше никаких
---
1. получить ТЗ, и нее сделать копии по товару, сериям, количеству в серии и странам.
Что значит "сделать копии"?
---
```1c
    КопияТЗ = ТЗ.Скпировать(Новый Структура("Колонка1, Колонка2, .......КолонкаN", Значение1, Значение2,......, ЗначениеN), "Колонка1, Колонка2, .....КолонкаN");
```
---
А еще можно это вот все засунуть с СКД и получить уже готовый вариант. Если что, СКД умеет выгружать в таблицу значений.
---
Прописываешь ИТОГИ в тексте запроса и обходишь по группировкам, в последней группировке складываешь страны в 1 строку, на выходе из цикла - выводишь секцию.
---
Сейчас буду пробовать оба варианта
---
занафига так сложно ? когда там всего лишь итоги по товару + 2 функции агрегирующие - количество и сумма..
Обойти 2 группировки и всё.
---
да я ж не настаиваю, если хватит обхода по двум группировкам, то можно и так.
---
Серии - количество различных
суммы - по сумме.

И не должно быть проблем. Одним запросом.
---
Проблем нет, если не будет колонки "Страна", а она есть....
---
на вот, занимайся

```1c
    |///////////////////////
    |Выбрать
    | СерияНоменклатуры
    | ,КоличествоВСериии
    | ,Страна
    | ,Номенклатура
    |Из Нечто

    |ИТОГИ
    | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СерияНоменклатуры),
    | СУММА(КоличествоВСериии)
    |ПО
    | Номенклатура ";

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