0
SherifSP
26.02.13
✎
16:54
|
Есть форма, на форме 2 табличных поля, одно с типом ДокументСписок, второе ДеревоЗначений.
Если отобрать по примеру а) скорость на порядок выше чем в б), нужно видеть еще и третий уровень подчиненности, по этому пример а) не есть правильным, как оптимально подойти к решению данной задачи?
а)
Процедура ДокументСписокПриАктивизацииСтроки(Элемент)
ДеревоДокументов.Строки.Очистить();
СписокДокументов = КритерииОтбора.СтруктураПодчиненности.Найти(Элемент.ТекущаяСтрока.Ссылка);
СтрокаДерева = ДеревоДокументов.Строки.Добавить();
СтрокаДерева.ДокументПредставление = Элемент.ТекущаяСтрока.Ссылка;
Для Каждого СтрокаМассива Из СписокДокументов Цикл
СтрокаДерева2 = СтрокаДерева.Строки.Добавить();
СтрокаДерева2.ДокументПредставление = СтрокаМассива;
КонецЦикла;
ЭлементыФормы.ДеревоДокументов.Развернуть(ДеревоДокументов.Строки[0], Истина);
КонецПроцедуры
б)
Процедура ДокументСписокПриАктивизацииСтроки(Элемент)
ДеревоДокументов.Строки.Очистить();
СписокДокументов = КритерииОтбора.СтруктураПодчиненности.Найти(Элемент.ТекущаяСтрока.Ссылка);
СтрокаДерева = ДеревоДокументов.Строки.Добавить();
СтрокаДерева.ДокументПредставление = Элемент.ТекущаяСтрока.Ссылка;
Для Каждого СтрокаМассива Из СписокДокументов Цикл
СтрокаДерева2 = СтрокаДерева.Строки.Добавить();
СтрокаДерева2.ДокументПредставление = СтрокаМассива;
СписокДокументов2 = КритерииОтбора.СтруктураПодчиненности.Найти(СтрокаМассива);
Для Каждого СтрокаМассива2 Из СписокДокументов2 Цикл
СтрокаДерева3 = СтрокаДерева2.Строки.Добавить();
СтрокаДерева3.ДокументПредставление = СтрокаМассива2;
КонецЦикла;
КонецЦикла;
ЭлементыФормы.ДеревоДокументов.Развернуть(ДеревоДокументов.Строки[0], Истина);
КонецПроцедуры
|
|