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