Имя: Пароль:
1C
 
ЕСТЬNULL В условии запроса
0 dmino
 
09.02.11
07:35
Доброго времени суток! Подскажите, правильно ли я понимаю, что:

ВЫБРАТЬ
 Спр1.Ссылка
ИЗ
 Справочник.Спр1 КАК Спр1
ГДЕ
 ЕСТЬNULL(Спр1.Параметр, 0) = &ЗначПараметр

В результат попадут все элементы, у которых Параметр = ЗначПарамет или не заполнено
1 Wobland
 
09.02.11
07:37
нет
2 а кому щас легко
 
09.02.11
07:37
неправильно, правильнее так наверно

ВЫБРАТЬ
 Спр1.Ссылка
ИЗ
 Справочник.Спр1 КАК Спр1
ГДЕ
 Спр1.Параметр = &ЗначПараметр
 ИЛИ Спр1.Параметр = &ТвояПустаяСсылка
3 Wobland
 
09.02.11
07:37
NULL не есть пустая ссылка, не есть неопределено
4 dmino
 
09.02.11
07:38
Или правильнее делать так:

ВЫБОР
 КОГДА Параметр <> &ПустоеЗнач
   ТОГДА Параметр = &Параметр
 ИНАЧЕ ИСТИНА
КОНЕЦ
5 dmino
 
09.02.11
07:39
А если значение параметр составное?
6 Рэйв
 
09.02.11
07:41
1.ВЫБРАТЬ
 Спр1.Ссылка
ИЗ
 Справочник.Спр1 КАК Спр1
ГДЕ
Спр1.Параметр, 0 = &ЗначПараметр


2.

ВЫБРАТЬ
 Спр1.Ссылка
ИЗ
 Справочник.Спр1 КАК Спр1
ГДЕ
 Спр1.Параметр Есть NULL
7 Sammo
 
09.02.11
07:42
(5) Тогда возможны следующие варианты:
1. Нормально спроектирванная структура справочника с котролем заполненности - тогда незаполненность всегда можно отловить по Неопределено.
2. Нет проверки на заполненность передзаписью - попадос - может быть неоределено, может быть пустая ссылка любого типа (либо пустая дата, 0, "" в особо извратных случаях). Тогда проверять на все.
Или бить по наглой рыжей морде и контролировать заполненность
8 dmino
 
09.02.11
09:18
(7) реквизит может быть пустым

Сделал так:

ВЫБОР
КОГДА ВЫРАЗИТЬ(Спр1.Параметр КАК Перечисление.ТипыПараметров) ЕСТЬ NULL
ИЛИ Спр1.Параметр = ЗНАЧЕНИЕ(Перечисление.ТипыПараметров.ПустаяСсылка)
ТОГДА ИСТИНА
ИНАЧЕ Спр1.Параметр = &ЗначПарам
КОНЕЦ
9 mikecool
 
09.02.11
09:25
для реквизита одного типа - сравнение с пустой ссылкой
для составного - неопределено
нул в полях может возникать только на битых данных, имхо
Ненавижу 1С может уточнить :)
10 Mitriy
 
09.02.11
09:32
(9) чего-то долго не заходит в свою любимую тему...
11 mikecool
 
09.02.11
09:34
(10) так необразованная девушка зацепила... может влюбился?
12 Ненавижу 1С
 
гуру
09.02.11
09:34
(3)(9)(10) кто вызвал поток ярости во мне с утра? ))
13 mikecool
 
09.02.11
09:34
(12) бугога
Программист всегда исправляет последнюю ошибку.