Имя: Пароль:
1C
1С v8
Расчет процента в запросе от общего итога (универсальный отчет)
0 ferr_ms
 
12.08.15
08:59
Есть запрос через универсальный отчет по дебиторской задолженности. Нужно рассчитать процент просроченной задолженности по группировкам от общего итога этой задолженности. Что то завис на этом месте. Какие есть варианты?
1 sash-ml
 
12.08.15
09:19
СКД это умеет делать автоматически, нажимаешь на "+" возле "сумма" при добавлении поля и выбираешь нужный %
2 ferr_ms
 
12.08.15
09:38
Отчет уже полностью готов через универсальный, не хотелось бы на СКД переделывать
3 sash-ml
 
12.08.15
09:52
универсальный который не СКДшный?
4 shuhard_серый
 
12.08.15
09:56
(0) в итогах попробуй написать сумма(...)/сумма(...)
5 sash-ml
 
12.08.15
10:03
(0) делаешь временную таблицу с одним полем одной строкой "ОбщаяЗадолженность", полное соединение по Истина

в итогах
Сумма(Задолженность)/Максимум(ОбщаяЗадолженность) как Процент
6 ferr_ms
 
12.08.15
10:14
да именно который не СКД-шный ...
(5) скорее всего не получится, будет брать максимум не по общему итогу а по одной из группировок, по контрагенту например
7 ferr_ms
 
12.08.15
10:15
могу выложить текст запроса, правда немаленький
8 ferr_ms
 
12.08.15
10:20
(5) неправильно прочитал сообщение, можно чуть конкретнее. Соединение нужно делать с главным запросом?
9 ferr_ms
 
12.08.15
10:26
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВзаиморасчетыОстаткиИОбороты.Организация КАК Организация,
    ВзаиморасчетыОстаткиИОбороты.Контрагент КАК Контрагент,
    ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
    ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ЧислоДней,
    &Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК ОбщаяЗадолженность,
    ВЫБОР
        КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) < ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
            ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
        ИНАЧЕ 0
    КОНЕЦ КАК ТекущаяЗадолженность,
    ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимаяСуммаЗадолженности КАК ГлубинаКредитнойЛинии,
    НАЧАЛОПЕРИОДА(ВзаиморасчетыОстаткиИОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
    ВЫБОР
        КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &ДатаКонца, ДЕНЬ) <= 0
                ИЛИ ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток <= 0
            ТОГДА 0
        ИНАЧЕ РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &ДатаКонца, ДЕНЬ)
    КОНЕЦ КАК просрочено,
    ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ВидВзаиморасчетов КАК ВидВзаиморасчетов,
    ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток КАК НачОстаток,
    ВЫБОР
        КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) < ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
            ТОГДА 0
        ИНАЧЕ ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
    КОНЕЦ КАК ПросроченнаяЗадолженность,
    ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДнейЗадолженности,
    ВЫБОР
        КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 1
                И РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) <= 30
            ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
        ИНАЧЕ 0
    КОНЕЦ КАК Период1_30,
    ВЫБОР
        КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 31
                И РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) <= 90
            ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
        ИНАЧЕ 0
    КОНЕЦ КАК Период31_90,
    ВЫБОР
        КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 91
                И РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) <= 180
            ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
        ИНАЧЕ 0
    КОНЕЦ КАК Период91_180,
    ВЫБОР
        КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 181
                И РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) <= 365
            ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
        ИНАЧЕ 0
    КОНЕЦ КАК Период181_365,
    ВЫБОР
        КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 366
            ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
        ИНАЧЕ 0
    КОНЕЦ КАК Период366,
    ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК КонОстаток,
    (ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток + ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) / 2 КАК СредняяДЗ,
    ВЫБОР
        КОГДА (ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток + ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) / 2 <> 0
            ТОГДА &Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток / ((ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток + ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) / 2)
        ИНАЧЕ 0
    КОНЕЦ КАК КТ_ДЗ,
    ВЫБОР
        КОГДА (ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток + ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) / 2 <> 0
                И &Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток <> 0
            ТОГДА РАЗНОСТЬДАТ(&ДатаНачала, &ДатаКонца, ДЕНЬ) / (&Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток / ((ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток + ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) / 2))
        ИНАЧЕ 0
    КОНЕЦ КАК ПогашениеДЗ
{ВЫБРАТЬ
    Организация.*,
    Контрагент.*,
    ДоговорКонтрагента.*,
    ДокументРасчетовСКонтрагентом.*,
    ЧислоДней,
    ГлубинаКредитнойЛинии,
    ОбщаяЗадолженность,
    ТекущаяЗадолженность,
    ПериодНеделя,
    просрочено,
    ВидВзаиморасчетов,
    НачОстаток,
    ВзаиморасчетыОстаткиИОбороты.Регистратор КАК Регистратор,
    ПросроченнаяЗадолженность,
    ДопустимоеЧислоДнейЗадолженности,
    Период1_30,
    Период31_90,
    Период91_180,
    Период181_365,
    Период366,
    КонОстаток,
    СредняяДЗ,
    КТ_ДЗ,
    ПогашениеДЗ}
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.ОстаткиИОбороты(
            &ДатаНач,
            &ДатаКон,
            Регистратор {(&Периодичность)},
            ДвиженияИГраницыПериода,
            ДоговорКонтрагента.ВидДоговора В (&МассивВидовДоговоров)
                И ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом = ИСТИНА {(ДоговорКонтрагента).*, (Контрагент).*, (Организация).*, (ДокументРасчетовСКонтрагентом).*}) КАК ВзаиморасчетыОстаткиИОбороты
ГДЕ
    ВзаиморасчетыОстаткиИОбороты.УпрУчет = ИСТИНА
{ГДЕ
    ВзаиморасчетыОстаткиИОбороты.Период,
    (НАЧАЛОПЕРИОДА(ВзаиморасчетыОстаткиИОбороты.Период, НЕДЕЛЯ)) КАК ПериодНеделя,
    (&Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК ОбщаяЗадолженность,
    (ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) < ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
                ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
            ИНАЧЕ 0
        КОНЕЦ) КАК ТекущаяЗадолженность,
    (ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &ДатаКонца, ДЕНЬ) <= 0
                    ИЛИ ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток <= 0
                ТОГДА 0
            ИНАЧЕ РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &ДатаКонца, ДЕНЬ)
        КОНЕЦ) КАК просрочено,
    ВзаиморасчетыОстаткиИОбороты.Регистратор КАК регистратор,
    (ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) < ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
                ТОГДА 0
            ИНАЧЕ ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
        КОНЕЦ) КАК ПросроченнаяЗадолженность,
    ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДнейЗадолженности,
    (ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) > &ДатаНач1
                    И РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) <= &ДатаКон1
                ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
            ИНАЧЕ 0
        КОНЕЦ) КАК Период1_30,
    (ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 31
                    И РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) <= 90
                ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
            ИНАЧЕ 0
        КОНЕЦ) КАК Период31_90,
    (ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 91
                    И РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) <= 180
                ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
            ИНАЧЕ 0
        КОНЕЦ) КАК Период91_180,
    (ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 181
                    И РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) <= 365
                ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
            ИНАЧЕ 0
        КОНЕЦ) КАК Период181_365,
    (ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 366
                ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
            ИНАЧЕ 0
        КОНЕЦ) КАК Период366}
{УПОРЯДОЧИТЬ ПО
    Организация.*,
    Контрагент.*,
    ДоговорКонтрагента.*,
    ДокументРасчетовСКонтрагентом.*,
    ВзаиморасчетыОстаткиИОбороты.Регистратор.*,
    (ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &ДатаКонца, ДЕНЬ) <= 0
                    ИЛИ ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток <= 0
                ТОГДА 0
            ИНАЧЕ РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &ДатаКонца, ДЕНЬ)
        КОНЕЦ) КАК просрочено,
    (&Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК ОбщаяЗадолженность,
    ВзаиморасчетыОстаткиИОбороты.Регистратор КАК регистратор,
    ТекущаяЗадолженность КАК ТекущаяЗадолженность,
    ПериодНеделя,
    ПросроченнаяЗадолженность,
    ДопустимоеЧислоДнейЗадолженности,
    Период1_30,
    Период31_90,
    Период91_180,
    Период181_365,
    Период366}
ИТОГИ
    МИНИМУМ(ЧислоДней),
    СУММА(ОбщаяЗадолженность),
    СУММА(ТекущаяЗадолженность),
    МАКСИМУМ(просрочено),
    СУММА(НачОстаток),
    СУММА(ПросроченнаяЗадолженность),
    МИНИМУМ(ДопустимоеЧислоДнейЗадолженности),
    СУММА(Период1_30),
    СУММА(Период31_90),
    СУММА(Период91_180),
    СУММА(Период181_365),
    СУММА(Период366),
    СУММА(КонОстаток),
    СУММА(СредняяДЗ),
    СУММА(КТ_ДЗ),
    СУММА(ПогашениеДЗ)
ПО
    ОБЩИЕ
{ИТОГИ ПО
    Организация,
    Контрагент,
    ДоговорКонтрагента,
    ПериодНеделя,
    ДокументРасчетовСКонтрагентом,
    ВзаиморасчетыОстаткиИОбороты.Регистратор}
АВТОУПОРЯДОЧИВАНИЕ


Нужно добавить поле "Доля (%) просроченной задолженности"
= Просроченная задолженность/Общая просроченная задолженность по отчету*100
10 sash-ml
 
12.08.15
11:10
Помести весь этот зоопарк в ВТ без итогов, в еще одну ВТ выбери сумму общей задолженности по отчету.
в результирующей выборе сделай соединение двух ВТ и напиши нормальные итоги
11 ferr_ms
 
13.08.15
03:40
У меня загвостка как во ВТ выбрать общую сумму задолженности? И как связать эти таблицы между собой
12 ferr_ms
 
13.08.15
03:47
Если я связываю обе таблицы по организации, контрагенту и прочим полям то не могу получить общий итог по таблице
13 sash-ml
 
13.08.15
10:45
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВзаиморасчетыОстаткиИОбороты.Организация КАК Организация,
    ВзаиморасчетыОстаткиИОбороты.Контрагент КАК Контрагент,
    ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
    МИНИМУМ(ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности) КАК ЧислоДней,
    СУММА(&Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК ОбщаяЗадолженность,
    СУММА(ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) < ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
                ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
            ИНАЧЕ 0
        КОНЕЦ) КАК ТекущаяЗадолженность,
    СУММА(ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимаяСуммаЗадолженности) КАК ГлубинаКредитнойЛинии,
    НАЧАЛОПЕРИОДА(ВзаиморасчетыОстаткиИОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
    СУММА(ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &ДатаКонца, ДЕНЬ) <= 0
                    ИЛИ ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток <= 0
                ТОГДА 0
            ИНАЧЕ РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &ДатаКонца, ДЕНЬ)
        КОНЕЦ) КАК просрочено,
    ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ВидВзаиморасчетов КАК ВидВзаиморасчетов,
    СУММА(ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток) КАК НачОстаток,
    МАКСИМУМ(ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) < ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
                ТОГДА 0
            ИНАЧЕ ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
        КОНЕЦ) КАК ПросроченнаяЗадолженность,
    СУММА(ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности) КАК ДопустимоеЧислоДнейЗадолженности,
    СУММА(ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 1
                    И РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) <= 30
                ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
            ИНАЧЕ 0
        КОНЕЦ) КАК Период1_30,
    МИНИМУМ(ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 31
                    И РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) <= 90
                ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
            ИНАЧЕ 0
        КОНЕЦ) КАК Период31_90,
    СУММА(ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 91
                    И РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) <= 180
                ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
            ИНАЧЕ 0
        КОНЕЦ) КАК Период91_180,
    СУММА(ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 181
                    И РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) <= 365
                ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
            ИНАЧЕ 0
        КОНЕЦ) КАК Период181_365,
    СУММА(ВЫБОР
            КОГДА РАЗНОСТЬДАТ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, &ДатаКонца, ДЕНЬ) >= 366
                ТОГДА ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
            ИНАЧЕ 0
        КОНЕЦ) КАК Период366,
    СУММА(ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК КонОстаток,
    СУММА((ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток + ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) / 2) КАК СредняяДЗ,
    СУММА(ВЫБОР
            КОГДА (ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток + ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) / 2 <> 0
                ТОГДА &Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток / ((ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток + ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) / 2)
            ИНАЧЕ 0
        КОНЕЦ) КАК КТ_ДЗ,
    СУММА(ВЫБОР
            КОГДА (ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток + ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) / 2 <> 0
                    И &Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток <> 0
                ТОГДА РАЗНОСТЬДАТ(&ДатаНачала, &ДатаКонца, ДЕНЬ) / (&Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток / ((ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток + ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) / 2))
            ИНАЧЕ 0
        КОНЕЦ) КАК ПогашениеДЗ
ПОМЕСТИТЬ ВТДетальныеДолги
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.ОстаткиИОбороты(
            &ДатаНач,
            &ДатаКон,
            Регистратор {(&Периодичность)},
            ДвиженияИГраницыПериода,
            ДоговорКонтрагента.ВидДоговора В (&МассивВидовДоговоров)
                И ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом = ИСТИНА {(ДоговорКонтрагента).*, (Контрагент).*, (Организация).*, (ДокументРасчетовСКонтрагентом).*}) КАК ВзаиморасчетыОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    ВзаиморасчетыОстаткиИОбороты.Организация,
    ВзаиморасчетыОстаткиИОбороты.Контрагент,
    ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента,
    ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом,
    НАЧАЛОПЕРИОДА(ВзаиморасчетыОстаткиИОбороты.Период, НЕДЕЛЯ),
    ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ВидВзаиморасчетов
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СУММА(ВТДетальныеДолги.ОбщаяЗадолженность) КАК ОбщаяЗадолженностьПоОтчету
ПОМЕСТИТЬ ВТСуммаПоОтчету
ИЗ
    ВТДетальныеДолги КАК ВТДетальныеДолги
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТДетальныеДолги.Организация КАК Организация,
    ВТДетальныеДолги.Контрагент КАК Контрагент,
    ВТДетальныеДолги.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ВТДетальныеДолги.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
    ВТДетальныеДолги.ЧислоДней КАК ЧислоДней,
    ВТДетальныеДолги.ОбщаяЗадолженность КАК ОбщаяЗадолженность,
    ВТДетальныеДолги.ТекущаяЗадолженность КАК ТекущаяЗадолженность,
    ВТДетальныеДолги.ГлубинаКредитнойЛинии КАК ГлубинаКредитнойЛинии,
    ВТДетальныеДолги.ПериодНеделя КАК ПериодНеделя,
    ВТДетальныеДолги.просрочено КАК просрочено,
    ВТДетальныеДолги.ВидВзаиморасчетов КАК ВидВзаиморасчетов,
    ВТДетальныеДолги.НачОстаток КАК НачОстаток,
    ВТДетальныеДолги.ПросроченнаяЗадолженность КАК ПросроченнаяЗадолженность,
    ВТДетальныеДолги.ДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДнейЗадолженности,
    ВТДетальныеДолги.Период1_30 КАК Период1_30,
    ВТДетальныеДолги.Период31_90 КАК Период31_90,
    ВТДетальныеДолги.Период91_180 КАК Период91_180,
    ВТДетальныеДолги.Период181_365 КАК Период181_365,
    ВТДетальныеДолги.Период366 КАК Период366,
    ВТДетальныеДолги.КонОстаток КАК КонОстаток,
    ВТДетальныеДолги.СредняяДЗ КАК СредняяДЗ,
    ВТДетальныеДолги.КТ_ДЗ КАК КТ_ДЗ,
    ВТДетальныеДолги.ПогашениеДЗ КАК ПогашениеДЗ,
    ВТСуммаПоОтчету.ОбщаяЗадолженностьПоОтчету КАК ОбщаяЗадолженностьПоОтчету,
    ВТДетальныеДолги.ТекущаяЗадолженность / ВТСуммаПоОтчету.ОбщаяЗадолженностьПоОтчету КАК Процент
ИЗ
    ВТДетальныеДолги КАК ВТДетальныеДолги,
    ВТСуммаПоОтчету КАК ВТСуммаПоОтчету
ИТОГИ
    СУММА(ЧислоДней),
    СУММА(ОбщаяЗадолженность),
    СУММА(ТекущаяЗадолженность),
    СУММА(ГлубинаКредитнойЛинии),
    СУММА(просрочено),
    СУММА(НачОстаток),
    СУММА(ПросроченнаяЗадолженность),
    СУММА(ДопустимоеЧислоДнейЗадолженности),
    СУММА(Период1_30),
    СУММА(Период31_90),
    СУММА(Период91_180),
    СУММА(Период181_365),
    СУММА(Период366),
    СУММА(КонОстаток),
    СУММА(СредняяДЗ),
    СУММА(КТ_ДЗ),
    СУММА(ПогашениеДЗ),
    МАКСИМУМ(ОбщаяЗадолженностьПоОтчету),
    СУММА(ТекущаяЗадолженность) / СУММА(ОбщаяЗадолженностьПоОтчету) КАК Процент
ПО
    ОБЩИЕ,
    ДокументРасчетовСКонтрагентом,
    Организация,
    ПериодНеделя,
    ДоговорКонтрагента,
    ВидВзаиморасчетов,
    Контрагент
14 ferr_ms
 
13.08.15
11:07
sash-ml спасибо попробую третий день с этим борюсь
никак суммы не идут по общей задолженности
15 Defender aka LINN
 
13.08.15
12:05
Куда бежать, когда группировки поменяются?