Имя: Пароль:
1C
1С v8
СКД: иерархический справочник (дубли и условие)
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
Независимо от того, куда вы едете — это в гору и против ветра!