Имя: Пароль:
1C
1С v8
Не получается вывести иерархический список группируя по куратору
0 pele
 
08.08.12
13:30
Функция ПолучитьДанные(Куратор,Исполнитель)
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ЗадачиПроектов.Наименование,
   |    ВЫБОР
   |        КОГДА ЗадачиПроектов.Стадия = ЗНАЧЕНИЕ(Перечисление.СтадииЗадач.Выполнена)
   |            ТОГДА ЗадачаИсполнителя.Выполнена
   |        ИНАЧЕ ЗадачаИсполнителя.ПринятаКИсполнению
   |    КОНЕЦ КАК Стадия,
   |    ЗадачиПроектов.ОписаниеЗадачи,
   |    ЗадачиПроектов.ДатаОкончания,
   |    ЗадачиПроектов.ОписаниеРезультата,
   |    ЗадачиПроектов.Исполнитель КАК Исполнитель,
   |    ЗадачиПроектов.Ссылка,
   |    ВЫБОР
   |        КОГДА ЗадачиПроектов.Куратор = ЗадачиПроектов.Исполнитель
   |            ТОГДА &ОтборПоКуратору
   |        ИНАЧЕ &ОтборПоИсполнителю
   |    КОНЕЦ КАК Автор
   |ИЗ
   |    Справочник.ЗадачиПроектов КАК ЗадачиПроектов
   |        ЛЕВОЕ СОЕДИНЕНИЕ Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
   |        ПО ЗадачиПроектов.Ссылка = ЗадачаИсполнителя.Ссылка
   |ГДЕ
   |    (ЗадачиПроектов.Куратор = &ОтборПоКуратору
   |            ИЛИ ЗадачиПроектов.Исполнитель = &ОтборПоИсполнителю)
   |    И ЗадачиПроектов.Стадия <> ЗНАЧЕНИЕ(Перечисление.СтадииЗадач.Выполнена)
   |    И ЗадачиПроектов.Стадия <> ЗНАЧЕНИЕ(Перечисление.СтадииЗадач.Проверена)
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    ЗадачаИсполнителя.Наименование,
   |    ЗадачаИсполнителя.Выполнена,
   |    ЗадачаИсполнителя.Описание,
   |    ЗадачаИсполнителя.ДатаИсполнения,
   |    ЗадачаИсполнителя.РезультатВыполнения,
   |    ЗадачаИсполнителя.Исполнитель,
   |    ЗадачаИсполнителя.Ссылка,
   |    ВЫБОР
   |        КОГДА ЗадачаИсполнителя.Автор = ЗадачаИсполнителя.Исполнитель
   |            ТОГДА &ОтборПоКуратору
   |        ИНАЧЕ &ОтборПоИсполнителю
   |    КОНЕЦ
   |ИЗ
   |    Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
   |ГДЕ
   |    (ЗадачаИсполнителя.Автор = &ОтборПоКуратору
   |            ИЛИ ЗадачаИсполнителя.Исполнитель = &ОтборПоИсполнителю)";
   
   
       
   Запрос.УстановитьПараметр("ОтборПоКуратору",Куратор);
   Запрос.УстановитьПараметр("ОтборПоИсполнителю",Исполнитель);
   Результат = Запрос.Выполнить();
   тзРезультат = Результат.Выгрузить();
   
   ДеревоЗначений = Новый ДеревоЗначений;
   ДеревоЗначений.Колонки.Добавить("Куратор");
   ДеревоЗначений.Колонки.Добавить("Исполнитель");
   ДеревоЗначений.Колонки.Добавить("Наименование");
   ДеревоЗначений.Колонки.Добавить("ДатаОкончания");
   ДеревоЗначений.Колонки.Добавить("Стадия");


   
   Для Каждого СтрокаТаблицыЗначений из тзРезультат Цикл
       
       Куратор = СтрокаТаблицыЗначений.Автор;
       
       Если ДеревоЗначений.Строки.Найти(Куратор)= Неопределено Тогда
           СтрокаПервогоУровня = ДеревоЗначений.Строки.Добавить();
           СтрокаПервогоУровня.Куратор    = СтрокаТаблицыЗначений.Автор;
           
       КонецЕсли;
       
       СтрокаВторогоУровня = СтрокаПервогоУровня.Строки.Добавить();
       СтрокаВторогоУровня.Наименование    = СтрокаТаблицыЗначений.Наименование;
       СтрокаВторогоУровня.ДатаОкончания    = СтрокаТаблицыЗначений.ДатаОкончания;
       СтрокаВторогоУровня.Стадия            = СтрокаТаблицыЗначений.Стадия;

       
   КонецЦикла;
   
   
   

   
   
КонецФункции
1 Wobland
 
08.08.12
13:30
информацию принял
2 Wobland
 
08.08.12
13:31
даю справку: запрос иногда можно выгрузить в дерево