Имя: Пароль:
1C
 
СКД. Связи наборов данных. ЕСТЬ NULL
0 Zixxx
 
14.01.18
12:44
Какое условие нужно задать полю, если при связи наборов данных его значение что-то типа null

Как вариант можно задать вид сравнения Заполнено, тогда такие поля не попадают в результат
Если задать вид сравнения НеЗаполнено, то такие поля все равно не попадают в результат
В вычисляемых полях такие поля определяются как NULL
Если программно устанавливать отбор на ВидСравнения.Равно NULL, то не попадает в результат

Как правильно задать отбор чтобы получить пустые поля из связей наборов данных?
1 vicof
 
14.01.18
14:56
естьnull()
2 milan
 
14.01.18
15:24
Никак, при использовании отбора, левое соединение наборов данных заменяется на внутреннее, зачем, непонятно.
3 Лефмихалыч
 
14.01.18
15:29
(0) добавить вычисляемое поле, в котором будет
ВЫБОР КОГДА ЕСТЬ NULL тогда истина иначе ложь
и отбирать по нему
(2) это не зачем. Это запрос так работает. На любой СУБД.
4 Zixxx
 
14.01.18
16:02
(3) Нет так номер не пройдет, если есть связи наборов, то вычисляемое поле будет как представление, либо содержать значение какой-то неопределенности и в случае наложения отбора именно эта неопределенность и будет на первом месте.

Причем даже типовая расшифровка предложит такой быстрый отбор но ничего не покажет.

А вот если вычисляемое поле идет без связей наборо тогда будет работать
5 Лефмихалыч
 
14.01.18
16:19
(4) ну, да. Можно добавить в первый набор необязательное соединение именно для вычисления этого ВЫБОР КОГДА ТОГДА. Будет работать быстрее, чем все ухищрения с вычисляемыми полями, но может сбивать с толку тех, кто будет читать этот запрос через пару месяцев
6 milan
 
14.01.18
17:25
(3) что за запрос, и почему он работал по другому в ранних версиях платформы? Кажется такая же фигня в динамических списках, но могу ошибаться.
7 Лефмихалыч
 
14.01.18
17:32
(6) сравнение нула с чем угодно возвращает ложь в запросе во всех СУБД, поддерживающих join'ы.
8 milan
 
14.01.18
17:42
(6) нет, не ошибаюсь, в типовых не получится отобрать документы без присоединенных файлов, ибо джоин превращается во внутренний
9 milan
 
14.01.18
17:43
(7) в нашем примере условие проверяет нулл
10 Franchiser
 
гуру
14.01.18
22:25
Такое условие можно задать только на уровни нижележащих группировок (и детальных записей), учли использовать условие на уровне все отчета СКД применит внутренне соединение.
Другой вариант - использовать вычисляемое поле и по нему потом делать фильтр
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой