СКД. Связи наборов данных. ЕСТЬ NULL #811671


#0 by Zixxx
Какое условие нужно задать полю, если при связи наборов данных его значение что-то типа null Как вариант можно задать вид сравнения Заполнено, тогда такие поля не попадают в результат Если задать вид сравнения НеЗаполнено, то такие поля все равно не попадают в результат В вычисляемых полях такие поля определяются как NULL Если программно устанавливать отбор на ВидСравнения.Равно NULL, то не попадает в результат Как правильно задать отбор чтобы получить пустые поля из связей наборов данных?
#1 by vicof
естьnull
#2 by milan
Никак, при использовании отбора, левое соединение наборов данных заменяется на внутреннее, зачем, непонятно.
#3 by Лефмихалыч
добавить вычисляемое поле, в котором будет ВЫБОР КОГДА ЕСТЬ NULL тогда истина иначе ложь и отбирать по нему это не зачем. Это запрос так работает. На любой СУБД.
#4 by Zixxx
Нет так номер не пройдет, если есть связи наборов, то вычисляемое поле будет как представление, либо содержать значение какой-то неопределенности и в случае наложения отбора именно эта неопределенность и будет на первом месте. Причем даже типовая расшифровка предложит такой быстрый отбор но ничего не покажет. А вот если вычисляемое поле идет без связей наборо тогда будет работать
#5 by Лефмихалыч
ну, да. Можно добавить в первый набор необязательное соединение именно для вычисления этого ВЫБОР КОГДА ТОГДА. Будет работать быстрее, чем все ухищрения с вычисляемыми полями, но может сбивать с толку тех, кто будет читать этот запрос через пару месяцев
#6 by milan
что за запрос, и почему он работал по другому в ранних версиях платформы? Кажется такая же фигня в динамических списках, но могу ошибаться.
#7 by Лефмихалыч
сравнение нула с чем угодно возвращает ложь в запросе во всех СУБД, поддерживающих join'ы.
#8 by milan
нет, не ошибаюсь, в типовых не получится отобрать документы без присоединенных файлов, ибо джоин превращается во внутренний
#9 by milan
в нашем примере условие проверяет нулл
#10 by Franchiser
Такое условие можно задать только на уровни нижележащих группировок (и детальных записей), учли использовать условие на уровне все отчета СКД применит внутренне соединение. Другой вариант - использовать вычисляемое поле и по нему потом делать фильтр
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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