Имя: Пароль:
1C
1С v8
УП дерево значений визуализация на форме
0 Noxvil
 
03.02.15
12:36
Добрый день.

Пишу обработку.
Выгружаю из запроса дерево значений в реквизит формы.

    РезервыДерево = РеквизитФормыВЗначение("Резервы",Тип("ДеревоЗначений"));
    РезервыДерево = Результат.Выгрузить(СпособОбхода);     
    ЗначениеВРеквизитФормы(РезервыДерево,"Резервы");

В появившемся дереве структура выглядит следующим образом:

Подразделение | Заказ | Номенклатура

- Подразделение1 |             |    
  - Подразделение1 | Заказ1 |
      Подразделение1 | Заказ1 | Номенклатура1        
      Подразделение1 | Заказ1 | Номенклатура2
      Подразделение1 | Заказ1 | Номенклатура3

Хотелось бы привести это к виду:

- Подразделение1 |     |    
  - Заказ1       |     |
      Номенклатура1|     |
      Номенклатура2|     |
      Номенклатура3|     |

Я так понял - надо добавить реквизит, в который бы заполнялось именно измерение по которому будет делаться группировка...

Можно это реализовать на уровне запроса, или придется выводить вручную каждую строчку?

Как вы решали подобную задачу?
1 Noxvil
 
03.02.15
12:39
Уф, а не УП... Ошибся
2 TheVeryHe
 
03.02.15
12:43
Да никак ты этого не сделаешь
Если только не создашь новое дерево с одной колонкой и сам лично его не заполнишь из основного дерева
3 ShoGUN
 
03.02.15
12:46
(0) Простым способом не получится, нужно ручками определять, на каком уровне группировки какие поля выгружать. Так что (2).
4 LordCMEPTb
 
03.02.15
12:46
(0) Добавляем в дерево собственную колонку "Текущий уровень", в которую заполняем значениями уровня группировки (не нашел, как в дереве на форме получить текущий уровень), и условным оформлением формы режем видимость и отображение для нужных колонок по условию.
Что-то похожее тут:
http://s020.radikal.ru/i711/1502/44/1dfce707ef7a.png
5 Noxvil
 
03.02.15
12:51
Спасибо за ответы.

Сделал руками:

    Для каждого УровеньИерархии1 Из РезервыДерево.Строки Цикл    
        УровеньИерархии1.Представление = УровеньИерархии1.Подразделение;            
        Для каждого УровеньИерархии2 Из УровеньИерархии1.Строки Цикл            
            УровеньИерархии2.Представление = УровеньИерархии2.ЗаказКлиента;                
            Для каждого УровеньИерархии3 Из УровеньИерархии2.Строки Цикл        
                УровеньИерархии3.Представление = УровеньИерархии3.Номенклатура;                
            КонецЦикла;                         
        КонецЦикла;                 
    КонецЦикла;

Не очень красиво, но работоспособно...
У остальных колонок отключил видимость.
2 + 2 = 3.9999999999999999999999999999999...