|
СКД: вывод данных с иерархией | ☑ | ||
---|---|---|---|---|
0
Stolz
20.03.13
✎
10:26
|
Доброго времени суток всем!
Пытаюсь вывести иерархические данные, используя набор данных-объект, однако никакой иерархичности не получаю. Отчего-то в результирующем табличном документе сведения выводятся в один столбец без отображения уровней иерархии. По определённым причинам нужно использовать именно набор данных-объект, поэтому привожу упрощённый фрагмент кода. Гуру СКД, ткните носом, в чём я неправ. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Ссылка |ИЗ | Справочник.Номенклатура"; ТабСведения = Запрос.Выполнить().Выгрузить(); ТекСхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных; ИсточникДанных = ТекСхемаКомпоновкиДанных.ИсточникиДанных.Добавить(); ИсточникДанных.Имя = "ИсточникДанных"; ИсточникДанных.ТипИсточникаДанных = "Local"; НаборДанныхОбъект = ТекСхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных")); НаборДанныхОбъект.Имя = "НаборДанныхОбъект"; НаборДанныхОбъект.ИмяОбъекта = "ДвиженияПоСтатьямОборотов"; НаборДанныхОбъект.ИсточникДанных = "ИсточникДанных"; ПолеНабораДанных = НаборДанныхОбъект.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНабораДанных.Поле = "Ссылка"; ПолеНабораДанных.ПутьКДанным = "Ссылка"; ТекКомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; ТекКомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ТекСхемаКомпоновкиДанных)); ТекНастройки = ТекКомпоновщикНастроек.Настройки; ТекГруппировка = ТекНастройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); ТекГруппировка.Имя = "Группировка"; ТекГруппировка.Использование = Истина; ПолеГруппировки = ТекГруппировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировки.Использование = Истина; ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Ссылка"); ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Иерархия; ВыбранныеПоля = ТекГруппировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); ВыбранныеПоля.Использование = Истина; ЭлементСортировки = ТекГруппировка.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных")); ЭлементСортировки.Использование = Истина; ТекКомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ТекПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ТекПроцессорКомпоновкиДанных.Инициализировать(ТекКомпоновщикМакета.Выполнить(ТекСхемаКомпоновкиДанных, ТекНастройки), Новый Структура("ДвиженияПоСтатьямОборотов", ТабСведения)); ТекПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ТабДокРезультатКомпоновкиДанных = Новый ТабличныйДокумент; ТекПроцессорВывода.УстановитьДокумент(ТабДокРезультатКомпоновкиДанных); ТекПроцессорВывода.Вывести(ТекПроцессорКомпоновкиДанных); ТабДокРезультатКомпоновкиДанных.Показать(); |
|||
1
Stolz
20.03.13
✎
11:01
|
Знатоки СКД, где вы? :-)
|
|||
2
mikecool
20.03.13
✎
11:05
|
у группировки выбрать тип Иерархия
|
|||
3
Stolz
20.03.13
✎
11:22
|
(2) Это как? Там, вроде бы, уже указано:
ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Иерархия; |
|||
4
Stolz
20.03.13
✎
12:12
|
"И - тишинааа..." (C)
:-( |
|||
5
mistеr
20.03.13
✎
12:33
|
(0) Если не ошибаюсь, группировка с иерархией реализуется добавлением еще одного соединения в окончательный запрос. А так как для источника-объекта запросов не делается, то сам понимаешь.
Добавь в свой запрос родителя и опиши иерархию в связях наборов данных. |
|||
6
ДемонМаксвелла
20.03.13
✎
12:43
|
Настроек СКД не хватает (наборы данных, связи, настройки, что выводится)
З.Ы. топик неплохо рассмотрен у Хрусталевой и в видеокурсе Гилева по СКД. |
|||
7
Stolz
20.03.13
✎
13:22
|
На самом деле, в настройках СКД всего хватает, кроме одной мелочи. :-)
Помогли на Кубани: добавил строчку ПолеНабораДанных.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура"); и всё заработало. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |