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