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