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