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