Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:31

Данные по кредиторской задолженности

Автор HiVvich, 20 окт 2017, 15:36

0 Пользователей и 1 гость просматривают эту тему.

HiVvich

Всем привет. Помогите, пожалуйста, запрос не мой, но если честно не понимаю, что в нем оптимизировать, параметры вирт.таблиц указаны, поля проиндексированы. В консоли выполняется 13 секунд, пробую в отладке и на строке Запрос.Выполнить.Выгрузить зависает на часы, а сама обработка по КЗ вообще выполняется больше 8 часов, здесь я вам скидываю только один запрос по режиму формирования КЗ без документов расчета.
Весь запрос сюда не помещается, только кусками:
[code]ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента,
    СУММА(ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток) КАК СуммаВзаиморасчетовОстаток,
    ВзаиморасчетыСКонтрагентамиОстатки.Подразделение
ПОМЕСТИТЬ СуммыПоДоговору
ИЗ
    (ВЫБРАТЬ
        ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента КАК ДоговорКонтрагента,
        СУММА(ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток) КАК СуммаВзаиморасчетовОстаток,
        Y_ОтветственныеЛицаПоДоговоруСрезПоследних.ПодразделениеОрганизации КАК Подразделение
    ИЗ
        РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(
                &КонГраница,
                Организация = &Организация
                    И НЕ ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                    И НЕ ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
                    И Контрагент В ИЕРАРХИИ (&Контрагент)
                    И ДоговорКонтрагента В ИЕРАРХИИ (&ДоговорКонтрагента)) КАК ВзаиморасчетыСКонтрагентамиОстатки
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Y_ОтветственныеЛицаПоДоговору.СрезПоследних(&КонГраница, ДоговорКонтрагента.Организация = &Организация) КАК Y_ОтветственныеЛицаПоДоговоруСрезПоследних
            ПО ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента = Y_ОтветственныеЛицаПоДоговоруСрезПоследних.ДоговорКонтрагента
    ГДЕ
        ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток < 0
   
    СГРУППИРОВАТЬ ПО
        ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента,
        Y_ОтветственныеЛицаПоДоговоруСрезПоследних.ПодразделениеОрганизации) КАК ВзаиморасчетыСКонтрагентамиОстатки

СГРУППИРОВАТЬ ПО
    ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента,
    ВзаиморасчетыСКонтрагентамиОстатки.Подразделение

ИНДЕКСИРОВАТЬ ПО
    ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    Кредиторка.Контрагент КАК Контрагент,
    Кредиторка.ДоговорКонтрагента КАК ДоговорКонтрагента,
    Кредиторка.Регистратор КАК Регистратор,
    СУММА(Кредиторка.ПросроченнаяСумма * КурсыВалют.Курс / КурсыВалют.Кратность / КурсВалютыУпрУчета.Курс / КурсВалютыУпрУчета.Кратность) КАК СуммаОстаток
ПОМЕСТИТЬ Документы_Расчетов
ИЗ
    РегистрСведений.КурсыВалют.СрезПоследних(&КонГраница, Валюта = &ВалютаРегламентированногоУчета) КАК КурсВалютыУпрУчета,
    (ВЫБРАТЬ
        Остатки.ДоговорКонтрагента КАК ДоговорКонтрагента,
        Остатки.Сделка КАК Сделка,
        Остатки.Контрагент КАК Контрагент,
        Остатки.Организация КАК Организация,
        Остатки.Регистратор КАК Регистратор,
        Остатки.РасчетнаяДата КАК РасчетнаяДата,
        Остатки.ПросроченнаяСумма КАК ПросроченнаяСумма
    ИЗ
        (ВЫБРАТЬ
            Остатки0.ДоговорКонтрагента КАК ДоговорКонтрагента,
            Остатки0.Сделка КАК Сделка,
            СУММА(Остатки0.СуммаВзаиморасчетовОстаток) КАК ПолнаяСумма,
            Остатки0.ДоговорКонтрагента.Владелец КАК Контрагент,
            Остатки0.Организация КАК Организация,
            Остатки0.Регистратор КАК Регистратор,
            ВЫБОР
                КОГДА НЕ Y_ПогашениеКДЗСрезПоследних.ИспользоватьСрокОтсрочки ЕСТЬ NULL
                    ТОГДА ВЫБОР
                            КОГДА НЕ Y_ПогашениеКДЗСрезПоследних.ИспользоватьСрокОтсрочки
                                ТОГДА ВЫБОР
                                        КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
                                                ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                                                ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
                                            ТОГДА ВЫБОР
                                                    КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки > 0
                                                        ТОГДА ДОБАВИТЬКДАТЕ(Остатки0.Период, ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки)
                                                    ИНАЧЕ ВЫБОР
                                                            КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения <> &ПустаяДата
                                                                ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения
                                                            ИНАЧЕ Остатки0.Период
                                                        КОНЕЦ
                                                КОНЕЦ
                                        КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
                                                ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом)
                                            ТОГДА ВЫБОР
                                                    КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса > 0
                                                        ТОГДА ДОБАВИТЬКДАТЕ(Остатки0.Период, ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса)
                                                    ИНАЧЕ ВЫБОР
                                                            КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса <> &ПустаяДата
                                                                ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса
                                                            ИНАЧЕ Остатки0.Период
                                                        КОНЕЦ
                                                КОНЕЦ
                                    КОНЕЦ
                            ИНАЧЕ ВЫБОР
                                    КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
                                            ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                                            ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
                                        ТОГДА ВЫБОР
                                                КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки > 0
                                                    ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ), ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки)
                                                ИНАЧЕ ВЫБОР
                                                        КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения <> &ПустаяДата
                                                            ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения
                                                        ИНАЧЕ КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ)
                                                    КОНЕЦ
                                            КОНЕЦ
                                    КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
                                            ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом)
                                        ТОГДА ВЫБОР
                                                КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса > 0
                                                    ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ), ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса)
                                                ИНАЧЕ ВЫБОР
                                                        КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса <> &ПустаяДата
                                                            ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса
                                                        ИНАЧЕ КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ)
                                                    КОНЕЦ
                                            КОНЕЦ
                                КОНЕЦ
                        КОНЕЦ
                ИНАЧЕ Остатки0.Период
            КОНЕЦ КАК РасчетнаяДата,
            ВЫБОР
                КОГДА ВЫБОР
                        КОГДА НЕ Y_ПогашениеКДЗСрезПоследних.ИспользоватьСрокОтсрочки ЕСТЬ NULL
                            ТОГДА ВЫБОР
                                    КОГДА НЕ Y_ПогашениеКДЗСрезПоследних.ИспользоватьСрокОтсрочки
                                        ТОГДА ВЫБОР
                                                КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
                                                        ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                                                        ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
                                                    ТОГДА ВЫБОР
                                                            КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки > 0
                                                                ТОГДА ДОБАВИТЬКДАТЕ(Остатки0.Период, ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки)
                                                            ИНАЧЕ ВЫБОР
                                                                    КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения <> &ПустаяДата
                                                                        ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения
                                                                    ИНАЧЕ Остатки0.Период
                                                                КОНЕЦ
                                                        КОНЕЦ
                                                КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
                                                        ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом)
                                                    ТОГДА ВЫБОР
                                                            КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса > 0
                                                                ТОГДА ДОБАВИТЬКДАТЕ(Остатки0.Период, ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса)
                                                            ИНАЧЕ ВЫБОР
                                                                    КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса <> &ПустаяДата
                                                                        ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса
                                                                    ИНАЧЕ Остатки0.Период
                                                                КОНЕЦ
                                                        КОНЕЦ
                                            КОНЕЦ
                                    ИНАЧЕ ВЫБОР
                                            КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
                                                    ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                                                    ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
                                                ТОГДА ВЫБОР
                                                        КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки > 0
                                                            ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ), ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки)
                                                        ИНАЧЕ ВЫБОР
                                                                КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения <> &ПустаяДата
                                                                    ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения
                                                                ИНАЧЕ КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ)
                                                            КОНЕЦ
                                                    КОНЕЦ
                                            КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
                                                    ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом)
                                                ТОГДА ВЫБОР
                                                        КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса > 0
                                                            ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ), ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса)
                                                        ИНАЧЕ ВЫБОР
                                                                КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса <> &ПустаяДата
                                                                    ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса
                                                                ИНАЧЕ КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ)
                                                            КОНЕЦ
                                                    КОНЕЦ
                                        КОНЕЦ
                                КОНЕЦ
                        ИНАЧЕ Остатки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
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Y_ПогашениеКДЗ.СрезПоследних(
                        &КонГраница,
                        ДоговорКонтрагента В ИЕРАРХИИ (&ДоговорКонтрагента)
                            И ДоговорКонтрагента.Владелец В ИЕРАРХИИ (&Контрагент)) КАК Y_ПогашениеКДЗСрезПоследних
                ПО Остатки0.ДоговорКонтрагента = Y_ПогашениеКДЗСрезПоследних.ДоговорКонтрагента
        ГДЕ
            Остатки0.Период <= &ДатаКон
            И Остатки0.СуммаВзаиморасчетовОстаток < 0
       
        СГРУППИРОВАТЬ ПО
            Остатки0.Сделка,
            Остатки0.ДоговорКонтрагента,
            Остатки0.ДоговорКонтрагента.Владелец,
            Остатки0.Организация,
            Остатки0.Регистратор,
            ВЫБОР
                КОГДА НЕ Y_ПогашениеКДЗСрезПоследних.ИспользоватьСрокОтсрочки ЕСТЬ NULL
                    ТОГДА ВЫБОР
                            КОГДА НЕ Y_ПогашениеКДЗСрезПоследних.ИспользоватьСрокОтсрочки
                                ТОГДА ВЫБОР
                                        КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
                                                ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                                                ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
                                            ТОГДА ВЫБОР
                                                    КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки > 0
                                                        ТОГДА ДОБАВИТЬКДАТЕ(Остатки0.Период, ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки)
                                                    ИНАЧЕ ВЫБОР
                                                            КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения <> &ПустаяДата
                                                                ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения
                                                            ИНАЧЕ Остатки0.Период
                                                        КОНЕЦ
                                                КОНЕЦ
                                        КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
                                                ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом)
                                            ТОГДА ВЫБОР
                                                    КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса > 0
                                                        ТОГДА ДОБАВИТЬКДАТЕ(Остатки0.Период, ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса)
                                                    ИНАЧЕ ВЫБОР
                                                            КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса <> &ПустаяДата
                                                                ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса
                                                            ИНАЧЕ Остатки0.Период
                                                        КОНЕЦ
                                                КОНЕЦ
                                    КОНЕЦ
                            ИНАЧЕ ВЫБОР
                                    КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
                                            ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                                            ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
                                        ТОГДА ВЫБОР
                                                КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки > 0
                                                    ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ), ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки)
                                                ИНАЧЕ ВЫБОР
                                                        КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения <> &ПустаяДата
                                                            ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения
                                                        ИНАЧЕ КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ)
                                                    КОНЕЦ
                                            КОНЕЦ
                                    КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
                                            ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом)
                                        ТОГДА ВЫБОР
                                                КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса > 0
                                                    ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ), ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса)
                                                ИНАЧЕ ВЫБОР
                                                        КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса <> &ПустаяДата
                                                            ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса
                                                        ИНАЧЕ КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ)
                                                    КОНЕЦ
                                            КОНЕЦ
                                КОНЕЦ
                        КОНЕЦ
                ИНАЧЕ Остатки0.Период
            КОНЕЦ,
            ВЫБОР
                КОГДА ВЫБОР
                        КОГДА НЕ Y_ПогашениеКДЗСрезПоследних.ИспользоватьСрокОтсрочки ЕСТЬ NULL
                            ТОГДА ВЫБОР
                                    КОГДА НЕ Y_ПогашениеКДЗСрезПоследних.ИспользоватьСрокОтсрочки
                                        ТОГДА ВЫБОР
                                                КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
                                                        ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                                                        ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
                                                    ТОГДА ВЫБОР
                                                            КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки > 0
                                                                ТОГДА ДОБАВИТЬКДАТЕ(Остатки0.Период, ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки)
                                                            ИНАЧЕ ВЫБОР
                                                                    КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения <> &ПустаяДата
                                                                        ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения
                                                                    ИНАЧЕ Остатки0.Период
                                                                КОНЕЦ
                                                        КОНЕЦ
                                                КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
                                                        ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом)
                                                    ТОГДА ВЫБОР
                                                            КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса > 0
                                                                ТОГДА ДОБАВИТЬКДАТЕ(Остатки0.Период, ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса)
                                                            ИНАЧЕ ВЫБОР
                                                                    КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса <> &ПустаяДата
                                                                        ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса
                                                                    ИНАЧЕ Остатки0.Период
                                                                КОНЕЦ
                                                        КОНЕЦ
                                            КОНЕЦ
                                    ИНАЧЕ ВЫБОР
                                            КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
                                                    ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                                                    ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
                                                ТОГДА ВЫБОР
                                                        КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки > 0
                                                            ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ), ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки)
                                                        ИНАЧЕ ВЫБОР
                                                                КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения <> &ПустаяДата
                                                                    ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения
                                                                ИНАЧЕ КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ)
                                                            КОНЕЦ
                                                    КОНЕЦ
                                            КОГДА Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
                                                    ИЛИ Остатки0.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом)
                                                ТОГДА ВЫБОР
                                                        КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса > 0
                                                            ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ), ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса)
                                                        ИНАЧЕ ВЫБОР
                                                                КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса <> &ПустаяДата
                                                                    ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса
                                                                ИНАЧЕ КОНЕЦПЕРИОДА(Остатки0.Период, МЕСЯЦ)
                                                            КОНЕЦ
                                                    КОНЕЦ
                                        КОНЕЦ
                                КОНЕЦ
                        ИНАЧЕ Остатки0.Период
                    КОНЕЦ <= &ДатаКон
                    ТОГДА Остатки0.СуммаВзаиморасчетовОстаток
                ИНАЧЕ 0
            КОНЕЦ) КАК Остатки
   
    ОБЪЕДИНИТЬ ВСЕ
   
    ВЫБРАТЬ
        ОстаткиПоДок.ДоговорКонтрагента,
        ОстаткиПоДок.Сделка,
        ОстаткиПоДок.Контрагент,
        ОстаткиПоДок.Организация,
        ОстаткиПоДок.ДокументРасчетовСКонтрагентом,
        ОстаткиПоДок.РасчетнаяДата,
        ОстаткиПоДок.ПросроченнаяСумма
    ИЗ
        (ВЫБРАТЬ
            ОстаткиВзаиморасчетов.ДоговорКонтрагента КАК ДоговорКонтрагента,
            ОстаткиВзаиморасчетов.Сделка КАК Сделка,
            ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
            ОстаткиВзаиморасчетов.ВидРасчетовСКонтрагентом КАК ВидРасчетовСКонтрагентом,
            ОстаткиВзаиморасчетов.Организация КАК Организация,
            ОстаткиВзаиморасчетов.Контрагент КАК Контрагент,
            ВЫБОР
                КОГДА НЕ Y_ПогашениеКДЗСрезПоследних.ИспользоватьСрокОтсрочки ЕСТЬ NULL
                    ТОГДА ВЫБОР
                            КОГДА НЕ Y_ПогашениеКДЗСрезПоследних.ИспользоватьСрокОтсрочки
                                ТОГДА ВЫБОР
                                        КОГДА ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
                                                ИЛИ ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                                                ИЛИ ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
                                            ТОГДА ВЫБОР
                                                    КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки > 0
                                                        ТОГДА ДОБАВИТЬКДАТЕ(ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки)
                                                    ИНАЧЕ ВЫБОР
                                                            КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения <> &ПустаяДата
                                                                ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения
                                                            ИНАЧЕ ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата
                                                        КОНЕЦ
                                                КОНЕЦ
                                        КОГДА ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
                                                ИЛИ ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом)
                                            ТОГДА ВЫБОР
                                                    КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса > 0
                                                        ТОГДА ДОБАВИТЬКДАТЕ(ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса)
                                                    ИНАЧЕ ВЫБОР
                                                            КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса <> &ПустаяДата
                                                                ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса
                                                            ИНАЧЕ ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата
                                                        КОНЕЦ
                                                КОНЕЦ
                                    КОНЕЦ
                            ИНАЧЕ ВЫБОР
                                    КОГДА ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
                                            ИЛИ ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                                            ИЛИ ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
                                        ТОГДА ВЫБОР
                                                КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки > 0
                                                    ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата, МЕСЯЦ), ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки)
                                                ИНАЧЕ ВЫБОР
                                                        КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения <> &ПустаяДата
                                                            ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения
                                                        ИНАЧЕ КОНЕЦПЕРИОДА(ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата, МЕСЯЦ)
                                                    КОНЕЦ
                                            КОНЕЦ
                                    КОГДА ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
                                            ИЛИ ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом)
                                        ТОГДА ВЫБОР
                                                КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса > 0
                                                    ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата, МЕСЯЦ), ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса)
                                                ИНАЧЕ ВЫБОР
                                                        КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса <> &ПустаяДата
                                                            ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса
                                                        ИНАЧЕ КОНЕЦПЕРИОДА(ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата, МЕСЯЦ)
                                                    КОНЕЦ
                                            КОНЕЦ
                                КОНЕЦ
                        КОНЕЦ
                ИНАЧЕ ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата
            КОНЕЦ КАК РасчетнаяДата,
            СУММА(ВЫБОР
                    КОГДА ВЫБОР
                            КОГДА НЕ Y_ПогашениеКДЗСрезПоследних.ИспользоватьСрокОтсрочки ЕСТЬ NULL
                                ТОГДА ВЫБОР
                                        КОГДА НЕ Y_ПогашениеКДЗСрезПоследних.ИспользоватьСрокОтсрочки
                                            ТОГДА ВЫБОР
                                                    КОГДА ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
                                                            ИЛИ ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                                                            ИЛИ ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
                                                        ТОГДА ВЫБОР
                                                                КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки > 0
                                                                    ТОГДА ДОБАВИТЬКДАТЕ(ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки)
                                                                ИНАЧЕ ВЫБОР
                                                                        КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения <> &ПустаяДата
                                                                            ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения
                                                                        ИНАЧЕ ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата
                                                                    КОНЕЦ
                                                            КОНЕЦ
                                                    КОГДА ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
                                                            ИЛИ ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом)
                                                        ТОГДА ВЫБОР
                                                                КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса > 0
                                                                    ТОГДА ДОБАВИТЬКДАТЕ(ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочкиАванса)
                                                                ИНАЧЕ ВЫБОР
                                                                        КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса <> &ПустаяДата
                                                                            ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашенияАванса
                                                                        ИНАЧЕ ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата
                                                                    КОНЕЦ
                                                            КОНЕЦ
                                                КОНЕЦ
                                        ИНАЧЕ ВЫБОР
                                                КОГДА ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
                                                        ИЛИ ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее)
                                                        ИЛИ ОстаткиВзаиморасчетов.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
                                                    ТОГДА ВЫБОР
                                                            КОГДА Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки > 0
                                                                ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата, МЕСЯЦ), ДЕНЬ, Y_ПогашениеКДЗСрезПоследних.СрокОтсрочки)
                                                            ИНАЧЕ ВЫБОР
                                                                    КОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения <> &ПустаяДата
                                                                        ТОГДА Y_ПогашениеКДЗСрезПоследних.ПлановаяДатаПогашения
                                                                    ИНАЧЕ КОНЕЦПЕРИОДА(ОстаткиВзаиморасчетов.ДокументРасчетовСКонтрагентом.Дата, МЕСЯЦ)
                                                                КОНЕЦ
                               

HiVvich

[code]////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СчетФактураВыданныйДокументыОснования.Ссылка КАК Ссылка,
    СчетФактураВыданныйДокументыОснования.ДокументОснование КАК ДокументОснование
ПОМЕСТИТЬ СчетФактураВыданныйДокументыОснования
ИЗ
    Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования
ГДЕ
    СчетФактураВыданныйДокументыОснования.Ссылка.Проведен = ИСТИНА
    И СчетФактураВыданныйДокументыОснования.Ссылка.Дата <= &ДатаКон
    И СчетФактураВыданныйДокументыОснования.Ссылка.Организация = &Организация
    И СчетФактураВыданныйДокументыОснования.Ссылка.ДоговорКонтрагента В ИЕРАРХИИ(&ДоговорКонтрагента)
    И СчетФактураВыданныйДокументыОснования.Ссылка.Контрагент В ИЕРАРХИИ(&Контрагент)

ИНДЕКСИРОВАТЬ ПО
    Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    АвансовыйОтчетОплатаПоставщикам.ДоговорКонтрагента КАК ДоговорКонтрагента,
    АвансовыйОтчетОплатаПоставщикам.Ссылка КАК ДокументРасчетовСКонтрагентом,
    АвансовыйОтчетОплатаПоставщикам.СчетУчетаРасчетовСКонтрагентом КАК СчетУчетаРасчетовСКонтрагентом
ПОМЕСТИТЬ АвансовыйОтчетОплатаПоставщикам
ИЗ
    Документ.АвансовыйОтчет.ОплатаПоставщикам КАК АвансовыйОтчетОплатаПоставщикам
ГДЕ
    АвансовыйОтчетОплатаПоставщикам.Ссылка.Дата <= &Дата
    И АвансовыйОтчетОплатаПоставщикам.Ссылка.Проведен = ИСТИНА
    И АвансовыйОтчетОплатаПоставщикам.Ссылка.Организация = &Организация
    И АвансовыйОтчетОплатаПоставщикам.Контрагент В ИЕРАРХИИ(&Контрагент)
    И АвансовыйОтчетОплатаПоставщикам.ДоговорКонтрагента В ИЕРАРХИИ(&ДоговорКонтрагента)
    И АвансовыйОтчетОплатаПоставщикам.СчетУчетаРасчетовСКонтрагентом В ИЕРАРХИИ(&Счет)

ИНДЕКСИРОВАТЬ ПО
    ДоговорКонтрагента,
    ДокументРасчетовСКонтрагентом
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    МИНИМУМ(Y_ВыдачаСчетовФактур.ДатаВыдачи) КАК ДатаВыдачи,
    СчетФактураВыданныйДокументыОснования.ДокументОснование КАК ДокументОснование
ПОМЕСТИТЬ ВыдачаСчетовФактур
ИЗ
    РегистрСведений.Y_ВыдачаСчетовФактур КАК Y_ВыдачаСчетовФактур
        ЛЕВОЕ СОЕДИНЕНИЕ СчетФактураВыданныйДокументыОснования КАК СчетФактураВыданныйДокументыОснования
        ПО Y_ВыдачаСчетовФактур.СчетФактура = СчетФактураВыданныйДокументыОснования.Ссылка

СГРУППИРОВАТЬ ПО
    СчетФактураВыданныйДокументыОснования.ДокументОснование

ИНДЕКСИРОВАТЬ ПО
    ДокументОснование
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    АктуальныеГрафики.ДоговорКонтрагента КАК ДоговорКонтрагента,
    АктуальныеГрафики.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
    АктуальныеГрафики.ТипГрафика,
    АктуальныеГрафики.ДатаУстановки,
    АктуальныеГрафики.ВидВзаиморасчетов,
    ДанныеГрафиков.График КАК График,
    ДанныеГрафиков.СуммаСНДС,
    ДанныеГрафиков.ДатаПлатежа
ПОМЕСТИТЬ Графики
ИЗ
    (ВЫБРАТЬ
        НеСгруппировано.ДоговорКонтрагента КАК ДоговорКонтрагента,
        НеСгруппировано.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
        НеСгруппировано.ТипГрафика КАК ТипГрафика,
        МАКСИМУМ(НеСгруппировано.ДатаУстановки) КАК ДатаУстановки,
        НеСгруппировано.ВидВзаиморасчетов КАК ВидВзаиморасчетов
    ИЗ
        (ВЫБРАТЬ
            Y_ГрафикЛизинговыхПлатежейПлатежи.Ссылка.Владелец КАК ДоговорКонтрагента,
            Y_ГрафикЛизинговыхПлатежейПлатежи.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
            "ГрафикЛизинговыхПлатежей" КАК ТипГрафика,
            Y_ГрафикЛизинговыхПлатежейПлатежи.Ссылка.ДатаУстановки КАК ДатаУстановки,
            Y_ГрафикЛизинговыхПлатежейПлатежи.ВидВзаиморасчетов КАК ВидВзаиморасчетов
        ИЗ
            Справочник.Y_ГрафикЛизинговыхПлатежей.Платежи КАК Y_ГрафикЛизинговыхПлатежейПлатежи
        ГДЕ
            Y_ГрафикЛизинговыхПлатежейПлатежи.Ссылка.ПометкаУдаления = ЛОЖЬ
       
        ОБЪЕДИНИТЬ ВСЕ
       
        ВЫБРАТЬ
            Y_ГрафикПлатежейПлатежи.Ссылка.Владелец,
            Y_ГрафикПлатежейПлатежи.ДокументРасчетовСКонтрагентом,
            "ГрафикПлатежей",
            Y_ГрафикПлатежейПлатежи.Ссылка.ДатаУстановки,
            Y_ГрафикПлатежейПлатежи.ВидВзаиморасчетов
        ИЗ
            Справочник.Y_ГрафикПлатежей.Платежи КАК Y_ГрафикПлатежейПлатежи
        ГДЕ
            Y_ГрафикПлатежейПлатежи.Ссылка.ПометкаУдаления = ЛОЖЬ
       
        ОБЪЕДИНИТЬ ВСЕ
       
        ВЫБРАТЬ
            Y_ГрафикВыполненияЭтаповРаботЭтапы.Ссылка.Владелец,
            Y_ГрафикВыполненияЭтаповРаботЭтапы.ДокументРасчетовСКонтрагентом,
            "ГрафикВыполненияЭтаповРабот",
            Y_ГрафикВыполненияЭтаповРаботЭтапы.Ссылка.ДатаУстановки,
            Y_ГрафикВыполненияЭтаповРаботЭтапы.ВидВзаиморасчетов
        ИЗ
            Справочник.Y_ГрафикВыполненияЭтаповРабот.Этапы КАК Y_ГрафикВыполненияЭтаповРаботЭтапы
        ГДЕ
            Y_ГрафикВыполненияЭтаповРаботЭтапы.Ссылка.ПометкаУдаления = ЛОЖЬ) КАК НеСгруппировано
    ГДЕ
        НеСгруппировано.ДатаУстановки <= &ДатаКон
   
    СГРУППИРОВАТЬ ПО
        НеСгруппировано.ДоговорКонтрагента,
        НеСгруппировано.ДокументРасчетовСКонтрагентом,
        НеСгруппировано.ТипГрафика,
        НеСгруппировано.ВидВзаиморасчетов) КАК АктуальныеГрафики
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            Y_ГрафикЛизинговыхПлатежейПлатежи.Ссылка.Владелец КАК ДоговорКонтрагента,
            Y_ГрафикЛизинговыхПлатежейПлатежи.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
            Y_ГрафикЛизинговыхПлатежейПлатежи.Ссылка КАК График,
            "ГрафикЛизинговыхПлатежей" КАК ТипГрафика,
            Y_ГрафикЛизинговыхПлатежейПлатежи.ДатаПлатежа КАК ДатаПлатежа,
            Y_ГрафикЛизинговыхПлатежейПлатежи.СуммаСНДС КАК СуммаСНДС,
            Y_ГрафикЛизинговыхПлатежейПлатежи.Ссылка.ДатаУстановки КАК ДатаУстановки,
            Y_ГрафикЛизинговыхПлатежейПлатежи.ВидВзаиморасчетов КАК ВидВзаиморасчетов
        ИЗ
            Справочник.Y_ГрафикЛизинговыхПлатежей.Платежи КАК Y_ГрафикЛизинговыхПлатежейПлатежи
        ГДЕ
            Y_ГрафикЛизинговыхПлатежейПлатежи.Ссылка.ПометкаУдаления = ЛОЖЬ
       
        ОБЪЕДИНИТЬ ВСЕ
       
        ВЫБРАТЬ
            Y_ГрафикПлатежейПлатежи.Ссылка.Владелец,
            Y_ГрафикПлатежейПлатежи.ДокументРасчетовСКонтрагентом,
            Y_ГрафикПлатежейПлатежи.Ссылка,
            "ГрафикПлатежей",
            Y_ГрафикПлатежейПлатежи.ДатаПлатежа,
            Y_ГрафикПлатежейПлатежи.СуммаСНДС,
            Y_ГрафикПлатежейПлатежи.Ссылка.ДатаУстановки,
            Y_ГрафикПлатежейПлатежи.ВидВзаиморасчетов
        ИЗ
            Справочник.Y_ГрафикПлатежей.Платежи КАК Y_ГрафикПлатежейПлатежи
        ГДЕ
            Y_ГрафикПлатежейПлатежи.Ссылка.ПометкаУдаления = ЛОЖЬ
       
        ОБЪЕДИНИТЬ ВСЕ
       
        ВЫБРАТЬ
            Y_ГрафикВыполненияЭтаповРаботЭтапы.Ссылка.Владелец,
            Y_ГрафикВыполненияЭтаповРаботЭтапы.ДокументРасчетовСКонтрагентом,
            Y_ГрафикВыполненияЭтаповРаботЭтапы.Ссылка,
            "ГрафикВыполненияЭтаповРабот",
            Y_ГрафикВыполненияЭтаповРаботЭтапы.ДатаВыполненияЭтапа,
            Y_ГрафикВыполненияЭтаповРаботЭтапы.СуммаСНДС,
            Y_ГрафикВыполненияЭтаповРаботЭтапы.Ссылка.ДатаУстановки,
            Y_ГрафикВыполненияЭтаповРаботЭтапы.ВидВзаиморасчетов
        ИЗ
            Справочник.Y_ГрафикВыполненияЭтаповРабот.Этапы КАК Y_ГрафикВыполненияЭтаповРаботЭтапы
        ГДЕ
            Y_ГрафикВыполненияЭтаповРаботЭтапы.Ссылка.ПометкаУдаления = ЛОЖЬ) КАК ДанныеГрафиков
        ПО АктуальныеГрафики.ДоговорКонтрагента = ДанныеГрафиков.ДоговорКонтрагента
            И АктуальныеГрафики.ДокументРасчетовСКонтрагентом = ДанныеГрафиков.ДокументРасчетовСКонтрагентом
            И АктуальныеГрафики.ТипГрафика = ДанныеГрафиков.ТипГрафика
            И АктуальныеГрафики.ДатаУстановки = ДанныеГрафиков.ДатаУстановки
            И АктуальныеГрафики.ВидВзаиморасчетов = ДанныеГрафиков.ВидВзаиморасчетов

ИНДЕКСИРОВАТЬ ПО
    ДоговорКонтрагента,
    ДокументРасчетовСКонтрагентом
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ВложенныйЗапрос.ДоговорКонтрагента,
    ВложенныйЗапрос.ДокументРасчетовСКонтрагентом,
    ВложенныйЗапрос.ВидВзаиморасчетов,
    ВложенныйЗапрос.СуммаВзаиморасчетовПриход
ПОМЕСТИТЬ НачальныеСуммыПоВидамВзаиморасчетов
ИЗ
    (ВЫБРАТЬ
        ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
        ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОбороты.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
        ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОбороты.ВидВзаиморасчетов КАК ВидВзаиморасчетов,
        СУММА(ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОбороты.СуммаВзаиморасчетовПриход) КАК СуммаВзаиморасчетовПриход
    ИЗ
        РегистрНакопления.ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетов.Обороты(
                ,
                &ДатаДокум,
                Период,
                Организация = &Организация
                    И ДоговорКонтрагента В
                        (ВЫБРАТЬ
                            СуммыПоДоговору.ДоговорКонтрагента
                        ИЗ
                            СуммыПоДоговору)) КАК ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОбороты
   
    СГРУППИРОВАТЬ ПО
        ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОбороты.ДокументРасчетовСКонтрагентом,
        ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОбороты.ДоговорКонтрагента,
        ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОбороты.ВидВзаиморасчетов) КАК ВложенныйЗапрос
;

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

ИНДЕКСИРОВАТЬ ПО
    ДоговорКонтрагента,
    ДокументРасчетовСКонтрагентом
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(ВзаиморасчетыБезДаты.ДатаДокументаРасчетов, ДЕНЬ) КАК ДатаКалендаря
ПОМЕСТИТЬ ДатыДокументов
ИЗ
    ВзаиморасчетыБезДаты КАК ВзаиморасчетыБезДаты
ГДЕ
    (ВзаиморасчетыБезДаты.ОтсрочкаВБанковскихДнях
            ИЛИ ВзаиморасчетыБезДаты.ОтсрочкаАвансаВБанковскихДнях)

ИНДЕКСИРОВАТЬ ПО
    ДатаКалендаря
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря
ПОМЕСТИТЬ СледующиеДаты
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
    (РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)
            ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный))
    И РегламентированныйПроизводственныйКалендарь.ДатаКалендаря >= ДОБАВИТЬКДАТЕ(&Дата, ГОД, -4)
    И РегламентированныйПроизводственныйКалендарь.ДатаКалендаря <= ДОБАВИТЬКДАТЕ(&Дата, ГОД, 2)

ИНДЕКСИРОВАТЬ ПО
    ДатаКалендаря
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    Y_КоличестваРабочихДнейВПериодах.ДатаНачала КАК ДатаНачала,
    Y_КоличестваРабочихДнейВПериодах.ДатаКонца КАК ДатаКонца,
    Y_КоличестваРабочихДнейВПериодах.КоличествоДнейВПериоде
ПОМЕСТИТЬ ДатыОкончанияВБанковскихДнях
ИЗ
    РегистрСведений.Y_КоличестваРабочихДнейВПериодах КАК Y_КоличестваРабочихДнейВПериодах
ГДЕ
    Y_КоличестваРабочихДнейВПериодах.ДатаНачала > ДОБАВИТЬКДАТЕ(&Дата, ГОД, -4)
    И Y_КоличестваРабочихДнейВПериодах.ДатаКонца < ДОБАВИТЬКДАТЕ(&ДатаКон, ГОД, 2)

ИНДЕКСИРОВАТЬ ПО
    ДатаНачала,
    Y_КоличестваРабочихДнейВПериодах.КоличествоДнейВПериоде
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    Y_КритерииКонтрагентовСрезПоследних.Контрагент,
    Y_КритерииКонтрагентовСрезПоследних.ДоговорКонтрагента,
    Y_КритерииКонтрагентовСрезПоследних.ДокументРасчетовСКонтрагентом,
    Y_КритерииКонтрагентовСрезПоследних.КритерийКонтрагента
ПОМЕСТИТЬ КритерииКонтрагентов
ИЗ
    РегистрСведений.Y_КритерииКонтрагентов.СрезПоследних(&КонГраница, Организация = &Организация) КАК Y_КритерииКонтрагентовСрезПоследних
;

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

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОстатки.ДоговорКонтрагента,
    ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОстатки.ДокументРасчетовСКонтрагентом,
    NULL,
    ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОстатки.ВидВзаиморасчетов,
    ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОстатки.СуммаВзаиморасчетовОстаток
ИЗ
    РегистрНакопления.ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетов.Остатки(
            &ДатаСистемная,
            Организация = &Организация
                И ВидВзаиморасчетов <> ДоговорКонтрагента.ВидВзаиморасчетов
                И Контрагент В ИЕРАРХИИ (&Контрагент)
                И ДоговорКонтрагента В ИЕРАРХИИ (&ДоговорКонтрагента)) КАК ИТ_ВзаиморасчетыСКонтрагентамиПоВидамВзаиморасчетовОстатки

ИНДЕКСИРОВАТЬ ПО
    ДоговорКонтрагента,
    ДокументРасчетовСКонтрагентом,
    ВидВзаиморасчетов
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Значение КАК Значение,
    ВЫБОР
        КОГДА ЗначенияСвойствОбъектов.Объект ССЫЛКА Справочник.Контрагенты
            ТОГДА ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.Контрагенты).Ссылка
    КОНЕЦ КАК Объект
ПОМЕСТИТЬ СвойствоДебиторКредитор
ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
    ЗначенияСвойствОбъектов.Свойство = &КритерийДтКт
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Значение КАК Значение,
    ВЫБОР
        КОГДА ЗначенияСвойствОбъектов.Объект ССЫЛКА Справочник.Контрагенты
            ТОГДА ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.Контрагенты).Ссылка
    КОНЕЦ КАК Объект
ПОМЕСТИТЬ СвойствоПринадлежностьГруппеКомпаний
ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
    ЗначенияСвойствОбъектов.Свойство = &ПринадлежностьГруппеКомпаний
;

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

oleg-x

ЦитироватьВесь запрос сюда не помещается, только кусками:
заключаем код в теги, а это ужас.
Тег
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск