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