Имя: Пароль:
1C
1С v8
Еще одна задачка по СКД
0 Steini
 
10.07.15
08:07
Добрый день, господа и дамы.

Программно собирается дерево значений, все ветви которого имеют либо 2 уровня вложенности, либо 3:
ГруппировкаПервогоТипа
...ГруппировкаВторогоТипа
......ГруппировкаТретьегоТипа (может быть, а может и не быть)

Нужно запихать это дерево во внешний набор данных СКД и вывести на печать в виде дерева, причем, если на одном из ветвей нету третьего уровня, то и выводить нужно только первых два уровня.

Собрать из дерева таблицу значений просто. Но тогда на печать будут выводиться все три уровня, т.е. с пустыми полями.

Идеи:
1) Использовать условное оформление: не выводить детальную запись, но выводить группировки - такой возможности нет
2) Запихать дерево во внешний набор данных СКД - нельзя
3) Собрать из дерева особый РезультатЗапроса и запихать его в наборы данных - нельзя. (Запихать можно, собрать нельзя)
4) Использовать собственный макет для детальных записей - нельзя применить условие, когда выводить, а когда - нет.

Подскажите, пожалуйста, свои идеи, как передать дерево в СКД и затем не выводить третий уровень, если его нет в дереве.
1 ukolabrother
 
10.07.15
08:58
(0) а сделать "дерево" средствами СКД почему нельзя? Можно же произвольную иерархию сделать. В интернете есть примеры.
2 Steini
 
10.07.15
09:01
(1) средствами СКД даже не представляю как. Дерево собирается очень сложно сквозь много строк нетривиального кода одной типовой конфы.
3 ukolabrother
 
10.07.15
09:03
4 Steini
 
10.07.15
09:26
(3) что-то не работает ссылка))
Но я уже сам допетрил: т.к. в моем конкретном случае третья группировка однозначно линкуется со второй, то можно создать два внешних набора данных в виде таблиц значений и соединить их уже в СКД. При этом использовать в настройках СКД группировки без детальных записей. Тогда должно получиться.

Я так понял в (3) ссылка на произвольную иерархию в СКД, если загуглить - можно найти полезную информацию, например, в http://catalog.mista.ru/public/242824/
Там также используется этот подход (соединения внешних наборов данных в СКД) хотя и для несколько другого случая.

Спасибо.