условие в запросе на пустую ссылку #219071


#0 by selenat
СделкаВзаиморасчета.Сделка - поле в запросе, принимающее значения ссылок на документы разного типа. Как правильно сделать проверку на то, что оно не пустое?
#1 by ТелепатБот
#2 by igork1966
СделкаВзаиморасчета.Сделка<>&ПустоеЗначение
#3 by megalodon
ГДЕ  СделкаВзаиморасчета.Сделка.Ссылка ЕСТЬ НЕ NULL
#4 by igork1966
NULL и пустая ссылка разные вещи.
#5 by megalodon
отловит и пустую ссылку конкретного вида, и Неопределено.
#6 by selenat
А какое значение параметра установить для ПустоеЗначение? Ссылка ведь на объект составного типа.
#7 by igork1966
Хм
#8 by Defender aka LINN
см . Прокатит. Ага, мне тоже понравилось :)
#9 by megalodon
А NULL то нафига ловить? В надо ловить или Неопределено или пустую ссылку какого либо вида.
#10 by selenat
С вариантом у меня попадают в выборку сделки с пустым значением и типом не определено. не прокатывает, поскольку не установлен параметр. Что делаю не так?
#11 by igork1966
NULL то там откуда появится? Если только у него соединение
#12 by megalodon
"С вариантом у меня попадают в выборку сделки с пустым значением и типом не определено." - м-дяя... тебе уже ничего не поможет.
#13 by megalodon
пошевели мозгой, авось доедешь.
#14 by selenat
Иду трассировщиком по выборке и вижу то, о чем написал в (10.1). Вижу пустое значение и тип не определено. Что я сделал не так?
#15 by igork1966
p://www.kb.mista.ru/article.php?id=21
#16 by igork1966
#17 by igork1966
Читай внимательно.
#18 by megalodon
текст запроса покажи
#19 by megalodon
с этим согласен. ну и что дальше?
#20 by selenat
т.е. должно быть что-то типа МассивТипов = Новый Массив; ?
#21 by igork1966
СделкаВзаиморасчета.Сделка.Ссылка ЕСТЬ НЕ NULL Ну и как это соотносится с субжем: "условие в запросе на пустую ссылку" "сделать проверку на то, что оно не пустое?" Если это запрос к одной таблице без соединения. То твое условие будет всегда истинным и для пустых ссылок на документы и непустых.
#22 by selenat
#23 by igork1966
Ну вот видишь, у него Внутреннее соединение. "СделкаВзаиморасчета.Сделка" никогда не будет NULL. Условие "СделкаВзаиморасчета.Сделка ЕСТЬ НЕ NULL" всегда Истина. ПОсему бесполезно.
#24 by megalodon
дятел ты, igork1966. Разыменовывание через точку и есть левое соединение. И если СделкаВзаиморасчета.Сделка будет или Неопределено, или пустая ссылка, то значение СделкаВзаиморасчета.Сделка.Ссылка один хрен будет NULL. Учи матчасть. ты тоже дятел. тебе сказано написать ГДЕ СделкаВзаиморасчета.Сделка.Ссылка ЕСТЬ НЕ NULL а ты написал ГДЕ СделкаВзаиморасчета.Сделка ЕСТЬ НЕ NULL
#25 by selenat
А как правильно это сделать?
#26 by selenat
(24.2) Кажется получилось. Спасибо! Щас буду более внимательно проверять...
#27 by igork1966
Блин пропустил ".Ссылка". Сорри. Однако вопрос (давно не занимался 8кой), разве так прокатит "СделкаВзаиморасчета.Сделка.Ссылка", если сделка это составной тип?
#28 by megalodon
а че бы нет то? от нефига делать.
#29 by igork1966
Блин тормознул тогда я, сорри уж полгода не занимался 8кой + да и занимался совсем немного.
#30 by megalodon
ну и ты меня прости тогда.
#31 by selenat
Еще раз спасибо, что пнул в нужную сторону.
#32 by megalodon
кстати, есть один ньюанс: битые ссылки при таком сравнении примутся за пустые. так что если это критично надо поменять.
#41 by selenat
Думаю, если битые будут - по отчетам вылезет и будем с ними индивидуально разбираться. Не такое частое явление ИМХО.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С