SELECT
*
FROM
 (select 
		Валюта
		,Счет
	,Субконто1,Субконто1_вид
	,Субконто2,Субконто2_вид
	,sum(СуммаНачальныйОстаток) СуммаНачальныйОстаток
	,sum(СуммаНачальныйОстатокДт) СуммаНачальныйОстатокДт
	,sum(СуммаНачальныйОстатокКт) СуммаНачальныйОстатокКт
	,sum(СуммаОборот) СуммаОборот
	,sum(СуммаОборотДт) СуммаОборотДт
	,sum(СуммаОборотКт) СуммаОборотКт
	,sum(СуммаНачальныйОстаток) + sum(СуммаОборот) СуммаКонечныйОстаток
	,case when (sum(СуммаНачальныйОстаток) + sum(СуммаОборот)) > 0 then (sum(СуммаНачальныйОстаток) + sum(СуммаОборот)) else 0 end СуммаКонечныйОстатокДт
	,case when (sum(СуммаНачальныйОстаток) + sum(СуммаОборот)) < 0 then -(sum(СуммаНачальныйОстаток) + sum(СуммаОборот)) else 0 end СуммаКонечныйОстатокКт
	,sum(КоличествоНачальныйОстаток) КоличествоНачальныйОстаток
	,sum(КоличествоНачальныйОстатокДт) КоличествоНачальныйОстатокДт
	,sum(КоличествоНачальныйОстатокКт) КоличествоНачальныйОстатокКт
	,sum(КоличествоОборот) КоличествоОборот
	,sum(КоличествоОборотДт) КоличествоОборотДт
	,sum(КоличествоОборотКт) КоличествоОборотКт
	,sum(КоличествоНачальныйОстаток) + sum(КоличествоОборот) КоличествоКонечныйОстаток
	,case when (sum(КоличествоНачальныйОстаток) + sum(КоличествоОборот)) > 0 then (sum(КоличествоНачальныйОстаток) + sum(КоличествоОборот)) else 0 end КоличествоКонечныйОстатокДт
	,case when (sum(КоличествоНачальныйОстаток) + sum(КоличествоОборот)) < 0 then -(sum(КоличествоНачальныйОстаток) + sum(КоличествоОборот)) else 0 end КоличествоКонечныйОстатокКт
	from (
		select
			Валюта
			,Счет
		,Субконто1,Субконто1_вид
		,Субконто2,Субконто2_вид
		,СуммаОстаток СуммаНачальныйОстаток
		,СуммаОстатокДт СуммаНачальныйОстатокДт
		,СуммаОстатокКт СуммаНачальныйОстатокКт
		,0 СуммаОборот,0 СуммаОборотДт,0 СуммаОборотКт
		,КоличествоОстаток КоличествоНачальныйОстаток
		,КоличествоОстатокДт КоличествоНачальныйОстатокДт
		,КоличествоОстатокКт КоличествоНачальныйОстатокКт
		,0 КоличествоОборот,0 КоличествоОборотДт,0 КоличествоОборотКт
		from 
			(
	SELECT
		Счет
		,Валюта
		,Субконто1,Субконто1_вид
		,Субконто2,Субконто2_вид
		
		,SUM(СуммаОстаток) СуммаОстаток
		,CASE WHEN SUM(СуммаОстаток) > 0 THEN SUM(СуммаОстаток) ELSE 0 END СуммаОстатокДт
		,CASE WHEN SUM(СуммаОстаток) < 0 THEN -SUM(СуммаОстаток) ELSE 0 END СуммаОстатокКт
		,SUM(КоличествоОстаток) КоличествоОстаток
		,CASE WHEN SUM(КоличествоОстаток) > 0 THEN SUM(КоличествоОстаток) ELSE 0 END КоличествоОстатокДт
		,CASE WHEN SUM(КоличествоОстаток) < 0 THEN -SUM(КоличествоОстаток) ELSE 0 END КоличествоОстатокКт
	FROM (
		SELECT
			bkttl_vt.ACCID AS Счет
			,bkttl_vt.CURRID AS Валюта
			,bkttl_vt.SC0 Субконто1
			,bkttl_vt.VSC0 Субконто1_вид
			,bkttl_vt.SC1 Субконто2
			,bkttl_vt.VSC1 Субконто2_вид
			
			,CASE WHEN bkttl_vt.KIND = '1' THEN bkttl_vt.SD+bkttl_vt.OBDT1-bkttl_vt.OBKT1 ELSE 0 END AS СуммаОстаток
			,CASE WHEN bkttl_vt.KIND = '3' THEN bkttl_vt.SD+bkttl_vt.OBDT1-bkttl_vt.OBKT1 ELSE 0 END AS КоличествоОстаток
		FROM
			__1S_BKTTL bkttl_vt
		INNER JOIN vt_Счет217 accfilter
		ON bkttl_vt.ACCID = accfilter.val
		WHERE (bkttl_vt.DATE = '20120701')
		AND (bkttl_vt.KIND IN ('1','3'))
		
		AND ((bkttl_vt.SC0 ='   28IDIR') AND (bkttl_vt.SC1 ='     V   '))
		
		
	UNION ALL
		
		SELECT
			entry_vt.ACCDTID
			,CASE WHEN entry_vt.DTFLAGS & 1 = 1 THEN entry_vt.CURRID ELSE '     0   ' END
			,entry_vt.DTSC0
			,entry_vt.VDTSC0
			,entry_vt.DTSC1
			,entry_vt.VDTSC1
			
			,-entry_vt.SUM
			,-entry_vt.AMOUNT
		FROM __1S_ENTRY entry_vt
		WHERE (entry_vt.ACCDTID IN (SELECT val FROM vt_Счет217))
		AND (entry_vt.idx_DATE_TIME_DOCID_NUMBER_CORNO >= '20120717     0     0   ') 
		AND (entry_vt.idx_DATE_TIME_DOCID_NUMBER_CORNO < '20120801     0     0   ')
		AND (entry_vt.ACTIVE = ' ')
		
		AND ((entry_vt.DTSC0 ='   28IDIR') AND (entry_vt.DTSC1 ='     V   '))
		
		AND (entry_vt.PROVKIND <> 'K')
		
	UNION ALL
		
		SELECT
			entry_vt.ACCKTID
			,CASE WHEN entry_vt.KTFLAGS & 1 = 1 THEN entry_vt.CURRID ELSE '     0   ' END
			,entry_vt.KTSC0
			,entry_vt.VKTSC0
			,entry_vt.KTSC1
			,entry_vt.VKTSC1
			
			,entry_vt.SUM
			,entry_vt.AMOUNT
		FROM __1S_ENTRY AS entry_vt
		WHERE (entry_vt.ACCKTID IN (SELECT val FROM vt_Счет217))
		AND (entry_vt.idx_DATE_TIME_DOCID_NUMBER_CORNO >= '20120717     0     0   ') 
		AND (entry_vt.idx_DATE_TIME_DOCID_NUMBER_CORNO < '20120801     0     0   ')
		AND (entry_vt.ACTIVE = ' ')
		
		AND ((entry_vt.KTSC0 ='   28IDIR') AND (entry_vt.KTSC1 ='     V   '))
		
		AND (entry_vt.PROVKIND <> 'D')
		
		) AS accountingbalance
	GROUP BY
		Счет,Валюта
		,Субконто1,Субконто1_вид
		,Субконто2,Субконто2_вид
		
	HAVING (SUM(СуммаОстаток) <> 0)
	OR (SUM(КоличествоОстаток) <> 0)
) vt_balance
		
		union all
		
		select 
			Валюта
			,Счет
		,Субконто1,Субконто1_вид
		,Субконто2,Субконто2_вид
		,0 СуммаНачальныйОстаток,0 СуммаНачальныйОстатокДт,0 СуммаНачальныйОстатокКт
		,СуммаОборот,СуммаОборотДт,СуммаОборотКт
		,0 КоличествоНачальныйОстаток,0 КоличествоНачальныйОстатокДт,0 КоличествоНачальныйОстатокКт
		,КоличествоОборот,КоличествоОборотДт,КоличествоОборотКт
		from
			(	SELECT
		Валюта
		,Счет
		,Субконто1,Субконто1_вид
		,Субконто2,Субконто2_вид
		
		
		,SUM(СуммаОборотДт) - SUM(СуммаОборотКт) СуммаОборот
		,SUM(СуммаОборотДт) СуммаОборотДт
		,SUM(СуммаОборотКт) СуммаОборотКт
		,SUM(КоличествоОборотДт) - SUM(КоличествоОборотКт) КоличествоОборот
		,SUM(КоличествоОборотДт) КоличествоОборотДт
		,SUM(КоличествоОборотКт) КоличествоОборотКт
	FROM (
		SELECT
			entry_vt.CURRID Валюта
			,entry_vt.ACCDTID Счет
			,entry_vt.DTSC0 Субконто1
			,entry_vt.VDTSC0 Субконто1_вид
			,entry_vt.DTSC1 Субконто2
			,entry_vt.VDTSC1 Субконто2_вид
			
			
			,entry_vt.SUM СуммаОборотДт
			,0 СуммаОборотКт
			,entry_vt.AMOUNT КоличествоОборотДт
			,0 КоличествоОборотКт
		FROM vt_Счет217 accfilter
		LEFT JOIN __1S_ENTRY entry_vt
		ON entry_vt.ACCDTID = accfilter.val
		WHERE (entry_vt.idx_DATE_TIME_DOCID_NUMBER_CORNO >= '20120717     0     0   ')
		AND (entry_vt.idx_DATE_TIME_DOCID_NUMBER_CORNO < '20140101     0     0   ')
		AND (entry_vt.ACTIVE = ' ')
		AND (entry_vt.ACCDTID <> '     0   ')
		AND (entry_vt.PROVKIND <> 'K')
		AND ((entry_vt.DTSC0 ='   28IDIR') AND (entry_vt.DTSC1 ='     V   '))
		
		
		UNION ALL
		
		SELECT
			entry_vt.CURRID Валюта
			,entry_vt.ACCKTID Счет
			,entry_vt.KTSC0 Субконто1
			,entry_vt.VKTSC0 Субконто1_вид
			,entry_vt.KTSC1 Субконто2
			,entry_vt.VKTSC1 Субконто2_вид
			
			
			,0
			,entry_vt.SUM
			,0
			,entry_vt.AMOUNT
		FROM vt_Счет217 accfilter
		LEFT JOIN __1S_ENTRY entry_vt
		ON entry_vt.ACCKTID = accfilter.val
		WHERE (entry_vt.idx_DATE_TIME_DOCID_NUMBER_CORNO >= '20120717     0     0   ')
		AND (entry_vt.idx_DATE_TIME_DOCID_NUMBER_CORNO < '20140101     0     0   ')
		AND (entry_vt.ACTIVE = ' ')
		AND (entry_vt.ACCKTID <> '     0   ')
		AND (entry_vt.PROVKIND <> 'D')
		AND ((entry_vt.KTSC0 ='   28IDIR') AND (entry_vt.KTSC1 ='     V   '))
		) accturnover
	GROUP BY Валюта
		,Счет
		,Субконто1,Субконто1_вид
		,Субконто2,Субконто2_вид
		
		
	HAVING
		(SUM(СуммаОборотДт) <> 0)
	OR (SUM(СуммаОборотКт) <> 0)
	OR (SUM(КоличествоОборотДт) <> 0)
	OR (SUM(КоличествоОборотКт) <> 0)) vt_turnover
		) vt_totalacc_19836699
	group by vt_totalacc_19836699.Валюта,vt_totalacc_19836699.Счет,vt_totalacc_19836699.Субконто1,vt_totalacc_19836699.Субконто1_вид,vt_totalacc_19836699.Субконто2,vt_totalacc_19836699.Субконто2_вид
	HAVING sum(СуммаНачальныйОстаток)<>0
	OR sum(СуммаНачальныйОстатокДт) <> 0
	OR sum(СуммаНачальныйОстатокКт) <> 0
	OR sum(СуммаОборот) <> 0
	OR sum(СуммаОборотДт) <> 0
	OR sum(СуммаОборотКт) <> 0
	OR sum(КоличествоНачальныйОстаток)<>0
	OR sum(КоличествоНачальныйОстатокДт) <> 0
	OR sum(КоличествоНачальныйОстатокКт) <> 0
	OR sum(КоличествоОборот) <> 0
	OR sum(КоличествоОборотДт) <> 0
	OR sum(КоличествоОборотКт) <> 0
	) AS РћРћРћ
Подбор индекса для таблицы 1SBKTTL:
	Ограничения: DATE=; SC0=; SC1=; ACCID=; 
	Найдено в кэше
	Выбран индекс ACC1: DTOS(DATE)+KIND+ACCID+SC0+SC1+CURRID
	Стоимость: 96
Подбор индекса для таблицы 1SBKTTL:
	Ограничения: DATE=; SC0=; SC1=; ACCID=; 
	Найдено в кэше
	Выбран индекс ACC1: DTOS(DATE)+KIND+ACCID+SC0+SC1+CURRID
	Стоимость: 96
Подбор индекса для таблицы 1SENTRY:
	Ограничения: DATETIME[dx_DATE_TIME_DOCID_NUMBER_CORNO]>=; DATETIME[dx_DATE_TIME_DOCID_NUMBER_CORNO]<; ACTIVE=; DTSC0=; DTSC1=; 
	Найдено в кэше
	Выбран индекс DATETIME: DTOS(DATE)+TIME+DOCID+STR(NUMBER,5)+STR(CORNO,5)
	Стоимость: 18
Подбор индекса для таблицы 1SENTRY:
	Ограничения: DATETIME[dx_DATE_TIME_DOCID_NUMBER_CORNO]>=; DATETIME[dx_DATE_TIME_DOCID_NUMBER_CORNO]<; ACTIVE=; KTSC0=; KTSC1=; 
	Найдено в кэше
	Выбран индекс DATETIME: DTOS(DATE)+TIME+DOCID+STR(NUMBER,5)+STR(CORNO,5)
	Стоимость: 18
Подбор индекса для таблицы 1SENTRY:
	Ограничения: DATETIME[dx_DATE_TIME_DOCID_NUMBER_CORNO]>=; DATETIME[dx_DATE_TIME_DOCID_NUMBER_CORNO]<; ACTIVE=; DTSC0=; DTSC1=; ACCDTID=; 
	Найдено в кэше
	Выбран индекс DATETIME: DTOS(DATE)+TIME+DOCID+STR(NUMBER,5)+STR(CORNO,5)
	Стоимость: 18
Подбор индекса для таблицы 1SENTRY:
	Ограничения: DATETIME[dx_DATE_TIME_DOCID_NUMBER_CORNO]>=; DATETIME[dx_DATE_TIME_DOCID_NUMBER_CORNO]<; ACTIVE=; KTSC0=; KTSC1=; ACCKTID=; 
	Найдено в кэше
	Выбран индекс DATETIME: DTOS(DATE)+TIME+DOCID+STR(NUMBER,5)+STR(CORNO,5)
	Стоимость: 18
Время подготовки запроса: 32 мс, время выполнения запроса: 272 мс.