Помогите с запросом

Новая тема
"День добрый.
Не могу врубиться как правильно сделать. Задача выбрать остатки по товару по заданной группе номенклатуры, пишу -

"ВЫБРАТЬ
| ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
|
| СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток
|
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дата1, &Дата2, , , ) КАК ТоварыНаСкладахОстаткиИОбороты
|
|ГДЕ
| ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Родитель.Ссылка = &ВыбГруппа
|
|СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстаткиИОбороты.Номенклатура";

Запрос.УстановитьПараметр("Дата1" ,Дата1);
Запрос.УстановитьПараметр("Дата2" ,Дата2);
Запрос.УстановитьПараметр("ВыбГруппа", ВыбГруппа.Ссылка);

Но выборка идет только для тех элементов номенклатуры, для которых "ВыбГруппа" является непоследственным Родителем, а для уровней ниже не получается.  Как проблему победить?
ВыбГруппа - это поле в отчете."
"1. Не "Родитель.Ссылка=&ВыбГруппа", а "Номенклатура в иерархии(&ВыбГруппа)".
2. Устанвливать такой отбор нужно на параметры виртуальной таблицы "ОстаткиИОбороты" - "РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дата1, &Дата2, , , Номенклатура В ИЕРАРХИИ (&ВыбГруппа))".
3. Если нужен только остаток, то использовать нужно виртуальную таблицу "Остатки", а не "ОстаткиИОбороты".
4. Для более корректной выборки данных из регистра накопления периоды лучше задавать границами, т.е.

...
Запрос.УстановитьПараметр("Дата1", Новый Граница(НачалоДня(Дата1), ВидГраницы.Включая));Запрос.УстановитьПараметр("Дата2", Новый Граница(КонецДня(Дата2), ВидГраницы.Включая)); 



5. Если переменная "ВыбГруппа" имеет тип значение "СправочникСсылка.Номенклатура", то не нужно использовать ".Ссылка", достаточно просто обращаться по имени переменной."
В догонку...

При выборе данных из виртуальной таблицы не нужно использовать "СГРУППИРОВАТЬ ПО" - у вас уже данные будут выданы только в разрезе измерения "Номенклатура".
Большое спасибо, Денис !
Читают тему
(гостей: 1)

Быстрый переход