Как сделать отчёт такого рода?

Вводная
Регистр с измерениями:
Контрагент
Договор
и с ресурсом:
Сумма

Надо построить отчёт вида:
Входящий остаток Приход Расход Конечный остаток
и выдать детализацию по документам определённого вида (только их список).

Нивапрос. Строю запрос вида:

"ВЫБРАТЬ РАЗРЕШЕННЫЕ	
	ВзаиморасчётыОстаткиИОбороты.Контрагент КАК Контрагент,	
	ВзаиморасчётыОстаткиИОбороты.Договор КАК Договор,	
	ВзаиморасчётыОстаткиИОбороты.СуммаНачальныйОстаток	
	ВзаиморасчётыОстаткиИОбороты.СуммаПриход КАК СуммаПриход,	
	ВзаиморасчётыОстаткиИОбороты.СуммаРасход КАК СуммаРасход,	
	ВзаиморасчётыОстаткиИОбороты.СуммаКонечныйОстаток,	
	// Отдельной колонкой дату поступления денег	
	ВЫБОР		
		КОГДА ВзаиморасчётыОстаткиИОбороты.Регистратор ССЫЛКА Документ.Выписка			
			ТОГДА ВзаиморасчётыОстаткиИОбороты.Регистратор.Дата		
		ИНАЧЕ """"	
	КОНЕЦ КАК ДатаПоступленияДенег,	
	// И отдельной колонкой сам документ поступления денег	
	ВЫБОР		
		КОГДА ВзаиморасчётыОстаткиИОбороты.Регистратор ССЫЛКА Документ.Выписка			
			ТОГДА ВзаиморасчётыОстаткиИОбороты.Регистратор		
		ИНАЧЕ """"	
	КОНЕЦ КАК Выписка
ИЗ	
	РегистрНакопления.ВзаиморасчётыОстаткиИОбороты.ОстаткиИОбороты(, , Запись, Движения, ) КАК ВзаиморасчётыОстаткиИОбороты
ГДЕ	
	ВзаиморасчётыОстаткиИОбороты.Контрагент = &Контрагент
	И ВзаиморасчётыОстаткиИОбороты.Договор = &Договор"

И получаю таблицу вида:
Иванов, договор Иванова, НачОст = 1000, Приход = 0, Расход = 100, КонОст = 900, Выписка = 01.02.2011
Иванов, договор Иванова, НачОст = 900, Приход = 0, Расход = 100, КонОст = 800, Выписка = 02.02.2011

Проблема в том, что в СКД общие итоги будут такими: НачОст = 1900 и КонОст = 1700.
Почему так происходит – понятно. Но как избавиться от “неправильно” (с точки зрения пользователя) посчитанных остатков в этой ситуации?

Подписаться
Уведомить о
guest
3 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Данилюк Андрей
Данилюк Андрей
12 лет назад

Судя по приведенным цифрам у вас получается, что начальный остаток и конечный остаток это ресурс типа Сумма и в группировке вы видите сумму всех записей, которую возвращает запрос.
Надо составной запрос делать. Когда-то подсмотрел на инфостарте, первоисточника не нашел. Выгруженный отчет из моей конфигурации можете посмотреть тут: http://dl.dropbox.com/u/2261213/demo/SKD_Demo.erf

Данилюк Андрей
Данилюк Андрей
12 лет назад

Помогло не помогло ?

IKSparrow
IKSparrow
12 лет назад

Увы, пока мучаюсь. Но точного списка проблем пока не готов представить – погряз в разбирательствах с этой системой. Вообще, я представляю как сделать такой отчёт “ручками”. Но интересно ведь с помощью СКД. Говорят, что такие вещи на ней делаются легко и непринуждённо. Теперь я в этом не уверен.
Сделать без СКД можно примерно так:
Делаем выборку по оборотам. Отдельно, если сумма расход не равна нулю, значит получаем выписки и выводим их отдельным блоком. Всё ясно и просто