РС.выполнить("Create table #TempTable (TovID char(9),X int)");
ТекстЗапроса="
|use torg
|SET NOCOUNT ON
|declare @tov char(9),@ost int,@osttek int,@poz int,@dvizh int, @X int
|declare @tovp char(9),@pozp int
|DECLARE curs CURSOR LOCAL FOR
|SELECT Рсв.Товар,Рсв.Ост,Рсв.Позиция,Рсв.Движение FROM(
|SELECT Р.Товар,Р.КвоОстаток as Ост,0 as Движение,0 as позиция FROM $РегистрОстатки.ОстаткиТоваров(:ДатаС,
| INNER JOIN $Справочник.Склады as Скл(NOLOCK) ON Скл.ID=Склад AND $Скл.НомерМагазина=:ВыбНМ
| INNER JOIN $Справочник.Товары as Тов(NOLOCK) ON Тов.ID=Товар
| INNER JOIN $Справочник.Сотрудники as Мен(NOLOCK) ON Мен.ID=$Тов.Менеджер AND $Мен.ведениетоваров=1,
| ,(Товар,Склад),(Кво))as Р
|
|UNION ALL
|
|SELECT Р.Товар,0 as Ост,(Р.КвоПриход-Р.КвоРасход) as Движение,dbo._1s_timedoc_minus(Р.ПозицияДокумента,:ДатаС,:Старт,:Финиш) as позиция
|FROM $РегистрОбороты.ОстаткиТоваров(:ДатаС,:ДатаПо~,Документ,
| INNER JOIN $Справочник.Склады as Скл(NOLOCK) ON Скл.ID=Склад AND $Скл.НомерМагазина=:ВыбНМ
| INNER JOIN $Справочник.Товары as Тов(NOLOCK) ON Тов.ID=Товар
| INNER JOIN $Справочник.Сотрудники as Мен(NOLOCK) ON Мен.ID=$Тов.Менеджер AND $Мен.ведениетоваров=1,
| ,(Товар,Склад),(Кво))as Р)as Рсв
|ORDER BY Рсв.Товар,Рсв.Позиция
|
|OPEN curs
|Set @tovp='' set @pozp=0 set @x=0
|FETCH NEXT FROM curs INTO @tov,@ost,@poz,@dvizh
|WHILE @@FETCH_STATUS = 0
|BEGIN
| IF @tov=@tovp
| BEGIN
| set @osttek=@osttek+@dvizh
| IF @osttekp<=0 set @X=@X+(@poz-@pozp)
| set @pozp=@poz
| END;
| ELSE
| BEGIN
| IF @osttekp<=0 set @X=:ОбщВремя-@pozp
| IF @X>0 BEGIN INSERT INTO #TempTable VALUES (@tovp,@X) set @X=0 END;
| IF @poz=0 set @X=:ОбщВремя
| set @osttek=@ost+@dvizh
| set @pozp=@poz
| END;
| set @tovp=@tov
| set @osttekp=@osttek
| FETCH NEXT FROM curs INTO @tov,@ost,@poz,@dvizh
|END;
|IF @X>0 INSERT INTO #TempTable VALUES (@tovp,@X)
|Close curs
|deallocate curs
|
|";
РС.УстановитьТекстовыйПараметр("ВыбНМ",ВыбНМ);
РС.УстановитьТекстовыйПараметр("ВыбМен",ВыбМен);
РС.установитьтекстовыйпараметр("ПредМесяц",добавитьмесяц(НачМесяца(ДатаС),-1));
РС.установитьтекстовыйпараметр("ТекМесяц",НачМесяца(ДатаС));
РС.установитьтекстовыйпараметр("ДатаС",ДатаС);
РС.установитьтекстовыйпараметр("ДатаПо",ДатаПо);
РС.УстановитьТекстовыйПараметр("Старт",ВыбНМ.НачалоРаботы);
РС.УстановитьТекстовыйПараметр("Финиш",ВыбНМ.КонецРаботы);
*(датапо-датас+1));
т=РС.выполнитьинструкцию(ТекстЗапроса);
т=РС.выполнитьинструкцию("SELECT tovid as Тов,x FROM #TempTable");
т.выбратьстроку();
РС.выполнить("drop table #TempTable");
Выполнение этой команды показывает сейчас таблицу из 3 строк.
Если копирую текст запроса в SSMS то мне выводит нормальную таблицу из 10500 строк.