Имя: Пароль:
1C
1С v8
Левое соединение, подскажите
0 Demasiado
 
02.09.11
15:24
УТ 10.3, пиленная. Может быть то что пятница подошла, но что то я не могу сообразить почему не работает запрос. Есть спицефический справочник Торговые точки с табличной частью в которой перечень номенклатуры и соответственно типы цен. В перечене могут быть как элементы, так и группы номенклатуры. Задача, проверить не входит ли элемент номенклатуры в какую нить группу и есть ли для него цена из этой табличной части. Реализация не моя, не пинать, просто попросили с запросом помочь. В чем ошибка? Связь отрабатывает не как левое соединение, а как полное

ВЫБРАТЬ РАЗРЕШЕННЫЕ
   ТорговыеТочкиИндивидПрайс.ТиЦен,
   ТорговыеТочкиИндивидПрайс.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ВТЦеныТочки
ИЗ
   Справочник.ТорговыеТочки.ИндивидПрайс КАК ТорговыеТочкиИндивидПрайс
ГДЕ
   ТорговыеТочкиИндивидПрайс.Ссылка = &Ссылка

ИНДЕКСИРОВАТЬ ПО
   Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   СпрНоменклатура.Ссылка,
   ВТЦеныТочки.ТиЦен,
   ВТЦеныТочки.Номенклатура
ИЗ
   Справочник.Номенклатура КАК СпрНоменклатура
       Левое СОЕДИНЕНИЕ ВТЦеныТочки КАК ВТЦеныТочки
       ПО (СпрНоменклатура.Ссылка В ИЕРАРХИИ
               (ВЫБРАТЬ
                   Т.Номенклатура
               ИЗ
                   ВТценыТочки КАК Т))
ГДЕ
   СпрНоменклатура.Ссылка = &Номенклатура
1 hhhh
 
02.09.11
15:32
ну правильно, ты пишешь

ПО (СпрНоменклатура.Ссылка В ИЕРАРХИИ
               (ВЫБРАТЬ
                   Т.Номенклатура
               ИЗ
                   ВТценыТочки КАК Т))

то есть каждая номенклатура соединяется со всеми, которые есть в ВТценыТочки
2 Ненавижу 1С
 
гуру
02.09.11
15:34
(0) не взлетит иерархия в условии соединения, известный факт
3 Demasiado
 
02.09.11
15:35
Дык должна соединяться только с сама с собой или с родителями, а соединяется со всеми
4 Demasiado
 
02.09.11
15:35
(2) неужели +1 баг к платформе)))
5 hhhh
 
02.09.11
15:40
(3) где написано? Только в твоей голове. А ручками ты написал, что ко всей таблице ВТценыТочки присоединиться. И еще юморишь насчет бага.
6 Demasiado
 
02.09.11
15:45
(5) Подскажи как исправить? я правда искренне думаю что там срабатывает условие "В иерархии" по номенклатуре, а не полное соединение
7 hhhh
 
02.09.11
15:50
(6) срабатывает жестко твое условие "В иерархии". Но по какой номенклатуре иерархию ты указал?
8 hhhh
 
02.09.11
15:51
(7)+ по всей номенклатуре. Весь справочник туда присандалил.
9 Demasiado
 
02.09.11
15:59
вытащил справочник в отдельную ВТ, т к "ГДЕ" срабатывает позже объединения. и один х.й...

ВЫБРАТЬ РАЗРЕШЕННЫЕ
   ТорговыеТочкиИндивидПрайс.ТиЦен,
   ТорговыеТочкиИндивидПрайс.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ВТЦеныТочки
ИЗ
   Справочник.ТорговыеТочки.ИндивидПрайс КАК ТорговыеТочкиИндивидПрайс
ГДЕ
   ТорговыеТочкиИндивидПрайс.Ссылка = &Ссылка

ИНДЕКСИРОВАТЬ ПО
   Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ СпрНом
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.Ссылка = &Номенклатура

ИНДЕКСИРОВАТЬ ПО
   Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   СпрНом.Ссылка КАК Номенклатура,
   ВТЦеныТочки.ТиЦен
ИЗ
   СпрНом КАК СпрНом
       ВНуТРеннее СОЕДИНЕНИЕ ВТЦеныТочки КАК ВТЦеныТочки
       ПО (СпрНом.Ссылка В ИЕРАРХИИ
               (ВЫБРАТЬ
                   Т.Номенклатура.Ссылка
               ИЗ
                   ВТЦЕНЫТОЧКИ КАК Т))