Имя: Пароль:
1C
1С v8
Запрос в динамическом списке. Как игнорировать условие, если Параметр пустой?
,
0 minsk1s
 
18.06.15
16:32
Нужно чтобы если Параметр.МаркаАвтомобиля пустой, то выводило в запрос всё что есть!


ВЫБРАТЬ
    МатериалыЗапЧасти.Ссылка КАК Материал,
    ЕСТЬNULL(СкладОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    МатериалыЗапЧасти.ОсновнаяМаркаМашины
ИЗ
    РегистрНакопления.Склад.Остатки(, ) КАК СкладОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.МатериалыЗапЧасти КАК МатериалыЗапЧасти
        ПО (СкладОстатки.КоличествоОстаток > 0)
            И СкладОстатки.МатериалЗЧ = МатериалыЗапЧасти.Ссылка
ГДЕ
    НЕ МатериалыЗапЧасти.ЭтоГруппа
    И СкладОстатки.МаркаАвтомобиля В(&МаркаАвтомобиля)


Различные условия с пустым параметром типа &МаркаАвтомобиля= Значение(Справочник.МаркиАвтомобилей.ПустаяСсылка()) не прокатывают. Побывал завести параметр в свойствах формы и не заполнять его. Тоже вываливается ошибка...
1 shuhard_серый
 
18.06.15
16:33
(0) используй классическое или и сравнение с пустой ссылкой
2 minsk1s
 
18.06.15
16:34
(1) сравнение с пустой ссылкой - вываливается ошибка...
3 ДенисЧ
 
18.06.15
16:38
(2) если пишешь "Значение(Справочник.МаркиАвтомобилей.ПустаяСсылка())" , то радуйся, что 1с не попыталась набить тебе лицо...
4 minsk1s
 
18.06.15
16:42
(3) это я автоматом))) в запросе без кавычек писал)
5 minsk1s
 
18.06.15
16:42
привычка с семёрки
6 ДенисЧ
 
18.06.15
16:43
(5) каких кавычек?? О_о
7 shuhard_серый
 
18.06.15
16:50
(2) а ни чё. то твой код не только СКД , но и консоль запросов выкидывает с кривом "только не это" ?
8 VikingKosmo
 
18.06.15
16:52
Не, вообще сильный ход, РН левым соединением со справочником..
9 vicof
 
18.06.15
16:59
(8) Вообще-то, тут внутреннее соединение
10 Segate
 
18.06.15
17:29
"+
?(МаркаАвтомобиля <> ПустаяСсылка,  "И СкладОстатки.МаркаАвтомобиля В(&МаркаАвтомобиля)", "")+"

Как-то так например
11 Ymryn
 
18.06.15
17:32
Возможно сравнивать надо с неопределено, если это в СКД и нет ограничений по типу.
А так, я предпочитаю вариант

Выбор &МаркаАвтомобиля = Неопределено Тогда Истина Иначе СкладОстатки.МаркаАвтомобиля В(&МаркаАвтомобиля) Конец
12 Гёдза
 
18.06.15
17:42
может все-таки построитель?
13 VikingKosmo
 
18.06.15
17:46
(9) с какой стороны оно в (0) внунтренним стало?
14 D_E_S_131
 
18.06.15
17:50
Еще бы условие применить к виртуальной таблице не помешало. Хотя, судя по активности ТС, ему это все уже "фиолетово" (в парке где-нибудь пивко потягивает)...
2 + 2 = 3.9999999999999999999999999999999...