|
Помогте с запросом - соединение по вхождению в иерархию |
☑ |
0
Puzoter
05.01.16
✎
15:32
|
Есть РС в котором перечислены подразделения. Задача - отобрать в РС только те подразделения, которые находятся в иерархии любого из перечисленных подразделений. Например в РС три записи:
Подразделение 1, подразделение 2 и подразделение 3. Подразделение 3 находится в иерархии подразделения 1, соответственно нужно выбрать только его.
|
|
1
Nuobu
05.01.16
✎
15:43
|
(0) ГДЕ Подразделение.Родитель <> Значение(Справочник.Подразделения.ПустаяСсылка)
Так подойдёт?
|
|
2
Puzoter
05.01.16
✎
15:46
|
(1) Нет, подразделения могут иметь любой уровень вложенности
|
|
3
Nuobu
05.01.16
✎
15:48
|
(2) А тебе нужна только иерархия подразделений, которые уже есть в РС?
|
|
4
Puzoter
05.01.16
✎
15:57
|
(3) Да.
|
|
5
Nuobu
05.01.16
✎
16:01
|
(4) Тогда через выбор когда:
ГДЕ
Выбор Когда Подразделение.Родитель В (вЫбрать П.Подразделение из ВТРегистр КАК П) Тогда Истина
Когда Подразделение.Родитель.Родитель В (вЫбрать П.Подразделение из ВТРегистр КАК П) Тогда Истина
Когда Подразделение.Родитель.Родитель.Родитель В (вЫбрать П.Подразделение из ВТРегистр КАК П) Тогда Истина
Иначе Ложь Конец
Ну и столько нужно раз повторить, сколько там уровней вложенности.
|
|
6
GreyK
05.01.16
✎
16:07
|
Перефразируем (1)
ГДЕ Подразделение.Родитель в ПеречисленныеПодразделения
|
|
7
RomanYS
05.01.16
✎
16:08
|
в иерархии нельзя использовать в соединениях, а в условиях можно
ВЫБРАТЬ
Спр.Ссылка
ИЗ
Справочник.ТвойСправочник КАК Спр
ГДЕ
Спр.Ссылка В ИЕРАРХИИ
(ВЫБРАТЬ ПЕРВЫЕ 1
РС.Подразделение
ИЗ
РегистрСведений.ТвойРС КАК РС)
|
|
8
Nuobu
05.01.16
✎
16:11
|
(7) Да? неожиданно, буду знать.
|
|
9
RomanYS
05.01.16
✎
16:14
|
(8) ДА!
*(7) "ПЕРВЫЕ 1" там лишнее, работает и без этого
|
|