Всем привет!
 Есть код:

```1c
    ПодразделениеРодитель = "Родитель";

    Для Счетчик = 1 По Ответ Цикл
    НоваяСтрока =
    "|КадроваяИсторияСотрудниковСрезПоследних.Подразделение." + ПодразделениеРодитель + " КАК Подразделение" +ПодразделениеРодитель+ ","
    +"|КадроваяИсторияСотрудниковСрезПоследних.Подразделение." + ПодразделениеРодитель + ".Код КАК Подразделение" +ПодразделениеРодитель+ "Код,"
    +"|КадроваяИсторияСотрудниковСрезПоследних.Подразделение." + ПодразделениеРодитель + ".Наименование КАК Подразделение" +ПодразделениеРодитель+ "Наименование,";

    Сообщить(НоваяСтрока); // 1 2 3 4 5
    КонецЦикла;
```

Как переписать код, что в результате было не 5 одинаковых строк как выше, а:

```1c
    | КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Код КАК ПодразделениеКод,
    | КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель КАК ПодразделениеРодитель,
    | КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Код КАК ПодразделениеРодительКод,

    | КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Наименование КАК ПодразделениеРодительНаименование,
    | КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель КАК ПодразделениеРодительРодитель,
    | КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Код КАК ПодразделениеРодительРодительКод,
    | КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Наименование КАК ПодразделениеРодительРодительНаименование,
    | КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель КАК ПодразделениеРодительРодительРодитель
    | КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Код КАК ПодразделениеРодительРодительРодительКод,
    | КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Наименование КАК ПодразделениеРодительРодительРодительНаименование,
```

и т.д. в зависимости от "Ответ"

То есть, "Родитель" прибавлялся в строке через точку столько раз, сколько переменная "Ответ".
Про запрос через точку писать не надо, знаю что страшно))) Но это будет выполняться в нерабочее время и раз в неделю.

Смысл данного запроса, вытащить столько родителей подразделений в строку табличной части, сколько есть.
---
Не пойму в чем сложность? Обычный цикл.
https://onecompiler.com/sqlite/423drapvm

(2) При использовании функции, получится цикл в цикле. Проще переменную объявить и наращивать.
```1c
    стр = ";
    Для... Цикл
    стр = ".родитель"+стр;
    текст = текст+"тили-тили"+ стр +"трали-вали";
    КонецЦикла;
```
---
То есть, "Родитель" прибавлялся в строке через точку столько раз, сколько переменная "Ответ". И в чем проблема? Всего-то, написать простейшую функцию, в которую передается переменная "Счетчик" (и, судя по приведенному образцу, строка-разделитель - или точка (при вызове до КАК), или пустая строка - после КАК):

```1c
    Функция ВсеРодители(СколькоИх, СтрТочка)
    Родители = ";
    Для Колво = 1 По СколькоИх Цикл
    Родители = Родители + СтрТочка + "Родитель";
    КонецЦикла;
    Возврат Родители;
    КонецФункции
```

и потом использовать ее приблизительно так:

```1c
    НоваяСтрока =
    "|КадроваяИсторияСотрудниковСрезПоследних.Подразделение" + ВсеРодители(Счетчик,".") + " КАК Подразделение" + ВсеРодители(Счетчик,") + ","
    +"|КадроваяИсторияСотрудниковСрезПоследних.Подразделение" + ВсеРодители(Счетчик,".") + ".Код КАК Подразделение" + ВсеРодители(Счетчик,") + "Код,"
    +"|КадроваяИсторияСотрудниковСрезПоследних.Подразделение" + ВсеРодители(Счетчик,".") + ".Наименование КАК Подразделение" + ВсеРодители(Счетчик,") + "Наименование,";
```
---
Спасибо! Но получилось без вывода всей иерархии, а только самую верхнюю:

```1c
    |КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель КАК ПодразделениеРодительРодительРодительРодительРодитель,|КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель.Код КАК ПодразделениеРодительРодительРодительРодительРодительКод,|КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель.Наименование КАК ПодразделениеРодительРодительРодительРодительРодительНаименование,
    |КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель КАК ПодразделениеРодительРодительРодительРодительРодитель,|КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель.Код КАК ПодразделениеРодительРодительРодительРодительРодительКод,|КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель.Наименование КАК ПодразделениеРодительРодительРодительРодительРодительНаимено­вание,
    |КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель КАК ПодразделениеРодительРодительРодительРодительРодитель,|КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель.Код КАК ПодразделениеРодительРодительРодительРодительРодительКод,|КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель.Наименование КАК ПодразделениеРодительРодительРодительРодительРодительНаимено­вание,
    |КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель КАК ПодразделениеРодительРодительРодительРодительРодитель,|КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель.Код КАК ПодразделениеРодительРодительРодительРодительРодительКод,|КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель.Наименование КАК ПодразделениеРодительРодительРодительРодительРодительНаимено­вание,
```
---
рекомендую начать использовать функцию СтрЗаменить(), чтоб текст более читабельным был
---
хочу получить нужный код, записать его в переменную, а потом через СтрЗаменить() вставить в запрос
---
Не пойму в чем сложность? Обычный цикл.
https://onecompiler.com/sqlite/423drapvm

(2) При использовании функции, получится цикл в цикле. Проще переменную объявить и наращивать.
```1c
    стр = ";
    Для... Цикл
    стр = ".родитель"+стр;
    текст = текст+"тили-тили"+ стр +"трали-вали";
    КонецЦикла;
```
---
Спасибо! Тут ближе к теме, но почему-то в результате идет перескок с 1 родителя сразу на 3
---
Разобрался. Все отлично! Спасибо за подсказку!!!