спасибо, мне уже подсказали на мисте немного по другому
кому интересно выкладываю код :
Данные.ДобавитьСоединениеДанных("ОснЕд","left join Справочник.Единицы as Единицы (nolock) on $ТекущийОбъект.ОсновнаяЕдиница = Единицы.id");
Данные.ДобавитьСоединениеДанных("ЦенаТовара","left join Справочник.Цены as Цены (nolock) on $ТекущийОбъект.ТекущийЭлемент = Цены.ParentExt and $Цены.ТипЦен = :ТипЦены");
Запрос=Данные.ПрямойЗапрос;
Запрос.УстановитьТекстовыйПараметр("ТипЦены", ТипЦены);
ТекстСоединения = "left join
| $РегистрОстатки.РезервыТМЦ(,Склад IN (SELECT Val FROM #ГруппаН),(Номенклатура),(Количество),) as rt
| on $ТекущийОбъект.ТекущийЭлемент = rt.Номенклатура
|";
Данные.ДобавитьСоединениеДанных("РезервПоТовару",ТекстСоединения);
//Запрос=Данные.ПрямойЗапрос;
Запрос.УложитьСписокОбъектов(глСписокСкладов, "#ГруппаН", "Склады");
Данные.ДобавитьКолонкуДанных("КолРезерв","ТМЦ резерв","((CASE WHEN ( $ТекущийОбъект.ОсновнаяЕдиница <> $ТекущийОбъект.БазоваяЕдиница) THEN ((ISNULL(rt.КоличествоОстаток,0) / $Единицы.Коэффициент)) ELSE (ISNULL(rt.КоличествоОстаток,0)) END))","Число",14,2,1);
ТекстСоединения = "left join
| $РегистрОстатки.ОстаткиТМЦ(,Склад IN (SELECT Val FROM #ГруппаН1),(Номенклатура),(Количество),) as vt
| on $ТекущийОбъект.ТекущийЭлемент = vt.Номенклатура
|";
Данные.ДобавитьСоединениеДанных("ОстаткиПоТовару",ТекстСоединения);
//Запрос=Данные.ПрямойЗапрос;
Запрос.УложитьСписокОбъектов(глСписокСкладов, "#ГруппаН1", "Склады");
Данные.ДобавитьКолонкуДанных("КолОстаток","ТМЦ остаток","((CASE WHEN ( $ТекущийОбъект.ОсновнаяЕдиница <> $ТекущийОбъект.БазоваяЕдиница) THEN ((ISNULL(vt.КоличествоОстаток,0) / $Единицы.Коэффициент)) - ((ISNULL(rt.КоличествоОстаток,0) / $Единицы.Коэффициент)) ELSE (ISNULL(vt.КоличествоОстаток,0)) - (ISNULL(rt.КоличествоОстаток,0)) END))","Число",14,2,1);
ТекстСоединения = "left join
| $РегистрОстатки.РезервыТМЦ(,Склад IN (SELECT Val FROM #ГруппаН2),(Номенклатура),(Количество),) as rt2
| on $ТекущийОбъект.ТекущийЭлемент = rt2.Номенклатура
|";
Данные.ДобавитьСоединениеДанных("РезервПоТовару2",ТекстСоединения);
//Запрос=Данные.ПрямойЗапрос;
Запрос.УложитьСписокОбъектов(глСписокПрочихМестХранения, "#ГруппаН2", "Склады");
Данные.ДобавитьКолонкуДанных("КолРезерв2","ТМЦ резерв2","((CASE WHEN ( $ТекущийОбъект.ОсновнаяЕдиница <> $ТекущийОбъект.БазоваяЕдиница) THEN ((ISNULL(rt2.КоличествоОстаток,0) / $Единицы.Коэффициент)) ELSE (ISNULL(rt2.КоличествоОстаток,0)) END))","Число",14,2,1);
ТекстСоединения = "left join
| $РегистрОстатки.ОстаткиТМЦ(,Склад IN (SELECT Val FROM #ГруппаН3),(Номенклатура),(Количество),) as vt2
| on $ТекущийОбъект.ТекущийЭлемент = vt2.Номенклатура
|";
Данные.ДобавитьСоединениеДанных("ОстаткиПоТовару2",ТекстСоединения);
//Запрос=Данные.ПрямойЗапрос;
Запрос.УложитьСписокОбъектов(глСписокПрочихМестХранения, "#ГруппаН3", "Склады");
Данные.ДобавитьКолонкуДанных("КолОстаток2","ТМЦ остаток2","((CASE WHEN ( $ТекущийОбъект.ОсновнаяЕдиница <> $ТекущийОбъект.БазоваяЕдиница) THEN ((ISNULL(vt2.КоличествоОстаток,0) / $Единицы.Коэффициент)) - ((ISNULL(rt2.КоличествоОстаток,0) / $Единицы.Коэффициент)) ELSE (ISNULL(vt2.КоличествоОстаток,0)) - (ISNULL(rt2.КоличествоОстаток,0)) END))","Число",14,2,1);
, :ВыбДата) ","Число",10,2,1);
//Запрос=Данные.ПрямойЗапрос;
Запрос.УстановитьТекстовыйПараметр("ВыбДата", Конт.ДатаДок);
все равно большое спасибо, что ответили