Всем доброго дня!

Есть следующая задача:
Необходимо рассчитать возникновение и сумму долга контрагента по месяцам.Отчет представляется в виде кросс-таблицы.
Пример отчета на скриншоте

Расчет Остатка и соответственно Долга для первого периода производится как "ОстатокДт"="Долг" = "Дебет по контрагенту за весь период отчета" + "НачальныйОстатокДт" - ОборотКТзаМесяц

Для расчета долга на последующие периоды считается как "ОстатокДт" - "ОборотКтЗаМесяц".
Как только появится минус, значит выводим их как долг.

В связи с этим вопрос, каким образом реализовать механизм получения предыдущего ОстаткаДт для расчета долгов для следующих периодов. Убил кучу времени, так и не получив нормального результата.

P.S. Как пытался решить

```1c
    ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Контрагент,
    ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК НачальныйДт,
    ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК ОборотДт,
    ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт + ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК ВсегоПоДТ
    ПОМЕСТИТЬ КонтрагентыИтоги
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
    &НачалоПериода,
    &КонецПериода,
    ,
    ,
    Счет В ИЕРАРХИИ (&Счет),
    ,
    Организация = &Организация
    И ТИПЗНАЧЕНИЯ(Субконто1) = ТИП(Справочник.Контрагенты)) КАК ХозрасчетныйОстаткиИОбороты
    ГДЕ
    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток < 0
    И ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток <> ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Субконто1,
    ХозрасчетныйОстаткиИОбороты.Период,
    ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК ОборотКт,
    КонтрагентыИтоги.ВсегоПоДТ

    ИЗ
    КонтрагентыИтоги КАК КонтрагентыИтоги
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
    &НачалоПериода,
    &КонецПериода,
    Месяц,
    ,
    Счет В ИЕРАРХИИ (&Счет),
    ,
    Организация = &ОРганизация
    И ТИПЗНАЧЕНИЯ(Субконто1) = ТИП(Справочник.Контрагенты)) КАК ХозрасчетныйОстаткиИОбороты
    ПО КонтрагентыИтоги.Контрагент = ХозрасчетныйОстаткиИОбороты.Субконто1
```

Создал вычисляемое поле "Остаток" как

```1c
    ВЫБОР
    КОГДА isNull(ВычислитьВыражение("Остаток","Период",,"Предыдущая","Предыдущая"),0) =0 ТОГДА ВсегоПоДт - ОборотКТ
    ИНАЧЕ ВычислитьВыражение("Остаток","Период",,"Предыдущая", "Предыдущая")- ОборотКт
    КОНЕЦ
```

Первые значения считаются нормально с третьего начинаются чудеса.. Может есть идея у кого-нибудь?
---
Дмитрий, ну вот смотрите:

в январе 1100-200 = 900 (долга нет)

февраль 1100-100-200 = 800 (долга нет)
март - 1100-100-200-0 = 800 (долга нет)
апрель 1100-100-200-0-900 = -100 появился долг 100 руб (выводится долг в периоде апрель 100 руб)

Т.е. получаем 1100 и потом цепляем к оборотам левым соединением.
---
Пока вижу два варианта: выводить данные за фиксированный период или в цикле обрабатывать результат, рассчитывать и присоединять области. Если подходит, могу выслать пример.
---
А зачем Вам "Дебет по контрагенту за весь период отчета" + "НачальныйОстатокДт" ? Может, нужно "НачальныйОстатокДт" на начало каждого периода + "Дебет по контрагенту за оставшийся период отчета" ?
---
Виктор, брать "Дебет по контрагенту за весь период отчета" требуется для реализации специфичного алгоритма расчета не вообще возникшего долга, а в какой именно период он возник, и не нарастающим итогом, а именно конкретный долг в конкретный период, в данном случае по месяцам.. Так реализуется схема расчета реестра текущих платежей в соответствии закона о банкротстве. Это делается для определения очередности платежей. Если интересно, могу рассказать. Но если не углубляться в детали требуется именно получить "ОбщийОборотДТза весь ПериодОтчета" и из него вычитать обороты по кредиту за месяц. Например

НачальныйОстатокДт =100 руб
ОборотДтЗаВесьПериодОтчета = 1000 руб

январь Кт - 200 руб.
февраль Кт - 100 руб.
март Кт -0 руб
Апрель Кт 900 руб.
Май Кт - 500 руб
ИюньКт 800 руб.

Расчет будет таким "ОбщийДтЗаПериод+НачальныйОстатокДт" = 1000 +100 = 1100 руб.

в январе 1100-200 = 900 (долга нет)
февраль 900-100 = 800 (долга нет)
март - 800-0 = 800 (долга нет)
апрель 800-900 = -100 появился долг 100 руб (выводится долг в периоде апрель 100 руб)
май - 500 (выводит долг 500 рублей в мае)
июнь -800 рублей (выводится долг в июне)

У меня проблема возникла именно в том, как именно реализовать вычисляемое поле "ОстатокДт", из которого нужно будет вычитать текущий Кт, а в следующем периоде использовать уже это поле, рассчитанное в предыдущей строке.
---
```1c
    ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента,
    ВзаиморасчетыСКонтрагентамиОстатки.Контрагент,
    ВзаиморасчетыСКонтрагентамиОстатки.Организация,
    ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетов,
    NULL КАК ДокументРасчетовСКонтрагентом,
    ВЫБОР
    КОГДА НЕ ВзаиморасчетыСКонтрагентамиОстатки.Сделка.Дата ЕСТЬ NULL
    ТОГДА РАЗНОСТЬДАТ(ВзаиморасчетыСКонтрагентамиОстатки.Сделка.Дата, &ДатаОстатков, ДЕНЬ) - ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
    КОГДА ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.Дата <> ДАТАВРЕМЯ(1, 1, 1)
    ТОГДА РАЗНОСТЬДАТ(ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.Дата, &ДатаОстатков, ДЕНЬ) - ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
    ИНАЧЕ ВЫБОР
    КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности, 0) = 0
    ТОГДА 5
    ИНАЧЕ ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
    КОНЕЦ
    КОНЕЦ КАК Просрочка,
    ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток КАК СуммаУпр
    ПОМЕСТИТЬ ВТОстаткиПоВзаиморасчетам
    ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(
    КОНЕЦПЕРИОДА(&ДатаОстатков, ДЕНЬ),
    НЕ ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
    И ВЫБОР
    КОГДА НЕ Сделка.Дата ЕСТЬ NULL
    ТОГДА ВЫБОР
    КОГДА ЕСТЬNULL(ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности, 0) <> 0
    ТОГДА РАЗНОСТЬДАТ(Сделка.Дата, &ДатаОстатков, ДЕНЬ) > ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
    ИНАЧЕ РАЗНОСТЬДАТ(Сделка.Дата, &ДатаОстатков, ДЕНЬ) > 5
    КОНЕЦ
    КОНЕЦ) КАК ВзаиморасчетыСКонтрагентамиОстатки
    ГДЕ
    ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток > 0

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Организация,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом,
    ВЫБОР
    КОГДА ЕСТЬNULL(ВЫРАЗИТЬ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом КАК Документ.РеализацияТоваровУслуг).уе_ДопустимоеЧислоДнейЗадолженности, 0) <> 0
    ТОГДА РАЗНОСТЬДАТ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата, &ДатаОстатков, ДЕНЬ) - ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.уе_ДопустимоеЧислоДнейЗадолженности
    КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности, 0) <> 0
    ТОГДА РАЗНОСТЬДАТ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата, &ДатаОстатков, ДЕНЬ) - ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
    ИНАЧЕ РАЗНОСТЬДАТ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата, &ДатаОстатков, ДЕНЬ) - 5
    КОНЕЦ,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаРеглОстаток
    ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(
    КОНЕЦПЕРИОДА(&ДатаОстатков, ДЕНЬ),
    ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
    И ВЫБОР
    КОГДА ЕСТЬNULL(ВЫРАЗИТЬ(ДокументРасчетовСКонтрагентом КАК Документ.РеализацияТоваровУслуг).уе_ДопустимоеЧислоДнейЗадолженности, 0) <> 0
    ТОГДА РАЗНОСТЬДАТ(ДокументРасчетовСКонтрагентом.Дата, &ДатаОстатков, ДЕНЬ) > ДокументРасчетовСКонтрагентом.уе_ДопустимоеЧислоДнейЗадолженности
    ИЛИ РАЗНОСТЬДАТ(ДокументРасчетовСКонтрагентом.Дата, &ДатаОстатков, ДЕНЬ) - ДокументРасчетовСКонтрагентом.уе_ДопустимоеЧислоДнейЗадолженности <= -1
    КОГДА ЕСТЬNULL(ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности, 0) <> 0
    ТОГДА РАЗНОСТЬДАТ(ДокументРасчетовСКонтрагентом.Дата, &ДатаОстатков, ДЕНЬ) >= ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
    ИЛИ РАЗНОСТЬДАТ(ДокументРасчетовСКонтрагентом.Дата, &ДатаОстатков, ДЕНЬ) - ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности <= -1
    ИНАЧЕ РАЗНОСТЬДАТ(ДокументРасчетовСКонтрагентом.Дата, &ДатаОстатков, ДЕНЬ) > 5
    ИЛИ РАЗНОСТЬДАТ(ДокументРасчетовСКонтрагентом.Дата, &ДатаОстатков, ДЕНЬ) - 5 <= -1
    КОНЕЦ
    И УпрУчет) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки
    ГДЕ
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток > 0
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    НастройкаИнтерваловТабличнаяЧасть.НачалоИнтервала,
    НастройкаИнтерваловТабличнаяЧасть.КонецИнтервала,
    НастройкаИнтерваловТабличнаяЧасть.Подпись КАК Интервал
    ПОМЕСТИТЬ ВТИнтервалы
    ИЗ
    Справочник.НастройкаИнтервалов.ТабличнаяЧасть КАК НастройкаИнтерваловТабличнаяЧасть
    ГДЕ
    НастройкаИнтерваловТабличнаяЧасть.Ссылка.Ссылка = &НастройкаИнтервалов
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    МАКСИМУМ(ВтИнтервалы.НачалоИнтервала) КАК НачалоИнтервала
    ПОМЕСТИТЬ ВТМаксимальныйПределИнтервала
    ИЗ
    ВТИнтервалы КАК ВтИнтервалы
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТИнтервалы.НачалоИнтервала,
    ВТИнтервалы.КонецИнтервала,
    ВТИнтервалы.Интервал
    ПОМЕСТИТЬ ВТПредельныйИнтервал
    ИЗ
    ВТИнтервалы КАК ВТИнтервалы
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТМаксимальныйПределИнтервала КАК ВТМаксимальныйПределИнтервала
    ПО ВТИнтервалы.НачалоИнтервала = ВТМаксимальныйПределИнтервала.НачалоИнтервала
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТОстаткиПоВзаиморасчетам.ДоговорКонтрагента,
    ВТОстаткиПоВзаиморасчетам.Контрагент,
    ВТОстаткиПоВзаиморасчетам.Организация,
    СУММА(ВТОстаткиПоВзаиморасчетам.СуммаВзаиморасчетов) КАК СуммаВзаиморасчетов,
    ВТОстаткиПоВзаиморасчетам.ДокументРасчетовСКонтрагентом,
    ВТОстаткиПоВзаиморасчетам.Просрочка,
    ЕСТЬNULL(ВТИнтервалы.Интервал, ВТПредельныйИнтервал.Интервал) КАК Интервал,
    ЕСТЬNULL(ВТИнтервалы.НачалоИнтервала, ВТПредельныйИнтервал.НачалоИнтервала) КАК ВеличинаИнтервала,
    ВТОстаткиПоВзаиморасчетам.СуммаУпр,
    ВТОстаткиПоВзаиморасчетам.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК Валюта,
    "Просрочено" КАК Задолжность
    ПОМЕСТИТЬ ВТОсновнаяТаблица
    ИЗ
    ВТОстаткиПоВзаиморасчетам КАК ВТОстаткиПоВзаиморасчетам
    ЛЕВОЕ СОЕДИНЕНИЕ ВТПредельныйИнтервал КАК ВТПредельныйИнтервал
    ПО ВТОстаткиПоВзаиморасчетам.Просрочка > ВТПредельныйИнтервал.НачалоИнтервала
    ЛЕВОЕ СОЕДИНЕНИЕ ВТИнтервалы КАК ВТИнтервалы
    ПО (ВТОстаткиПоВзаиморасчетам.Просрочка МЕЖДУ ВТИнтервалы.КонецИнтервала И ВТИнтервалы.НачалоИнтервала)
    ГДЕ
    ВТОстаткиПоВзаиморасчетам.Просрочка >= 0

    СГРУППИРОВАТЬ ПО
    ЕСТЬNULL(ВТИнтервалы.Интервал, ВТПредельныйИнтервал.Интервал),
    ВТОстаткиПоВзаиморасчетам.Организация,
    ВТОстаткиПоВзаиморасчетам.ДоговорКонтрагента,
    ВТОстаткиПоВзаиморасчетам.ДокументРасчетовСКонтрагентом,
    ВТОстаткиПоВзаиморасчетам.Контрагент,
    ВТОстаткиПоВзаиморасчетам.Просрочка,
    ЕСТЬNULL(ВТИнтервалы.НачалоИнтервала, ВТПредельныйИнтервал.НачалоИнтервала),
    ВТОстаткиПоВзаиморасчетам.СуммаУпр,
    ВТОстаткиПоВзаиморасчетам.ДоговорКонтрагента.ВалютаВзаиморасчетов

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ВТОстаткиПоВзаиморасчетам.ДоговорКонтрагента,
    ВТОстаткиПоВзаиморасчетам.Контрагент,
    ВТОстаткиПоВзаиморасчетам.Организация,
    ВТОстаткиПоВзаиморасчетам.СуммаВзаиморасчетов,
    ВТОстаткиПоВзаиморасчетам.ДокументРасчетовСКонтрагентом,
    ВТОстаткиПоВзаиморасчетам.Просрочка,
    ВЫБОР
    КОГДА ВТОстаткиПоВзаиморасчетам.Просрочка МЕЖДУ -5 И 0
    ТОГДА "От -5 до 0"
    КОГДА ВТОстаткиПоВзаиморасчетам.Просрочка МЕЖДУ -10 И -6
    ТОГДА "От -10 до -6"
    КОГДА ВТОстаткиПоВзаиморасчетам.Просрочка МЕЖДУ -20 И -11
    ТОГДА "От -20 до -11"
    КОГДА ВТОстаткиПоВзаиморасчетам.Просрочка МЕЖДУ -30 И -21
    ТОГДА "От -30 до -21"
    КОГДА ВТОстаткиПоВзаиморасчетам.Просрочка < -30
    ТОГДА "Меньше -30"
    КОНЕЦ,
    ВЫБОР
    КОГДА ВТОстаткиПоВзаиморасчетам.Просрочка МЕЖДУ -5 И 0
    ТОГДА -5
    КОГДА ВТОстаткиПоВзаиморасчетам.Просрочка МЕЖДУ -10 И -6
    ТОГДА -10
    КОГДА ВТОстаткиПоВзаиморасчетам.Просрочка МЕЖДУ -20 И -11
    ТОГДА -20
    КОГДА ВТОстаткиПоВзаиморасчетам.Просрочка МЕЖДУ -30 И -21
    ТОГДА -30
    КОГДА ВТОстаткиПоВзаиморасчетам.Просрочка < -30
    ТОГДА -999
    КОНЕЦ,
    ВТОстаткиПоВзаиморасчетам.СуммаУпр,
    ВТОстаткиПоВзаиморасчетам.ДоговорКонтрагента.ВалютаВзаиморасчетов,
    "Непросрочено"
    ИЗ
    ВТОстаткиПоВзаиморасчетам КАК ВТОстаткиПоВзаиморасчетам
    ГДЕ
    ВТОстаткиПоВзаиморасчетам.Просрочка <= -1
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    КурсыВалютСрезПоследних.Валюта,
    КурсыВалютСрезПоследних.Курс,
    КурсыВалютСрезПоследних.Кратность
    ПОМЕСТИТЬ ВТКурсВалютСрезПоследний
    ИЗ
    РегистрСведений.КурсыВалют.СрезПоследних(КОНЕЦПЕРИОДА(&ДатаОстатков, ДЕНЬ), ) КАК КурсыВалютСрезПоследних
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТКурсВалютСрезПоследний.Валюта,
    ВТКурсВалютСрезПоследний.Курс,
    ВТКурсВалютСрезПоследний.Кратность
    ПОМЕСТИТЬ ВТКурсВалютыРеглУчета
    ИЗ
    ВТКурсВалютСрезПоследний КАК ВТКурсВалютСрезПоследний
    ГДЕ
    ВТКурсВалютСрезПоследний.Валюта = &Валюта
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТОсновнаяТаблица.ДоговорКонтрагента,
    ВТОсновнаяТаблица.Контрагент,
    ВТОсновнаяТаблица.Организация,
    ВТОсновнаяТаблица.СуммаВзаиморасчетов,
    ВТОсновнаяТаблица.ДокументРасчетовСКонтрагентом,
    ВТОсновнаяТаблица.Просрочка,
    ВТОсновнаяТаблица.Интервал,
    ВТОсновнаяТаблица.ВеличинаИнтервала,
    ВЫРАЗИТЬ(ВТОсновнаяТаблица.СуммаВзаиморасчетов * (ВТКурсВалютСрезПоследний.Курс * ВТКурсВалютСрезПоследний.Кратность / (ВТКурсВалютыРеглУчета.Курс * ВТКурсВалютыРеглУчета.Кратность)) КАК ЧИСЛО(15, 2)) КАК СуммаУпр,
    ВТОсновнаяТаблица.Валюта,
    ВТОсновнаяТаблица.Задолжность КАК Задолженность,

    ИЗ
    ВТОсновнаяТаблица КАК ВТОсновнаяТаблица
    ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсВалютСрезПоследний КАК ВТКурсВалютСрезПоследний
    ПО ВТОсновнаяТаблица.Валюта = ВТКурсВалютСрезПоследний.Валюта,
    ВТКурсВалютыРеглУчета КАК ВТКурсВалютыРеглУчета
```
---
Павел, спасибо за ответ. Прощу прощения, что не сразу ответил. Я к сожалению пока посмотрел бегло предложенный вами текст запроса, но на мой взгляд это не совсем то, что нужно. Более подробно, то что нужно я написал в (6) в ответе Виктору.
---
Дмитрий, ну вот смотрите:

в январе 1100-200 = 900 (долга нет)

февраль 1100-100-200 = 800 (долга нет)
март - 1100-100-200-0 = 800 (долга нет)
апрель 1100-100-200-0-900 = -100 появился долг 100 руб (выводится долг в периоде апрель 100 руб)

Т.е. получаем 1100 и потом цепляем к оборотам левым соединением.
---
Вот рабочий пример запроса, для большего удобства использован справочник "Настройка интервалов".

Можно и без него, нужно правильно настроить роли СКД
---
http://www.softmaker.kz/skd/nastrojka-roli-polya-skd-so-svojstvom-period-v-1s.html
---
Пока вижу два варианта: выводить данные за фиксированный период или в цикле обрабатывать результат, рассчитывать и присоединять области. Если подходит, могу выслать пример.
---
Всем доброго дня!

Большое спасибо всем за помощь.

Я решил задачу с помощью вычисляемого поля. Использовал немного другой принцип расчета Долга в вычисляемом поле.
Т.е. запрос из двух пакетов. в одном группируются данные за весь период и получается ОбщийДт. Во втором пакете происходит выборка уже по периодам с левым соединением по контрагенту.
В вычисляемом поле получаем разность ОбщегоДт и сумму(ОборотКтЗаМесяц). после чего анализируем результат и выводим соответствующие значения в отчет.

Предлагаю разделить 50$m между Павлом и Виктором. Единственно непонятно, под каждым ответом есть кнопка отдать деньги при нажатии выведется вопрос сколько перевести или переведется сразу вся сумма? :) Кто-нибудь в курсе как правильно разделить вознаграждение?
---
Деньги разделил и отправил Павлу и Виктору.

Еще раз спасибо за участие!

Вопрос закрыт.