Имя: Пароль:
1C
1С v8
Условие в поле запроса не срабатывает
0 Shur1cIT
 
09.06.14
15:58
иметься условие, если в документе сделка поле "ОтсрочкаПлатежа" не заполнена то брать отсрочку из договора в поле "ДопустимоеЧислоДнейЗадолженности" прибавлять к дате доумента взаиморасчета и проверять ,если полученная дата меньше "НачПериод" то задолженность просроченная если нет то нет

вот в этом условии всегда срабатывает "ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности"
хотя в Сделке поле заполнено подскажите где я нокосячил с условием?


ВЫБОР
    КОГДА ВЫБОР
            КОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Сделка.ОтсрочкаПлатежа <> 0
                    И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Сделка.ОтсрочкаПлатежа <> NULL
                ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ), ДЕНЬ, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Сделка.ОтсрочкаПлатежа)
            ИНАЧЕ ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ), ДЕНЬ, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности)
        КОНЕЦ < &НачПериод
        ТОГДА ВЫБОР
                КОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток < 0
                    ТОГДА 0
                ИНАЧЕ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток
            КОНЕЦ
    ИНАЧЕ 0
КОНЕЦ
1 StaticUnsafe
 
09.06.14
16:10
(0) Семен Семеныч..

И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Сделка.ОтсрочкаПлатежа <> NULL

Любое сравнение с NULL возвращает Ложь

Надо писать
Не ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Сделка.ОтсрочкаПлатежа ЕСТЬ NULL
2 StaticUnsafe
 
09.06.14
16:13
вообще лучше вот так

КОГДА ISNULL(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Сделка.ОтсрочкаПлатежа,0) <> 0

и все
3 DexterMorgan
 
09.06.14
16:23
(0) лучше все же руководителем проектов иди
4 StaticUnsafe
 
09.06.14
16:25
(3) или зерно шерудить
5 Dionis Sergeevich
 
09.06.14
16:27
Чтоб не взорвалось.

Нам как раз РП нужен
6 Shur1cIT
 
09.06.14
16:33
(1) ок спасибо а почему NULL всегда возвращает ложь?
7 Lama12
 
09.06.14
16:37
(6) Так написано с священном писании ЖКК.
8 Maxus43
 
09.06.14
16:38
(6) null это отсутствие сущности. Великая пустота. Она никогда не равна другой Великой пустоте. Это не значение, это диагноз
9 Dionis Sergeevich
 
09.06.14
16:38
NULL означает отсутствие, неизвестность информации. Значение NULL не является значением в полном смысле слова: по определению оно означает отсутствие значения и не принадлежит ни одному типу данных. Поэтому NULL не равно ни логическому значению FALSE, ни пустой строке, ни нулю. При сравнении NULL с любым значением будет получен результат NULL, а не FALSE и не 0. Более того, NULL не равно NULL!
10 StaticUnsafe
 
09.06.14
16:39
(6)
1. Не NULL возращает, а операция с ним;
2. Отсутствие значение ты сравниваешь с числом. Что, по твоему , должно возвращаться? Строго говоря БД возвращает даже не Ложь а специальный тип, а платформа преобразует его к Ложь чтоб попроще было тупым адинэснегам))
3. Автор тролль или филолог по образованию?
11 Shur1cIT
 
09.06.14
16:41
ок спасибо за ликбез)
12 StaticUnsafe
 
09.06.14
16:46
(11) о сколько нам открытий чудных,
готовит просвещенья век (с) Б. Нуралиев

Может реально в РП ? не царское это дело, запросы писать
13 Shur1cIT
 
09.06.14
16:49
(12) к осени сунуться попробую
14 hhhh
 
09.06.14
17:07
(12) насколько знаю работу РП: без знания ЕСТЬNULL там делать нечего, не стоит и соваться.
15 DexterMorgan
 
09.06.14
17:12
Ну а что, можно еще вбросить: в коде же можно сравнивать с NULL
16 Dionis Sergeevich
 
09.06.14
17:28
(15) В коде это одинесный тип значения) Который равен субдшному
17 hhhh
 
09.06.14
17:33
(16) в коде нет isnull, поэтому заменили по-быстрому на "="
18 Dionis Sergeevich
 
09.06.14
17:37
значение для этого придумали отдельное просто
19 StaticUnsafe
 
09.06.14
17:45
(14) ну если это документы подписывать и делать массаж заказчику то можно и без null

а если архитектуру базы данных проектировать, высоконагруженные системы, узкие места обходить, то тут  понимание sql запросов даже на уровне гуру будет откровенно маловато.