Имя: Пароль:
1C
1C 7.7
v7: Вывод вертикальный областей макета
0 Wefast
 
26.07.16
10:17
Хочу вывести всех родителей у элементов справочника. Но сколько этих родителей может быть я не знаю


Сейчас у меня как то так:

Элемент | Код | Родитель

Хочу чтобы родитель выводился до тех пор пока этот самый родитель не кончится.

Сейчас я делаю так
Таб.ВывестиСекцию("Шапка");

Элемент = Спр.ТекущийЭлемент();
Код = Спр.Код;
Родитель = Спр.Родитель;
Таб.ВывестиСекцию("Строка");

Хочу сделать так:
Как вывести шапку пока не знаю даже в теории

Таб.ВывестиСекцию("Строка|НеК"); // выведу ту часть строки без родителя
        
Род = ЗС.Родитель;
Сч = 0;                                            
Пока ПустоеЗначение(Род) =0 Цикл
    Родитель2=Род; //Родитель2 это выражение на макете в этой колонке.
    Таб.ПрисоединитьСекцию("Строка|Колонка");
    Род = Род.Родитель;
    Сч=Сч+1;
КОнецЦикла

Пишет Родитель2<<?>>
Переменная не определена (Родитель2)

Как вообще это Присоединить() работает. Куда там что присоединяется?
1 Ёпрст
 
26.07.16
10:23
(0)
1.Просто при выводе секции, где в выражении стоит Родитель2 в коде не определяешь переменную Родитель2 (она позжее у тебя) - отсюда и ошибка

2. присоеденить - просто присоединяет справа к выведенной секции. Если секция задана всей строкой - то "присоеденит" к новой строке.
2 Wefast
 
26.07.16
12:26
(1) 1 Так вон написано Родитель2 = Род, а потом присоединяется секция.

    Таб.ВывестиСекцию("Строка|НеК");
            
            Род = ЗС.Родитель;
            Сч = 0;                                            
            Для Счетчик = 1 По Максим-1 Цикл
                    
                Если ПустоеЗначение(Род) =0 Тогда
                    РодСтрока     = Род.Наименование;
                    КодРод        = Род.Код;
                    Таб.ПрисоединитьСекцию("Строка|Колонка");
                    Род = Род.Родитель;                    
                Иначе
                    РодСтрока = "";
                    КодРод = "";
                    Таб.ПрисоединитьСекцию("Строка|Колонка");
                КонецЕсли;

            КонецЦикла;

Сделал так и вроде все выводится как нужно.