Имя: Пароль:
1C
1С v8
Не понимаю почему запрос выводит некорректно данные
0 Виль
 
08.02.13
17:29
Отчет работает - по идее должен выводит в 1 колонку ближайший долг, а в следующие по мере возникновения... Но получается, что 1 долг поймал следующий ставит уже не долг, а сумму следующего документа... Вообщем ХЕЛП, запутался совсем



ВЫБРАТЬ РАЗЛИЧНЫЕ
   Контрагенты.Ссылка КАК Контрагент,
   ДокументыПоКонтрагенту.Ссылка КАК Ссылка,
   Сумма(ВЫБОР
           Когда (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)<=2)
                и (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)>=1)
           Тогда (Выбор
                       Когда ДокументыПоКонтрагенту.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
                       Тогда ДокументыПоКонтрагенту.Ссылка.СуммаДокумента
                       Иначе (-ДокументыПоКонтрагенту.Ссылка.СуммаДокумента)
                  Конец)
Иначе 0
Конец) Как СуммаДока1
,
   Сумма(ВЫБОР
           Когда (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)<=5)
                и (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)>=3)
           Тогда (Выбор
                       Когда ДокументыПоКонтрагенту.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
                       Тогда ДокументыПоКонтрагенту.Ссылка.СуммаДокумента
                       Иначе (-ДокументыПоКонтрагенту.Ссылка.СуммаДокумента)
                  Конец)
Иначе 0
Конец) Как СуммаДока2
,
   Сумма(ВЫБОР
           Когда (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)<=7)
                и (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)>=6)
           Тогда (Выбор
                       Когда ДокументыПоКонтрагенту.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
                       Тогда ДокументыПоКонтрагенту.Ссылка.СуммаДокумента
                       Иначе (-ДокументыПоКонтрагенту.Ссылка.СуммаДокумента)
                  Конец)
Иначе 0
Конец) Как СуммаДока3
,
   Сумма(ВЫБОР
           Когда (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)<=10)
                и (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)>=8)
           Тогда (Выбор
                       Когда ДокументыПоКонтрагенту.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
                       Тогда ДокументыПоКонтрагенту.Ссылка.СуммаДокумента
                       Иначе (-ДокументыПоКонтрагенту.Ссылка.СуммаДокумента)
                  Конец)
Иначе 0
Конец) Как СуммаДока4
,
   Сумма(ВЫБОР
           Когда (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)<=15)
                и (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)>=11)
           Тогда (Выбор
                       Когда ДокументыПоКонтрагенту.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
                       Тогда ДокументыПоКонтрагенту.Ссылка.СуммаДокумента
                       Иначе (-ДокументыПоКонтрагенту.Ссылка.СуммаДокумента)
                  Конец)
Иначе 0
Конец) Как СуммаДока5
,
   Сумма(ВЫБОР
           Когда (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)<=20)
                и (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)>=16)
           Тогда (Выбор
                       Когда ДокументыПоКонтрагенту.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
                       Тогда ДокументыПоКонтрагенту.Ссылка.СуммаДокумента
                       Иначе (-ДокументыПоКонтрагенту.Ссылка.СуммаДокумента)
                  Конец)
Иначе 0
Конец) Как СуммаДока6
,
   Сумма(ВЫБОР
           Когда (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)<=25)
                и (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)>=21)
           Тогда (Выбор
                       Когда ДокументыПоКонтрагенту.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
                       Тогда ДокументыПоКонтрагенту.Ссылка.СуммаДокумента
                       Иначе (-ДокументыПоКонтрагенту.Ссылка.СуммаДокумента)
                  Конец)
Иначе 0
Конец) Как СуммаДока7
,
   Сумма(ВЫБОР
           Когда (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)<=30)
                и (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)>=26)
           Тогда (Выбор
                       Когда ДокументыПоКонтрагенту.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
                       Тогда ДокументыПоКонтрагенту.Ссылка.СуммаДокумента
                       Иначе (-ДокументыПоКонтрагенту.Ссылка.СуммаДокумента)
                  Конец)
Иначе 0
Конец) Как СуммаДока8
,
   Сумма(ВЫБОР
           Когда (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)<=35)
                и (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)>=31)
           Тогда (Выбор
                       Когда ДокументыПоКонтрагенту.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
                       Тогда ДокументыПоКонтрагенту.Ссылка.СуммаДокумента
                       Иначе (-ДокументыПоКонтрагенту.Ссылка.СуммаДокумента)
                  Конец)
Иначе 0
Конец) Как СуммаДока9
,
   Сумма(ВЫБОР
           Когда (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)<=40)
                и (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)>=36)
           Тогда (Выбор
                       Когда ДокументыПоКонтрагенту.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
                       Тогда ДокументыПоКонтрагенту.Ссылка.СуммаДокумента
                       Иначе (-ДокументыПоКонтрагенту.Ссылка.СуммаДокумента)
                  Конец)
Иначе 0
Конец) Как СуммаДока10
,
   Сумма(ВЫБОР
           Когда (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)<=50000)
                и (РазностьДат(&ДатаТек,ДОБАВИТЬКДАТЕ(ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата,День
,21),День)>=41)
           Тогда (Выбор
                       Когда ДокументыПоКонтрагенту.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
                       Тогда ДокументыПоКонтрагенту.Ссылка.СуммаДокумента
                       Иначе (-ДокументыПоКонтрагенту.Ссылка.СуммаДокумента)
                  Конец)
Иначе 0
Конец) Как СуммаДока11
   ИЗ
   Справочник.Контрагенты КАК Контрагенты
       ЛЕВОЕ СОЕДИНЕНИЕ КритерийОтбора.ДокументыПоКонтрагенту(&Ссылка1) КАК ДокументыПоКонтрагенту
       ПО Контрагенты.Ссылка = ДокументыПоКонтрагенту.Ссылка.Контрагент
ГДЕ
   ДокументыПоКонтрагенту.Ссылка.Проведен = ИСТИНА
   И (ДокументыПоКонтрагенту.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг)
СГРУППИРОВАТЬ ПО
   Контрагенты.Ссылка,
   ДокументыПоКонтрагенту.Ссылка
УПОРЯДОЧИТЬ ПО
   ДокументыПоКонтрагенту.Ссылка.Ссылка.Дата
1 hhhh
 
08.02.13
17:35
ну вы же пишете ДокументыПоКонтрагенту.Ссылка.СуммаДокумента

он вам и выдает сумму документа. То есть запрос работает корректно.
2 Виль
 
08.02.13
17:49
Да, это правильно - попробую выразить свою мысль подробнее- мне нужна таблица, в которой будут данные о сумме документа, который выходит из глубины просрочки платежа, т.е. в первой колонке сумма всех документов, у которых (ДатаДокумента+Глубина Кредита)> 1 дня, в следующей колонке сумма всех документов, у которых (ДатаДокумента+Глубина Кредита)> 3 дня и т.д.
3 Reset
 
08.02.13
17:55
(2) А зачем тогда группировка по ДокументыПоКонтрагенту.Ссылка?

зы
про
-Ссылка.Ссылка.Дата
-в ГДЕ отбираются только реализации, а в каждом выборе еще раз проверяется ССЫЛКА
тактично молчим
4 hhhh
 
08.02.13
17:55
а зачем   ДокументыПоКонтрагенту.Ссылка КАК Ссылка,  ??

вроде не нужно по каждому документу отдельную строку.
5 Виль
 
08.02.13
18:01
А как поймать дату документа, чтобы привязать ее к интервалу?
6 hhhh
 
08.02.13
18:04
(5) ну вы поймали дату. В

 Сумма(ВЫБОР
            Когда ... и так далее.


Зачем вам строчка

ДокументыПоКонтрагенту.Ссылка КАК Ссылка,  ??

третья строчка сверху в запросе?
7 Reset
 
08.02.13
18:07
А про то, что долги по интервалам нужно из какого-нибудь РН Взаиморасчеты брать (соединяя остатки с физ таблицей или с оборотами), а не из документов, совсем молчим-молчим.
8 Виль
 
08.02.13
18:12
По ходу 50 грамм коньячку замахнуть на сон грядущий и завтра все переделать.
Всем спасибо за участие.
Слава богу неделя закончилась
Независимо от того, куда вы едете — это в гору и против ветра!