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

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

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

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

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

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

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

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

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

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

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

IKSparrow
IKSparrow
11 лет назад

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