sava1 @ Сегодня, 10:16
необходимо зарегистрироваться для просмотра ссылки
,
Спасибо вам большое за ответ! Ознакомился с вашим предложением и это действительно то, что нужно! Я решил отдельно потренироваться на более простом запросе, прежде чем вернусь в сложный отчет.
Я решил выбрать для каждого кода номенклатуры каждый склад с остатком и категориями и обойти их по группировкам:
Запрос = Новый Запрос("ВЫБРАТЬ
| КатегорииОбъектов.Объект.Код КАК ОбъектКод,
| КатегорииОбъектов.Категория.Наименование КАК КатегорияНаименование,
| ПартииТоваровНаСкладахОстатки.Склад.Наименование КАК СкладНаименование,
| ПартииТоваровНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
|ИЗ
| РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки КАК ПартииТоваровНаСкладахОстатки
| ПО (ПартииТоваровНаСкладахОстатки.Номенклатура = КатегорииОбъектов.Объект)
|
|СГРУППИРОВАТЬ ПО
| КатегорииОбъектов.Объект.Код,
| КатегорииОбъектов.Категория.Наименование,
| ПартииТоваровНаСкладахОстатки.Склад.Наименование,
| ПартииТоваровНаСкладахОстатки.КоличествоОстаток
|ИТОГИ
| КОЛИЧЕСТВО(ОбъектКод),
| КОЛИЧЕСТВО(КатегорияНаименование),
| КОЛИЧЕСТВО(СкладНаименование),
| СУММА(КоличествоОстаток)
|ПО
| ОбъектКод");
Результат = Запрос.Выполнить();
ВыборкаПервогоУровня = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПервогоУровня.Следующий() цикл
ВыборкаВторогоУровня = ВыборкаПервогоУровня.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаВторогоУровня.Следующий() цикл
читаю_дебаггер = Истина;
КонецЦикла;
КонецЦикла;
И, получается, что действительно выбираются разные категории для одного наименования без каких-либо дубликатов! Но... Добавив сюда склады теперь оно для каждой категории пролистываем все склады и количества. Сначала для одной, потом для другой и до конца... Подскажите, пожалуйста, как уйти от этого некрасивого случая?