|
СКД: иерархический справочник (дубли и условие) |
☑ |
0
Айвонттубифри
22.03.21
✎
20:56
|
Есть иерархический справочник "СтруктураПредприятия" (иерархия элементов). Чтобы в СКД обойти проблему дублей (сначала выводится сам элемент, а на следующем уровне иерархии опять же он и подчиненные элементы), написала код, который выводит данные как надо (без дублей), но стоит добавить какое-либо условие (в условие или в отбор), как данные перестают вообще выводиться. Вопрос, как надо добавлять условие в СКД для иерархического справочника?
ВЫБРАТЬ РАЗЛИЧНЫЕ
СтруктураПредприятия.Родитель КАК Ссылка
ПОМЕСТИТЬ ВТ_Родители
ИЗ
Справочник.СтруктураПредприятия КАК СтруктураПредприятия
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СтруктураПредприятия.Ссылка КАК Структура
{ВЫБРАТЬ
Структура.*}
ИЗ
Справочник.СтруктураПредприятия КАК СтруктураПредприятия
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Родители КАК ВТ_Родители
ПО СтруктураПредприятия.Ссылка = ВТ_Родители.Ссылка
ГДЕ
ВТ_Родители.Ссылка ЕСТЬ NULL
{ГДЕ
СтруктураПредприятия.Ссылка.* КАК Структура}
|
|
1
Айвонттубифри
22.03.21
✎
21:17
|
+(0) Добавлю, что в настройках этого отчета на СКД всего одна группировка "Структура" с типом группировки "Иерархия".
Такой замысловатый код в (0) я сделала, поскольку иначе каждый элемент-родитель дублируется: отображается как группа и как подчиненный элемент. Но минус такого способа - не получается использовать отбор в СКД. Кто-нибудь смог побороть такую проблему, как мне выводить не весь справочник, а определенный элементы в иерархии, при этом избежать дублей?
|
|
2
Айвонттубифри
22.03.21
✎
22:20
|
Добавила условие &Ссылка, отбор не срабатывает, как это побороть???
ВЫБРАТЬ РАЗЛИЧНЫЕ
СтруктураПредприятия.Родитель КАК Ссылка
ПОМЕСТИТЬ ВТ_Родители
ИЗ
Справочник.СтруктураПредприятия КАК СтруктураПредприятия
ГДЕ
СтруктураПредприятия.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СтруктураПредприятия.Ссылка КАК Структура
{ВЫБРАТЬ
Структура.*}
ИЗ
Справочник.СтруктураПредприятия КАК СтруктураПредприятия
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Родители КАК ВТ_Родители
ПО СтруктураПредприятия.Ссылка = ВТ_Родители.Ссылка
ГДЕ
ВТ_Родители.Ссылка ЕСТЬ NULL
{ГДЕ
СтруктураПредприятия.Ссылка.* КАК Структура}
|
|
3
Айвонттубифри
23.03.21
✎
10:26
|
Up!
|
|
4
toypaul
гуру
23.03.21
✎
10:33
|
не получается какой отбор использовать
зачем добавила условие
какой отбор не срабатывает
|
|
5
toypaul
гуру
23.03.21
✎
10:35
|
в иерархии вполне себе срабатывает http://prntscr.com/10t7b8v
|
|