Имя: Пароль:
1C
1С v8
Связь таблиц в запросе + isnull
0 Марина Викторовна
 
03.06.12
15:46
Есть справочник номенклатура, есть регист сведений, в котором записана либо номенклатура, либо группа номенклатуры.
Как мне связать эти таблицы в запросе, чтобы если номенклатура есть в регистре, то бралась она сама, а если нет, то брался родитель?
(МБ задача тривиальная, звиняйте, не сображу)
написала

ВТНоменклатура КАК ВТНоменклатура
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПравилаРасчетаЦен КАК ПравилаРасчетаЦен
       ПО (ВЫБОР
               КОГДА ВТНоменклатура.Номенклатура = ПравилаРасчетаЦен.НКГруппа ЕСТЬ NULL
                   ТОГДА ВТНоменклатура.Номенклатура.Родитель = ПравилаРасчетаЦен.НКГруппа
               ИНАЧЕ ВТНоменклатура.Номенклатура = ПравилаРасчетаЦен.НКГруппа
           КОНЕЦ)

Но так не получается, выбирает только саму номенклатуру, а если ее нет, то null
1 Classic
 
03.06.12
15:52
Соединяй и по номенклатуре и по родителю, а потом уже фильтруй как тебе надо
2 kosts
 
03.06.12
16:05
(0) А так что не работает?

ПО (ВТНоменклатура.Номенклатура.Родитель = ПравилаРасчетаЦен.НКГруппа
               или ВТНоменклатура.Номенклатура = ПравилаРасчетаЦен.НКГруппа)
3 Марина Викторовна
 
03.06.12
16:10
(2) так я тоже пробовала, но выдает же и номенклатуру и группу, а хотелос бы выбрать все красиво))))
4 73
 
03.06.12
16:19
(3) Соедини дважды. На null проверяй в ВЫБРАТЬ

ВЫБРАТЬ
.....
ЕстьNULL(ПравилаРасчетаЦен1.НКГруппа, ПравилаРасчетаЦен2.НКГруппа)
......
Левое Соединение РегистрСведений.ПравилаРасчетаЦен КАК ПравилаРасчетаЦен1
По ВТНоменклатура.Номенклатура = ПравилаРасчетаЦен1.НКГруппа
Левое Соединение РегистрСведений.ПравилаРасчетаЦен КАК ПравилаРасчетаЦен2
По ВТНоменклатура.Номенклатура.Родитель = ПравилаРасчетаЦен2.НКГруппа
5 Марина Викторовна
 
03.06.12
16:31
(4) спасибо большое, все получилось!!!
6 Живой Ископаемый
 
03.06.12
18:05
2(4) оффтоп:
Июль 11-го, пару раз осенью 11, потом апрель 12 и вот сегодня... стало меньше времени?
7 73
 
03.06.12
18:15
(6) Времени меньше, головной боли - больше... Стараюсь не присесть: Миста - лучший наркотик...
8 Живой Ископаемый
 
03.06.12
18:16
похожие наверное изменения, но видимо толерантности к нему больше, чаще бываю.
9 73
 
03.06.12
18:22
(8) Я к себе не толерантен) Боюсь засосёт...
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.