разобрался, была ошибка ы условии, прошу совета по дальнейшей оптимизации данного безобразия
рс=СоздатьОбъект("ODBCRecordSet");
зицию(),-1));
рс.УстановитьТекстовыйПараметр("Док",ТекущийДокумент());
рс.УстановитьТекстовыйПараметр("Склад",Склад);
рс.УстановитьТекстовыйПараметр("ОтделПартий",ОтделПартий);
рс.УстановитьТекстовыйПараметр("Счет",СчетПоКоду(41.1));
//рс.УстановитьТекстовыйПараметр("Услуга",Перечисление.ВидыТоваров.Услуга);
Если ПоПоставке.Выбран()=1 Тогда
рс.УстановитьТекстовыйПараметр("ВидПоставки",ПоПоставке);
КонецЕсли;
Если КоличествоСтрок()>10 Тогда
ХинтСвязи="hash";
Иначе
ХинтСвязи="";
КонецЕсли;
Вид=Вид();
СтрОборотов="SD";
НачКв=НачКвартала(ДатаДок);
ТолькоО=1;
Для ш=1 по 3 Цикл
НачПер=ДобавитьМесяц(НачКв,ш-1);
КонПер=ДобавитьМесяц(НачКв,ш)-1;
Если КонПер>ДатаДок Тогда
ТолькоО=0;
Прервать;
КонецЕсли;
СтрОборотов=СтрОборотов+"+(OBDT"+ш+"-OBKT"+ш+")";
Если КонПер=ДатаДок Тогда
ТолькоО=1;
прервать;
КонецЕсли;
ТолькоО=0;
КонецЦикла;
НачПер=Шаблон("'[НачПер#ДГГГГММДД] 0 0 '");
КонПер=Шаблон("'[ДатаДок+1#ДГГГГММДД]'");
ТекстЗапроса="
|select Док.Тов [Товар $Справочник.Товары]
| ,БухОстатки.Поставка [ПоПоставке $Справочник.ВидыПостАудиоВидео]
// |"+?(ПоПоставке.Выбран()=1,",Док.Количество Количество","")+"
| ,БухОстатки.СумБух,БухОстатки.ОстБух
| from (
| select $Док.Товар Тов
//|"+?(ПоПоставке.Выбран()=1,",sum($Док.Количество*$Док.Коэффициент) Количество","")+"
| from $ДокументСтроки."+Вид+" Док (nolock)
| where Док.iddoc = :Док
| group by $Док.Товар
| )Док
| left "+ХинтСвязи+" join (
|SELECT Товар,Поставка,СумБух=SUM(SUM_),ОстБух=SUM(AMOUNT)
|FROM (
|SELECT SC0 Товар ,SC1 Поставка,SC2
|,SUM_=CASE KIND WHEN '1' THEN "+ СтрОборотов+" ELSE 0 END
|,AMOUNT=CASE KIND WHEN '3' THEN "+ СтрОборотов+" ELSE 0 END
|FROM _1SBKTTL(NOLOCK)
|WHERE DATE='"+Шаблон("[НачКВ#ДГГГГММДД]")+"' AND ACCID=:Счет
|AND (KIND = '1' OR KIND = '3')
//|AND sc2='"+ИдОтд+"'
|AND sc2= :ОтделПартий
|
| union all
|
|SELECT DTSC0 Товар,DTSC1 Поставка ,DTSC2 ,SUM_=CONVERT(NUMERIC(16, 3), SUM_),
| AMOUNT=CONVERT(NUMERIC(16, 3), AMOUNT)
|FROM _1SENTRY ENTRY(NOLOCK)
|WHERE DATE_TIME_DOCID>="+НачПер+"
| AND DATE_TIME_DOCID<:Позиция~
| AND ACCDTID=:Счет
| AND ACTIVE=' '
|AND dtsc2=:ОтделПартий
|
|union all
|
|SELECT KTSC0 Товар,KTSC1 Поставка,KTSC2,SUM_=-CONVERT(NUMERIC(16, 3), SUM_),
| AMOUNT=-CONVERT(NUMERIC(16, 3), AMOUNT)
|FROM _1SENTRY ENTRY(NOLOCK)
|WHERE DATE_TIME_DOCID>="+НачПер+"
| AND DATE_TIME_DOCID<:Позиция~
| AND ACCKTID=:Счет
| AND ACTIVE=' '
|AND KTsc2=:ОтделПартий
|)AS БухОстатки
|GROUP BY БухОстатки.Товар,БухОстатки.Поставка
|HAVING SUM(SUM_)<>0 OR SUM(AMOUNT)<>0
|)БухОстатки on БухОстатки.Товар = Док.Тов"+?(ПоПоставке.Выбран()=1," AND БухОстатки.Поставка=:ВидПоставки ","")+"
//|"+ ?(ПоПоставке.Выбран()=1," where Док.Количество > isnull(БухОстатки.ОстатокТовара,0)","")+"
|";
//рс.Отладка(1);
ТЗ=СоздатьОбъект("ТаблицаЗначений");
Состояние("ПроверкаКоличестваПоБухгалтерии");
рс.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ);