Имя: Пароль:
1C
 
Выборка родителей элемента в запросе
0 A 008
 
25.08.05
18:57
Видимо, все же я туповат... не могу осилить алгоритм.
Может, кто подскажет? Все очень просто - есть справочник, есть какой элемент его (параметр запроса). В выборке должны присутствовать только родители этого элемента.
1 Волшебник
 
модератор
25.08.05
19:05
Как частный случай, когда глубина иерархии ограничена:

Выбрать Различные Родитель
ИЗ
(
Выбрать Родитель
Из Справочник.Имя Где Ссылка = &Выб

ОБЪЕДИНИТЬ

Выбрать Родитель.Родитель
Из Справочник.Имя Где Ссылка = &Выб

ОБЪЕДИНИТЬ

Выбрать Родитель.Родитель.Родитель
Из Справочник.Имя Где Ссылка = &Выб

) Как Вложенный
2 A 008
 
25.08.05
19:13
Нет, в том-то и дело, что уровень элемента может быть какой угодно... и вообще, так некрасиво. Чем так, то проще и надежнее простым перебором затолкать в СЗ, да и все... Хочу заготовку сделать для других запросов... Я тут пытался сделать, используя В ИЕРАРХИИ... валится 8-ка под это дело.
Вот на таком коде валится однозначно:
ЫБРАТЬ
   Подразделения.Ссылка
ИЗ
   Справочник.Подразделения КАК Подразделения
ГДЕ
   &Подразделение В ИЕРАРХИИ
(ВЫБРАТЬ
   Родители.Ссылка
ИЗ
   Справочник.Подразделения КАК Родители
ГДЕ
   Родители.Ссылка = Подразделения.Ссылка
)
Туповато, конечно... но другое либо построитель по ошибке не дает, либо... в голову не приходит.
3 Волшебник
 
модератор
25.08.05
19:17
На практике подразделения имеют ограниченную, причем, небольшую иерархию. Даже 10 уровней хватит для самых больших корпораций.
4 Волшебник
 
модератор
25.08.05
19:19
Можно использовать не запрос, а методы ПолныйКод, ПолноеНаименование.

Еще можно использовать цикл

Родители = Новый Массив;
Тек = Элемент;
Пока НЕ Тек.Родитель.Пустая() Цикл
  Родители.Добавить(Тек.Родитель);
  Тек = Тек.Родитель;
КонецЦикла;
5 A 008
 
25.08.05
19:20
Мне не только подразделения. Есть еще развесистые склады, есть другие зависимости... не всегда логичные (УПП приходится затачивать под сеть розничных магазинов). Я не хочу привязываться к конретным уровням и количествам... Говорю же, родителей перебором получить не проблема, но хочется запросом! ;) Я тут часа два уже над этим парюсь... впечатление такое, что задача крайне простая, а решить не могу. Поэтому и запостил...
6 Asmody
 
25.08.05
19:22
ВЫБРАТЬ
   Номенклатура.Ссылка КАК Ссылка,
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.Ссылка = &Ссылка
ИТОГИ ПО
   Ссылка ИЕРАРХИЯ
7 Волшебник
 
модератор
25.08.05
19:23
(6) Умничка!
8 A 008
 
25.08.05
19:23
Кстати, "&Подразделение В ИЕРАРХИИ" нигде в описаниях не встречается. Везде наоборот. Это моя грубая ошибка или "дырка" в платформе?
9 Asmody
 
25.08.05
19:23
гы! решение задачи практической пользы не имеет :)
10 A 008
 
25.08.05
19:24
О! Спсибо, Asmody!
11 Asmody
 
25.08.05
19:25
(10) не за что. это решение практической пользы не имеет. хотя бы потому, что во вложенных запросах нельзя использовать итоги
12 A 008
 
25.08.05
19:29
Имеет... еще какое! Подразделения - олицетворение магазина. К ним привязана куча складов (по группам и еще как). При установках отбора в списках складов так изголяться приходиться... то принадлежит ли склад подразделению, то ли нет, то наоборот. Привязки указаны не везде, и выбирать нужно по ближайшему родителю.
Спасибо еще раз.