Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Построить ДеревоЗначений в запросе по двум разным справочникам

Построить ДеревоЗначений в запросе по двум разным справочникам
Я
   Dmitriy_ Kolesnikov
 
23.11.18 - 10:45
У меня нет других идей, кроме как добавлять поле Родитель, выводить в ТаблицуЗначений, а дальше циклом с рекурсией строить ДеревоЗначений.
Суть такая. Есть запрос к справочникам: ШтатноеРасписание (не иерархический, подчинен Организации), ПодразделенияОрганизации (иерархический, подчинен Организации).
Мне надо построить иерархию сразу по двум справочникам, то есть на первом уровне иерархии у нас Организация, на втором - как позиции штатного расписания, так и подразделения организации, на третьем - то же самое, на четвертом и ниже - только подразделения.
Я построил в запросе таблицу с полями Родитель (может быть двух типов - ШтатноеРасписание и ПодразделенияОрганизации) и ЭлементСхемы (может быть тех же двух типов).
Теперь было бы хорошо выгрузить это сразу в дерево значений. Возможно ли такое и если да, то как?

На самом деле, всё это делается в СКД:
МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

Но если надо - могу и запросом. Вопрос лишь в том, как получить сразу дерево значений с правильной иерархией, а не таблицу значений.
 
 
   МихаилМ
 
1 - 23.11.18 - 10:52
пробуйте запрос скормить пз
   Ник080808
 
2 - 23.11.18 - 10:53
(0) Создаем дерево с нужной структурой и обходим результат СКД и заполняем дерево результатом.
   DexterMorgan
 
3 - 23.11.18 - 10:59
   DexterMorgan
 
4 - 23.11.18 - 11:02
(0) Ну и тут https://its.1c.ru/db/metod8dev#content:1984:hdoc

"Описание иерархических наборов данных" и тд
   Ник080808
 
5 - 23.11.18 - 11:18
(4) он типа уже получил в скд. Теперь не знает как это в дерево запихнуть
   Dmitriy_ Kolesnikov
 
6 - 23.11.18 - 12:06
Я правильно понимаю вас: настройки варианта отчета в СКД влияют на вывод в дерево значений?
Просто в табличный документ у меня свой вывод, не средствами СКД.
   Dmitriy_ Kolesnikov
 
7 - 23.11.18 - 12:26
В типовом отчете сделано как в (4). Теперь надо с этим разобраться и переделать под себя.
   DexterMorgan
 
8 - 23.11.18 - 12:37
(5) а че там сложного, в инете куча всего:

    
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
    КомпоновщикНастроек.Настройки,,,
    Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДЗ = Новый ДеревоЗначений;
ПроцессорВывода.УстановитьОбъект(ДЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   Dmitriy_ Kolesnikov
 
9 - 23.11.18 - 12:41
(8) это всё есть в типовом отчете, который я переделываю.

Там второй набор данных (для иерархии) и связи наборов данных формируются программно. Вот с этим придется разобраться.
   DexterMorgan
 
10 - 23.11.18 - 12:42
(9) В чем у тебя вопрос?
 
 Рекламное место пустует
   Dmitriy_ Kolesnikov
 
11 - 23.11.18 - 12:49
(10) пока вопросов нет, есть пища для размышления.
Разбираюсь с типовым кодом, если возникнут вопросы - задам.
Принцип ясен из (4), благодарю.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует