|
Проблема с запросом | ☑ | ||
---|---|---|---|---|
0
asder117
30.09.20
✎
17:08
|
Допиливаю огроменный отчет по дебиторской задолженности
Есть кусок запроса ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента, ВзаиморасчетыСКонтрагентамиОбороты.Сделка КАК Сделка, ВзаиморасчетыСКонтрагентамиОбороты.Регистратор, ВзаиморасчетыСКонтрагентамиОбороты.Организация, ВзаиморасчетыСКонтрагентамиОбороты.Контрагент КАК Контрагент, ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаВзаиморасчетовОборот, ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетовПриход, ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход, ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрОборот КАК СуммаУпрОборот, ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрПриход КАК СуммаУпрПриход, ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрРасход КАК СуммаУпрРасход, ВЫБОР КОГДА РАЗНОСТЬДАТ(ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.Дата ИНАЧЕ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности КОНЕЦ, &КонецПериода, ДЕНЬ) > 14 И РАЗНОСТЬДАТ(ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.Дата ИНАЧЕ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности КОНЕЦ, &КонецПериода, ДЕНЬ) <= 30 И ВЫБОР КОГДА РАЗНОСТЬДАТ(ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.Дата ИНАЧЕ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности КОНЕЦ, &КонецПериода, ДЕНЬ) > 0 ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ = ИСТИНА ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход - ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход ИНАЧЕ 0 КОНЕЦ КАК От60До70Дубль2 ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(, &КонецПериода, Регистратор, ) КАК ВзаиморасчетыСКонтрагентамиОбороты ГДЕ ВзаиморасчетыСКонтрагентамиОбороты.Контрагент = &Контрагент И ВзаиморасчетыСКонтрагентамиОбороты.Сделка = &Сделка ИТОГИ СУММА(СуммаВзаиморасчетовОборот), СУММА(СуммаВзаиморасчетовПриход), СУММА(СуммаВзаиморасчетовРасход), СУММА(СуммаУпрОборот), СУММА(СуммаУпрПриход), СУММА(СуммаУпрРасход), СУММА(От60До70Дубль2) ПО Контрагент, Сделка Сразу оговорюсь это кусок большого запроса, который я выдернул в консоль. В Итогах Эта конструкция не отрабатывает "ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход - ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход" Если убрать итоги то выходят 2 строки в одной платежка как приход на 150 700 в другой реализация как расход на 31500 В итоге в поле От60До70Дубль2 он тянет 31 500 а должен тянуть 31500-150700. В платежке это поле должно быть пусто по реализации стоит 31 500 Это правильно так.как реализация приход не делает Что не так в запросе может кто подскажет. Спасибо |
|||
1
Жан Пердежон
30.09.20
✎
17:18
|
у тебя в поле От60До70Дубль2 выбор и куча условий - с ними разберись
|
|||
2
asder117
30.09.20
✎
17:24
|
(1) вот и не могу понять что не так
|
|||
3
palpetrovich
30.09.20
✎
17:27
|
проверь за 2 раза, не меняя параметров
так ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход и так ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход |
|||
4
Жан Пердежон
30.09.20
✎
17:27
|
выведи все значения все значения в отдельные колонки и увидишь
как вариант - у какого-то регистратора нет поля "ДатаПогашениеЗадолженности " |
|||
5
asder117
30.09.20
✎
17:29
|
(4) ИЛИ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности ЕСТЬ NULL и проверяет это
|
|||
6
asder117
30.09.20
✎
17:31
|
(3) В первом случае показал 31 500 во втором 0
|
|||
7
Жан Пердежон
30.09.20
✎
17:32
|
(5) в (0) этого нет
|
|||
8
palpetrovich
30.09.20
✎
17:35
|
(6) ну дык, все верно показывает, ищи где NULL получился
|
|||
9
asder117
30.09.20
✎
17:36
|
(5) ВЫБОР
КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ИЛИ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности ЕСТЬ NULL //И ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг ТОГДА ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.Дата ИНАЧЕ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности КОНЕЦ КАК ДатаПОгашения, Эта конструкция проверяет если пусто или null подставляет значение даты документа |
|||
10
asder117
30.09.20
✎
17:37
|
(8) NULL нет а 0 есть
|
|||
11
Жан Пердежон
30.09.20
✎
17:40
|
(9) и где это в запросе из (0)?
|
|||
12
asder117
30.09.20
✎
17:42
|
(11) Я это уже поправил....но проблему не решил этим
|
|||
13
Жан Пердежон
30.09.20
✎
17:48
|
ну так выведи эти четыре даты и посмотри что к чему
|
|||
14
asder117
30.09.20
✎
21:13
|
(13) Ввел и ничего особого не заметил..в одно месте пустая дата (реализация) в другом NULL в результате оператора выбор проставилась датадокумента
|
|||
15
hhhh
01.10.20
✎
00:17
|
(14) вообще-то так правильно
КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.ДатаПогашениеЗадолженности, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) и не нужно никаких ИЛИ |
|||
16
asder117
01.10.20
✎
14:10
|
(15) И зачем мне пустую дату...в той конструкции я проверяю если дата пустая или поле нет такого то берется дата документа
|
|||
17
Жан Пердежон
01.10.20
✎
14:44
|
(14) то есть ты всё равно предлагаешь нам поугадывать какие у тебя там даты и посчитать за тебя разность дат?
|
|||
18
asder117
01.10.20
✎
15:13
|
(17) У документа поле дата погашения есть но иногда ее не заполняют, у документа платежка ее нет..почему и стоит эта проверка что если пусто или NULL то брать за первую дату дату документа
|
|||
19
Жан Пердежон
01.10.20
✎
15:17
|
Просто
Выпиши Даты |
|||
20
asder117
01.10.20
✎
15:31
|
(19) Разобрался вроде спасибо..все взлетело..в поле последнем не то тянулось..Удачи всем
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |