Дерево значений. При выводе не срабатывает рекурсивная выборка (ПоГруппировкамСИерархией)

1. nikvik79 06.02.24 09:33 Сейчас в теме
Добрый день, никто не сталкивался с проблемой ?
Пытаюсь вывести дерево значений на УФ.
Через "консоль запросов" запрос нормально срабатывает. Выводит все вложенные данные нормально
Когда пытаюсь вывести рекурсивно на некоторых позициях не срабатывает ПоГруппировкамСИерархией,
не видит вложенных (на примере 1С Заявки - в консоле все нормально, в коде как только доходит до него, то не видит вложенное - пишет 0.

Спасибо.


Процедура ПостроитьДеревоЗадач (Исполнитель,ДатаНачала,СрокВыполнения)
	
	ЗапросЗадачиИерархия = Новый Запрос;
	ЗапросЗадачиИерархия.Текст = 
	"ВЫБРАТЬ
	|	Расш_Задачи_ИерархияЗадач.Ссылка КАК СправочникСсылка,
	|	Расш_Задачи_ИерархияЗадач.Задача КАК ЗадачаСсылка,
	|	Расш_Задачи_ИерархияЗадач.Задача.ВремяПлановое КАК ВремяПлановое,
	|	Расш_Задачи_ИерархияЗадач.СтатусЗадачи КАК СтатусЗадачи,
	|	Расш_Задачи_ИерархияЗадач.ДатаОкончания КАК ДатаОкончания,
	|	Расш_Задачи_ИерархияЗадач.ДатаНачала КАК ДатаНачала,
	|	Расш_Задачи_ИерархияЗадач.Исполнитель КАК Исполнитель,
	|	Расш_Задачи_ИерархияЗадач.Автор КАК Автор,
	|	Расш_Задачи_ИерархияЗадач.Наименование КАК Наименование,
	|	Расш_Задачи_ИерархияЗадач.Код КАК Номер
	|ИЗ
	|	Справочник.Расш_Задачи_ИерархияЗадач КАК Расш_Задачи_ИерархияЗадач
	|ГДЕ
	|	Расш_Задачи_ИерархияЗадач.Исполнитель = &Исполнитель
	|ИТОГИ
	|	СУММА(ВремяПлановое)
	|ПО
	|	СправочникСсылка ТОЛЬКО ИЕРАРХИЯ";
	
	
	ЗапросЗадачиИерархия.УстановитьПараметр("Исполнитель", Исполнитель);
	РезультатЗапроса = ЗапросЗадачиИерархия.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
	
	Дерево = Новый ДеревоЗначений; 
	Дерево = ДанныеФормыВЗначение(ДЗ,Тип("ДеревоЗначений"));
	ЗаполнитьДеревоЗадачИерархия(Дерево.Строки,Выборка);
	ЗначениеВРеквизитФормы(Дерево,"ДЗ");
КонецПроцедуры


Процедура ЗаполнитьДеревоЗадачИерархия(СтрокаДерева,ВыборкаИерархия)
	
	Если ВыборкаИерархия.Количество() = 0 Тогда
		Возврат;
	КонецЕсли; 

	Пока ВыборкаИерархия.Следующий() Цикл
		
		НоваяСтрока = СтрокаДерева.Добавить();	
		ЗаполнитьЗначенияСвойств(НоваяСтрока,ВыборкаИерархия);
	
		ВыборкаВложенныхЗадач = ВыборкаИерархия.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);	
		
		ЗаполнитьДеревоЗадачИерархия(НоваяСтрока.Строки,ВыборкаВложенныхЗадач);
	
КонецЦикла;

КонецПроцедуры




Показать
Прикрепленные файлы:
Найденные решения
2. nikvik79 07.02.24 09:48 Сейчас в теме
Спасибо, вопрос решен.
Проблема была в группировках, они разные.
При ободе нужно использовать проверку
ИерархическаяВыборка.ТипЗаписи() = ИтогПоИерархии - для верхнего уровня,
а вложенные записи по ИерархическаяВыборка.Группировка() выбирать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nikvik79 07.02.24 09:48 Сейчас в теме
Спасибо, вопрос решен.
Проблема была в группировках, они разные.
При ободе нужно использовать проверку
ИерархическаяВыборка.ТипЗаписи() = ИтогПоИерархии - для верхнего уровня,
а вложенные записи по ИерархическаяВыборка.Группировка() выбирать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот