Имя: Пароль:
1C
1С v8
Фантастически странный запрос
0 Baiji
 
30.07.24
12:41
Приветствие!

УТ 11.5.12.135
К ней пропилено расширение.
В расширении такой запрос.

Что это? Как такое можно было написать? Это какой-то автоматический генератор? Никогда не видел ничего подобного...


ПолучитьПросроченныеНакладные()
&НаСервере
Функция ПолучитьПросроченныеНакладные()
    
    Запрос       = Новый Запрос;
    Запрос.Текст = "
        |ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    Остатки.АналитикаУчетаПоПартнерам.Организация КАК Организация,
        |    Остатки.АналитикаУчетаПоПартнерам.Контрагент КАК Контрагент,
        |    Остатки.АналитикаУчетаПоПартнерам.Договор КАК ДоговорКонтрагента,
        |    &Дата КАК Край,
        |    Остатки.СуммаОстаток КАК Долг,
        |    0 КАК ПолуСумма,
        |    0 КАК Сдвиг
        |ПОМЕСТИТЬ Шаг536870912
        |ИЗ
        |    РегистрНакопления.РасчетыСКлиентами.Остатки(ДОБАВИТЬКДАТЕ(&Дата, СЕКУНДА, 1), ) КАК Остатки
        |ГДЕ
        |    Остатки.СуммаОстаток > 0
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    Обороты.АналитикаУчетаПоПартнерам.Договор КАК ДоговорКонтрагента,
        |    Обороты.Период КАК Период,
        |    СУММА(Обороты.СуммаОборот) КАК СуммаВзаиморасчетовОборот
        |ПОМЕСТИТЬ Обороты
        |ИЗ
        |    РегистрНакопления.РасчетыСКлиентами.Обороты(
        |            ,
        |            &Дата,
        |            Регистратор,
        |            АналитикаУчетаПоПартнерам.Договор В
        |                (ВЫБРАТЬ
        |                    Шаг.ДоговорКонтрагента
        |                ИЗ
        |                    Шаг536870912 КАК Шаг)) КАК Обороты
        |ГДЕ
        |    Обороты.СуммаОборот > 0
        |
        |СГРУППИРОВАТЬ ПО
        |    Обороты.АналитикаУчетаПоПартнерам.Договор,
        |    Обороты.Период
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Обороты.АналитикаУчетаПоПартнерам.Договор,
        |    Период
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг268435456
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 536870912 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 536870912 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг536870912 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг134217728
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 268435456 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 268435456 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг268435456 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг67108864
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 134217728 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 134217728 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг134217728 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг33554432
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 67108864 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 67108864 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг67108864 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг16777216
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 33554432 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 33554432 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг33554432 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг8388608
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 16777216 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 16777216 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг16777216 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг4194304
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 8388608 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 8388608 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг8388608 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг2097152
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 4194304 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 4194304 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг4194304 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг1048576
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 2097152 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 2097152 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг2097152 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг524288
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 1048576 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 1048576 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг1048576 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг262144
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 524288 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 524288 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг524288 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг131072
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 262144 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 262144 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг262144 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг65536
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 131072 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 131072 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг131072 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг32768
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 65536 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 65536 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг65536 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг16384
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 32768 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 32768 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг32768 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг8192
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 16384 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 16384 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг16384 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг4096
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 8192 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 8192 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг8192 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг2048
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 4096 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 4096 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг4096 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг1024
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 2048 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 2048 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг2048 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг512
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 1024 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 1024 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг1024 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг256
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 512 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 512 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг512 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг128
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 256 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 256 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг256 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг64
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 128 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 128 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг128 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг32
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 64 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 64 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг64 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг16
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 32 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 32 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг32 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг8
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 16 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 16 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг16 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг4
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 8 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 8 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг8 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг2
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 4 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 4 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг4 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК ПолуСумма,
        |    ВЫБОР
        |        КОГДА Шаг.Долг > ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0)
        |            ТОГДА -1
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Сдвиг
        |ПОМЕСТИТЬ Шаг1
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 2 * (Шаг.Сдвиг - 0.5) + 1) КАК Центр,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, 2 * Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг2 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период МЕЖДУ Шаг.Центр И Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Шаг.Край КАК Край,
        |    Шаг.Долг КАК Долг,
        |    ЕСТЬNULL(СУММА(Обороты.СуммаВзаиморасчетовОборот), 0) КАК Сумма
        |ПОМЕСТИТЬ Шаг0
        |ИЗ
        |    (ВЫБРАТЬ
        |        Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        Шаг.Долг + Шаг.Сдвиг * Шаг.ПолуСумма КАК Долг,
        |        ДОБАВИТЬКДАТЕ(Шаг.Край, СЕКУНДА, Шаг.Сдвиг) КАК Край
        |    ИЗ
        |        Шаг1 КАК Шаг) КАК Шаг
        |        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        |        ПО Шаг.ДоговорКонтрагента = Обороты.ДоговорКонтрагента
        |            И (Обороты.Период = Шаг.Край)
        |
        |СГРУППИРОВАТЬ ПО
        |    Шаг.ДоговорКонтрагента,
        |    Шаг.Край,
        |    Шаг.Долг
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    Шаг.ДоговорКонтрагента.Организация КАК Организация,
        |    Шаг.ДоговорКонтрагента.Контрагент КАК Контрагент,
        |    Шаг.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |    Обороты.Период КАК Период,
        |    Обороты.Регистратор КАК Регистратор,
        |    ВЫБОР
        |        КОГДА Обороты.Период = Шаг.Край
        |            ТОГДА Шаг.Долг / Шаг.Сумма
        |        ИНАЧЕ 1
        |    КОНЕЦ * Обороты.СуммаОборот КАК Долг,
        |    РАЗНОСТЬДАТ(Обороты.Период, &Дата, ДЕНЬ) КАК Долгота,
        |    Шаг.ДоговорКонтрагента.ДнейОтсрочки КАК ПредФормыел,
        |    ВЫБОР
        |        КОГДА РАЗНОСТЬДАТ(Обороты.Период, &Дата, ДЕНЬ) > Шаг.ДоговорКонтрагента.ДнейОтсрочки
        |            ТОГДА РАЗНОСТЬДАТ(Обороты.Период, &Дата, ДЕНЬ) - Шаг.ДоговорКонтрагента.ДнейОтсрочки
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Задержка,
        |    ВЫБОР
        |        КОГДА РАЗНОСТЬДАТ(Обороты.Период, &Дата, ДЕНЬ) > Шаг.ДоговорКонтрагента.ДнейОтсрочки
        |            ТОГДА ВЫБОР
        |                    КОГДА Обороты.Период = Шаг.Край
        |                        ТОГДА Шаг.Долг / Шаг.Сумма
        |                    ИНАЧЕ 1
        |                КОНЕЦ * Обороты.СуммаОборот
        |        ИНАЧЕ 0
        |    КОНЕЦ КАК Просрочено
        |ИЗ
        |    Шаг0 КАК Шаг
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентами.Обороты(
        |                ,
        |                &Дата,
        |                Регистратор,
        |                АналитикаУчетаПоПартнерам.Договор В
        |                    (ВЫБРАТЬ
        |                        Шаг.ДоговорКонтрагента
        |                    ИЗ
        |                        Шаг0 КАК Шаг)) КАК Обороты
        |        ПО (Шаг.ДоговорКонтрагента = Обороты.АналитикаУчетаПоПартнерам.Договор)
        |            И (Шаг.Край <= Обороты.Период)
        |ГДЕ
        |    Обороты.СуммаОборот > 0
        |";
    Запрос.УстановитьПараметр("Дата",КонецМесяца(Объект.МесяцНачисления));
    
    Возврат Запрос.Выполнить().Выгрузить();
    
КонецФункции
1 Волшебник
 
30.07.24
12:45
Не надо нам вот этой хуйни
2 АгентБезопасной Нацио
 
30.07.24
12:45
ищи на инфостарте по нику ildarovich (ну или по ключевым словам "метод бабаочки" или "порождающий запрос")
Ну или просто прими как данность...
3 shuhard
 
30.07.24
12:48
(0) текст запроса сгенерён в цикле, обычно это делается "на лету", но автор расширения развернул в тесте

что тут неожиданного ?
4 Волшебник
 
30.07.24
12:48
(2) Вот этот извращенец
https://infostart.ru/1c/tools/90367/
5 Baiji
 
30.07.24
12:48
(2) АгентБезопасной Нацио, Спасибо!
6 Baiji
 
30.07.24
12:53
(3) Неожиданного тут то, что в данном конкретном случае это нафиг не нужно
Там у них все проще некуда.
7 vis
 
30.07.24
12:52
(2) Кстати, применял несколько раз описанный там метод - работает хорошо и быстро.
8 Волшебник
 
30.07.24
12:58
(7) Так программировать нельзя.
9 Baiji
 
30.07.24
12:59
(8) Согласен
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.