Имя: Пароль:
1C
1С v8
не работает естьNull
,
0 Kurbash
 
09.06.14
14:42
в таблице есть два реквизита-реквизит1 и реквизит2. Хочу поставить условие если реквизит1пустой вывожу реквизит2

ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ЕСТЬNULL(Документ.Реквизит1, Документ.Реквизит2) КАК точтонужно


не канает...
1 mikecool
 
09.06.14
14:43
потому что Документ.Реквизит1 = неопределено или пустая ссылка
2 Avganec
 
09.06.14
14:44
(0) на пустую ссылку проверяй
3 Kurbash
 
09.06.14
14:44
ага, условие в запросе как то поставить нужно?
4 vde69
 
модератор
09.06.14
14:44
мда.... а ты не думал что у тебя сам Документ есть нуул
5 Kurbash
 
09.06.14
14:44
реквизит1-это справочник.ссылка
6 Kurbash
 
09.06.14
14:45
да не, документ-это тпросто словоя написал для примера
7 vde69
 
модератор
09.06.14
14:45
ЕСТЬNULL(Документ.Реквизит1.ссылка, Документ.Реквизит2) КАК точтонужно

правда немного не красиво
8 Wern
 
09.06.14
14:46
Если реквизит это ссылка на справочник, зачем ты проверяешь его на нулл? пустая ссылка и нулл это разные вещи.
9 Maxus43
 
09.06.14
14:46
имхо автор не совсем понимает что такое Null и как он в запросе может получится
10 Kurbash
 
09.06.14
14:46
(8)а как?
11 portowyi
 
09.06.14
14:46
(3) СравниваемоеЗначение = ЗНАЧЕНИЕ(Справочник.ТвойСправочник.ПустаяСсылка).
12 mikecool
 
09.06.14
14:47
повторюсь еще раз - там может быть неопределено
13 mikecool
 
09.06.14
14:47
кастую в ветку @Ненавижу1с
14 Maxus43
 
09.06.14
14:48
если Документ.Реквизит1 это null реально, то и Документ.Реквизит2 тоже будет Null
15 Мимохожий Однако
 
09.06.14
14:49
ЕСТЬNULL(Документ.Реквизит1, ЕСТЬNULL(Документ.Реквизит2, "Облом") ) КАК точтонужно
16 Мимохожий Однако
 
09.06.14
14:49
А еще есть функция ВЫБОР
17 Timon1405
 
09.06.14
14:50
(13) Лучше накастуй ТСу на голову учебник по запросам да потяжелее
18 Maxus43
 
09.06.14
14:50
автор, что такое Null?
19 vde69
 
модератор
09.06.14
14:51
почему-бы (7) не попробовать? работает на 100%
20 Maxus43
 
09.06.14
14:53
(19) и (0) работает, но результата нет, ибо так не бывает
21 vde69
 
модератор
09.06.14
14:54
(20) бывает... для регистра 2 регистратора, в одном реквизит Договор в другом ДоговорКонтрагента
22 Maxus43
 
09.06.14
14:56
(21) что? если поля нет - будет ошибка, а не null
23 mikecool
 
09.06.14
15:00
(19) потому что смысла не имеет, и без Ссылка там будет Ссылка
24 vde69
 
модератор
09.06.14
15:00
(22)не будет ошибки, код в (7) нормально отработает...
25 vde69
 
модератор
09.06.14
15:01
(23) имеет смысл, если Документ.Реквизит1 имеет значение "неопределено" или пустаяСсылка то в Документ.Реквизит1.ссылка будет нулл
26 mikecool
 
09.06.14
15:01
автор, выполни следущий запрос
выбрать
выбор когда Документ.Реквизит1 есть null тогда "это нул, мамой клянусь"
когда Документ.Реквизит1 = Неопределено тогда "Вах, шайтан, неопределено"
когда Документ.Реквизит1 = значение(Нужный тип.ПустаяСсылка) тогда "В натуре пусто"
конец
бла-бла
27 mikecool
 
09.06.14
15:02
(25) с чего там будет нулл?
28 GROOVY
 
09.06.14
15:04
(27) Из-за неявного левого джойна.
29 Maxus43
 
09.06.14
15:05
(25)(28) ошибка будет. У Неопределено нет поля Ссылка. С пустой или битой ссылкой только это идёт
30 Maxus43
 
09.06.14
15:08
хотя может и нет...
Чума на оба ваших дома (с)
31 vde69
 
модератор
09.06.14
15:13
(29)(27) ряботает, я частенько так делаю
32 Ненавижу 1С
 
гуру
09.06.14
15:28
Хе-хе
33 Maxus43
 
09.06.14
15:29
(32) изыди)