Имя: Пароль:
1C
1С v8
Как оптимально вывести структуру подчиненности?
0 SherifSP
 
26.02.13
16:54
Есть форма, на форме 2 табличных поля, одно с типом ДокументСписок, второе ДеревоЗначений.
Если отобрать по примеру а) скорость на порядок выше чем в б), нужно видеть еще и третий уровень подчиненности, по этому пример а) не есть правильным, как оптимально подойти к решению данной задачи?

а)
Процедура ДокументСписокПриАктивизацииСтроки(Элемент)
   
   ДеревоДокументов.Строки.Очистить();
   
   СписокДокументов = КритерииОтбора.СтруктураПодчиненности.Найти(Элемент.ТекущаяСтрока.Ссылка);
   
   СтрокаДерева = ДеревоДокументов.Строки.Добавить();
   СтрокаДерева.ДокументПредставление = Элемент.ТекущаяСтрока.Ссылка;
   
   Для Каждого СтрокаМассива Из СписокДокументов Цикл
       СтрокаДерева2 = СтрокаДерева.Строки.Добавить();
       СтрокаДерева2.ДокументПредставление = СтрокаМассива;
   КонецЦикла;
   
   ЭлементыФормы.ДеревоДокументов.Развернуть(ДеревоДокументов.Строки[0], Истина);
   
КонецПроцедуры

б)
Процедура ДокументСписокПриАктивизацииСтроки(Элемент)
   
   ДеревоДокументов.Строки.Очистить();
   
   СписокДокументов = КритерииОтбора.СтруктураПодчиненности.Найти(Элемент.ТекущаяСтрока.Ссылка);
   
   СтрокаДерева = ДеревоДокументов.Строки.Добавить();
   СтрокаДерева.ДокументПредставление = Элемент.ТекущаяСтрока.Ссылка;
   
   Для Каждого СтрокаМассива Из СписокДокументов Цикл
       СтрокаДерева2 = СтрокаДерева.Строки.Добавить();
       СтрокаДерева2.ДокументПредставление = СтрокаМассива;
       СписокДокументов2 = КритерииОтбора.СтруктураПодчиненности.Найти(СтрокаМассива);
       Для Каждого СтрокаМассива2 Из СписокДокументов2 Цикл
           СтрокаДерева3 = СтрокаДерева2.Строки.Добавить();
           СтрокаДерева3.ДокументПредставление = СтрокаМассива2;
       КонецЦикла;
   КонецЦикла;
   
   ЭлементыФормы.ДеревоДокументов.Развернуть(ДеревоДокументов.Строки[0], Истина);
   
КонецПроцедуры
1 SherifSP
 
26.02.13
17:02
Надо апнуть)
2 acsent
 
26.02.13
17:03
в чем вопрос?
3 Жан Пердежон
 
26.02.13
17:03
будь мужиком, пользуйся типовыми отчетами, блеать.
4 SherifSP
 
26.02.13
17:05
(2) В производительности, нужно в дереве вывести 3 уровня
5 SherifSP
 
26.02.13
17:06
(3) РаботаСДиалогами.ПоказатьСтруктуруПодчиненностиДокумента(ЭлементыФормы.Список.ТекущиеДанные.Ссылка); Таким методом вообще по пол часа грузит
6 SherifSP
 
26.02.13
17:10
+(4) Это как на баннере Ижтиси))
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан