Имя: Пароль:
1C
 
Соединение ПО ... В ИЕРАРХИИ (...)
0 bolobol
 
19.07.18
09:20
Доброго дня!

ЗУП, такой ЗУП...

Требуется переписать ошибку:
...ИЗ
ПодрыСГруппами ВНУТРЕННЕЕ СОЕДИНЕНИЕ Штатки
ПО ИСТИНА
ГДЕ
Штатки.Подр В ИЕРАРХИИ (ВЫБРАТЬ Подр ИЗ ПодрыСГруппами)

- получается, что всевозможные штатки соединяются со всеми подразделениями, а отношения к ним не имеют.
Исправить как:

...ИЗ
ПодрыСГруппами ВНУТРЕННЕЕ СОЕДИНЕНИЕ Штатки
ПО ПодрыСГруппами.Подр В (Штатки.Подр, Штатки.Подр.Родитель, Штатки.Подр.Родитель.Родитель... и так 10, а то и 15 уровней)

Есть как-то... правильнее что ли?
1 FIXXXL
 
19.07.18
09:27
(0) разбей на несколько запросов
первая ВТ1 Сотр - Подр
вторая ВТ Штатки.Подр В ИЕРАРХИИ (Выбрать ВТ1.Подр ИЗ ВТ1)
в третьем запросе соединяй
2 Eiffil123
 
19.07.18
09:27
сделать отдельной виртуальной таблицей все подразделения в иерархии верхнего. В запросе уже анализировать ВТ. А чем плох первый запрос с соединением по В ИЕРАРХИИ?
3 butterbean
 
19.07.18
09:28
имхо, нужно переписать запрос создающий ПодрыСГруппами чтобы там не было иерархии
4 Fragster
 
гуру
19.07.18
09:32
правильнее сделать РС с хранением иерархии, например в nested sets, и использовать для соединения его
5 bolobol
 
19.07.18
10:05
Типа так, может:

(ПодрыСГруппами.Подр, Штатки.Подр) В (
    ВЫБРАТЬ ПодрыСГРуппами.Ссылка КАК Родитель, Подры.Ссылка КАК Подр ИЗ Справочник.ПодразделенияОрганизаций КАК ПодрыСГРуппами ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК Подры
        ПО ПодрыСГРуппами.Ссылка = Подры.Родитель
    ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ Подры.Ссылка, Подры.Ссылка ИЗ Справочник.ПодразделенияОрганизаций КАК Подры
)