Всем привет!
В документе в шапке и в ТЧ есть реквизит - склад,
у рекв. Склад есть реквизит - группа.
Нужно как-то построить параметризированный запрос по остаткам,
если выбран склад в ТЧ, то считаем по нему, если нет- то по складу шапки, а если выставлена галочка по группе, то считать плюс ко всему - по группе складов.
ТЗ = "
|declare @Тов char(9)
|set @Тов = ?
|select
|sum(БигСел.КолОст) [Ост $Число],
|sum(БигСел.КолРез) [Резв $Число]
|from
|(select
|ОстТ.ресКоличествоОстаток КолОст,
|0 КолРез
|from $РегистрОстатки.Товары(,,измТовар = @Тов and измСклад in (select val from #TempSkl), измТовар, ресКоличество) ОстТ
|union
|select
|0,
|РезТ.ресКоличествоОстаток
|from $РегистрОстатки.РезервыТоваров(,,измТовар = @Тов and измСклад in (select val from #TempSkl), измТовар, ресКоличество) РезТ
|) БигСел";
Этот запрос работает если при его подготовке сразу сделать
УложитьСписокОбъектов()
А вот если получать склады построчно - получается фигня.
Можно ли как-то придумать, чтобы не отказываться от параметр. запроса, а то очень сильно тормозит?
Для каждой сторки выполняется следующее ...
СписСкл.УдалитьВсе();
Если табСклад.Выбран() = 1 Тогда
_Скл = табСклад
Иначе
_Скл = загСклад
КонецЕсли;
Если ОстГрупп = 1 Тогда
ЗапросСкл = СоздатьОбъект("OdbcRecordSet");
ТзСкл = "
|select
|Скл.id [Склад $Справочник.Склады]
|from $Справочник.Склады Скл (nolock)
|where $Скл.спрСкладВладелец = :СклВлад";
ЗапросСкл.УстановитьТекстовыйПараметр("СклВлад", _Скл);
ЗапросСкл.ВыполнитьИнструкцию(ТзСкл,СписСкл);
КонецЕсли;
СписСкл.ДобавитьЗначение(_Скл);
ЗапросОстПоСтр.УложитьСписокОбъектов(СписСкл, "#TempSkl");