Имя: Пароль:
1C
1С v8
УТ10, помогите с запросом для вычисления дней "неоплаты"
0 Минона
 
03.04.17
02:59
В УТ10 есть регистр ВзаиморасчетыСКонтрагентами

Необходимо запросом по нему за период проанализировать на сколько дней были "разрывы" по оплате отгрузок.

Например:
Реализация 1 01.03.2017 - 1000р (долг 1000р)
Реализация 2 11.03.2017 - 2000р (долг 3000р)
Оплата     1 15.03.2017 + 2000р (долг 1000р)
Оплата     2 20.03.2017 + 2000р (аванс 1000р)

т.е. с 01.03 по 20.03 был долг, значит "кредит" был в течение 20 дней.

Как запросом получить эту инфу за период, все "разрывы" и потом в СКД показать как исправно платит клиент - максимальные задержки, нарушение условий Договора и тп.
Помощь нужна с Запросом.
1 rphosts
 
03.04.17
03:06
(0) нужна помощь? - покажите то, что уже сделали и сформулируйте что не получилось
2 Минона
 
03.04.17
03:12
сделано - пяток запросов, несколько десятков веток
но возможно кто-то делал подобное, потому что надо понимать куда именно двигаться - собирать объединением или соединением.

как ловить не просто "пред. документ", а документ создавший долг.
короче много попыток, но все впустую
3 Минона
 
03.04.17
03:15
несколько десятков веток - в смысле прочитано
4 Aleksey
 
03.04.17
03:16
Взаиморасчеты ведутся по договору в целом или по документам?
Может просто посмотреть на другой регистр (ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов)
5 Минона
 
03.04.17
03:24
(4) насколько помню в
ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов
обычно полный бардак в уТ10, если не использовать спец. средства (ПАЗР)
Обычно "По договору" стоит в Договорах, но тоже по всякому (кто как ткнул кривыми ручками), поэтому отчёт будет ориентирован на Договор
6 Минона
 
03.04.17
03:35
вроде так вырисовывается,
(ещё не учтены кон. остатки, неоплата весь период - нет движений, и как в СКД с кучей группировок поведёт себя)

ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовОборот,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор,
    ВЫБОР
        КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток > 0 И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток<=0
            ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период
        ИНАЧЕ 0
    КОНЕЦ КАК ДолгПоявился
    ,ВЫБОР
        КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток <= 0 И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток>0
            ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период
        ИНАЧЕ 0
    КОНЕЦ КАК ДолгЗакрылся
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , ДоговорКонтрагента = &ДоговорКонтрагента) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
7 Antony8x
 
03.04.17
03:43
(4) Т.е. не разносятся документы оплаты. Значит только в хронологии убывания реализаций считать оплату до границы     ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
8 Antony8x
 
03.04.17
03:44
+(7) "неоплаченные реализации считать", хотел сказать
9 Минона
 
03.04.17
03:45
(7) ну думаю да
а то сначала всякие замуты с левыми соединениями и поисками пред. документов.
вроде всё проще, завтра домучаю
10 Минона
 
03.04.17
20:22

//тест
11 Минона
 
03.04.17
20:23

ВЫБРАТЬ
    Взаиморасчеты.СуммаВзаиморасчетовНачальныйОстаток,
    Взаиморасчеты.СуммаВзаиморасчетовОборот,
    Взаиморасчеты.СуммаВзаиморасчетовКонечныйОстаток,
    Взаиморасчеты.Регистратор,
    ВЫБОР
        КОГДА Взаиморасчеты.СуммаВзаиморасчетовКонечныйОстаток > 0
                И Взаиморасчеты.СуммаВзаиморасчетовНачальныйОстаток <= 0
            ТОГДА Взаиморасчеты.Период
        ИНАЧЕ 0
    КОНЕЦ КАК ДолгПоявился,
    ВЫБОР
        КОГДА Взаиморасчеты.СуммаВзаиморасчетовКонечныйОстаток <= 0
                И Взаиморасчеты.СуммаВзаиморасчетовНачальныйОстаток > 0
            ТОГДА Взаиморасчеты.Период
        ИНАЧЕ 0
    КОНЕЦ КАК ДолгЗакрылся,
    ВЫБОР
        КОГДА Взаиморасчеты.СуммаВзаиморасчетовКонечныйОстаток > 0
                И Взаиморасчеты.СуммаВзаиморасчетовНачальныйОстаток <= 0
            ТОГДА Взаиморасчеты.Регистратор
        ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ КАК ДолгПоявился_Регистратор,
    ВЫБОР
        КОГДА Взаиморасчеты.СуммаВзаиморасчетовКонечныйОстаток <= 0
                И Взаиморасчеты.СуммаВзаиморасчетовНачальныйОстаток > 0
            ТОГДА Взаиморасчеты.Регистратор
        ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ КАК ДолгЗакрылся_Регистратор
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , ДоговорКонтрагента = &ДоговорКонтрагента) КАК Взаиморасчеты
12 Минона
 
03.04.17
20:24
помогите из запроса выше получить "свёрнутые данные"
Т.е. там есть колонка "ДолгПоявился" и "ДолгЗакрылся"
а вот как получить таблицу, где они будут в одной строке? чтобы потом вычислить кол-во дней максимальное в таких парах
13 Минона
 
03.04.17
20:28
ДолгПоявился                  ДолгЗакрылся
    
Док1) 26.01.2017 13:44:53    
Док2)                          26.01.2017 23:59:59
Док3) 01.02.2017 16:24:26    
Док4)                       01.02.2017 23:59:59
14 Минона
 
03.04.17
20:29
нужно



13 - 03.04.17 - 20:28

ДолгПоявился                  ДолгЗакрылся
    
Док1) 26.01.2017 13:44:53    26.01.2017 23:59:59
Док3) 01.02.2017 16:24:26    01.02.2017 23:59:59