Вот код тбОбразованиеДолгов = СоздатьОбъект("ИндексированнаяТаблица"); пз = СоздатьОбъект("ПрямойЗапрос"); пз.режимотладки = 1; пз.СброситьТаблицу("#accNA"); пз.выполнитьзапрос("create table #accNA (val char(9))"); пз.выполнитьзапрос(" |insert into #accNA select ID |FROM ПланыСчетов КАК Планы |WHERE left($Планы.Код,2) in ('37','36') |AND $Планы.ЭтоГруппа = 0"); пз.текст = "ВЫБРАТЬ ОстКон.Счет , ОстКон.Субконто1 [Субконто1 $Справочник.Контрагенты], | 0 как нуль, ОстКон.СуммаОстатокДт |ИЗ $БИОстатки.Основной(:Дата2~,#accNA,(Контрагенты),(Сумма),) КАК ОстКон |ГДЕ СуммаОстатокДт <> 0"; пз.УстановитьТекстовыйПараметр("Дата2", Дата2); тбОбразованиеДолгов = пз.выполнить(); тбОбразованиеДолгов.НоваяКолонка("ДокОбразованияДолга"); тбОбразованиеДолгов.НоваяКолонка("ДокЗакрытияДолга"); сообщить("НачКон остатки"); тбОбразованиеДолгов.Показать(); Возврат; который раскрываетя в неправильный запрос IF EXISTS(SELECT * FROM tempdb..sysobjects WHERE id = object_id('tempdb..#accNA')) DROP TABLE #accNA Время подготовки запроса: 11 мс, время выполнения запроса: 10 мс. create table #accNA (val char(9)) Время подготовки запроса: 8 мс, время выполнения запроса: 3 мс. insert into #accNA select ID FROM _1SACCS AS Планы WHERE left(Планы.SCHKOD,2) in ('37','36') AND CASE WHEN Планы.ISFOLDER = 1 THEN 1 ELSE 0 END = 0 Время подготовки запроса: 11 мс, время выполнения запроса: 9 мс. SELECT ОстКон.Счет , ОстКон.Субконто1 [Субконто1 $Справочник.Контрагенты], 0 AS нуль, ОстКон.СуммаОстатокДт FROM ( SELECT РазделительУчета ,Счет ,Валюта ,Субконто1,Субконто1_вид ,SUM(СуммаОстаток) СуммаОстаток ,CASE WHEN SUM(СуммаОстаток) > 0 THEN SUM(СуммаОстаток) ELSE 0 END СуммаОстатокДт ,CASE WHEN SUM(СуммаОстаток) < 0 THEN -SUM(СуммаОстаток) ELSE 0 END СуммаОстатокКт FROM ( SELECT bkttl_vt.SP1411 РазделительУчета ,bkttl_vt.ACCID Счет ,bkttl_vt.CURRID Валюта ,CASE WHEN bkttl_vt.VSC0 = 1396 THEN bkttl_vt.SC0 WHEN bkttl_vt.VSC1 = 1396 THEN bkttl_vt.SC1 WHEN bkttl_vt.VSC2 = 1396 THEN bkttl_vt.SC2 END Субконто1 ,1396 Субконто1_вид ,CASE WHEN bkttl_vt.KIND = '1' THEN bkttl_vt.SD ELSE 0 END AS СуммаОстаток FROM _1SBKTTL bkttl_vt (nolock) INNER JOIN #accNA accfilter ON bkttl_vt.ACCID = accfilter.val WHERE (bkttl_vt.DATE = '20090401') AND (bkttl_vt.KIND = '1') AND (1396 IN (bkttl_vt.VSC0,bkttl_vt.VSC1,bkttl_vt.VSC2)) UNION ALL SELECT entry_vt.SP1411 ,entry_vt.ACCDTID ,CASE WHEN entry_vt.DTFLAGS & 1 = 1 THEN entry_vt.CURRID ELSE ' 0 ' END ,CASE WHEN entry_vt.VDTSC0 = 1396 THEN entry_vt.DTSC0 WHEN entry_vt.VDTSC1 = 1396 THEN entry_vt.DTSC1 WHEN entry_vt.VDTSC2 = 1396 THEN entry_vt.DTSC2 END ,1396 ,entry_vt.SUM_ FROM _1SENTRY entry_vt (nolock) INNER JOIN #accNA accfilter ON entry_vt.ACCDTID = accfilter.val WHERE (entry_vt.DATE_TIME_DOCID >= '20090401 0 0 ') AND (entry_vt.DATE_TIME_DOCID < '20090404 0 0 ') AND (entry_vt.ACTIVE = ' ') AND (1396 IN (entry_vt.VDTSC0,entry_vt.VDTSC1,entry_vt.VDTSC2)) AND (entry_vt.PROVKIND <> 'K') UNION ALL SELECT entry_vt.SP1411 ,entry_vt.ACCKTID ,CASE WHEN entry_vt.KTFLAGS & 1 = 1 THEN entry_vt.CURRID ELSE ' 0 ' END ,CASE WHEN entry_vt.VKTSC0 = 1396 THEN entry_vt.KTSC0 WHEN entry_vt.VKTSC1 = 1396 THEN entry_vt.KTSC1 WHEN entry_vt.VKTSC2 = 1396 THEN entry_vt.KTSC2 END ,1396 ,-entry_vt.SUM_ FROM _1SENTRY entry_vt (nolock) INNER JOIN #accNA accfilter ON entry_vt.ACCDTID = accfilter.val WHERE (entry_vt.DATE_TIME_DOCID >= '20090401 0 0 ') AND (entry_vt.DATE_TIME_DOCID < '20090404 0 0 ') AND (entry_vt.ACTIVE = ' ') AND (1396 IN (entry_vt.VKTSC0,entry_vt.VKTSC1,entry_vt.VKTSC2)) AND (entry_vt.PROVKIND <> 'D') ) AS accountingbalance GROUP BY РазделительУчета,Счет,Валюта ,Субконто1,Субконто1_вид HAVING (SUM(СуммаОстаток) <> 0) ) AS ОстКон WHERE СуммаОстатокДт <> 0 Время подготовки запроса: 49 мс, время выполнения запроса: 174 мс. НачКон остатки