|
Быстро скопировать узел дерева значений | ☑ | ||
|---|---|---|---|---|
|
0
organizm
06.05.15
✎
15:18
|
Есть дерево значений. В нем находится узел. Как его скопировать другому родителю быстро? Есть вариант рекурсивно добавлять, но это в случае больших объемов тормозит обработку.
|
|||
|
1
organizm
06.05.15
✎
15:18
|
вот как у меня:
Процедура РекурсивноеДобавлениеНайденногоУзла(Получатель, Источник) Для Каждого СтрокаИсточника Из Источник.Строки Цикл ТекущаяСтрока = Получатель.Строки.Добавить(); ЗаполнитьЗначенияСвойств(ТекущаяСтрока, СтрокаИсточника); ТекущаяСтрока.Уровень = Получатель.Уровень()+1; Если СтрокаИсточника.Строки.Количество() > 0 Тогда РекурсивноеДобавлениеНайденногоУзла(ТекущаяСтрока, СтрокаИсточника); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
|
2
kosts
06.05.15
✎
15:27
|
ЗаполнитьЗначенияСвойств может слегка тормозить, попробуй свойства явно присваивать, может быть слегка ускорится...
|
|||
|
3
organizm
06.05.15
✎
15:41
|
а стандартных нет методов?
|
|||
|
4
hhhh
06.05.15
✎
15:51
|
(3) у дерева всего два стандартных метода: добавить и удалить. Так что губы потихоньку закатывайте.
|
|||
|
5
DrShad
06.05.15
✎
15:56
|
не ну если надо извратиться, то можно конвертнуть в XML там скопировать узел и назад конвертнуть
|
|||
|
6
organizm
06.05.15
✎
15:59
|
(5) о, хорошая мысля!
|
|||
|
7
rabbidX
06.05.15
✎
16:04
|
(5) разве при обратной конвертации не будут рекурсивно обходиться все узлы и заполняться значения? Где профит?
|
|||
|
8
DrShad
06.05.15
✎
16:19
|
через сериализатор разве не пролезет
|
|||
|
9
МихаилМ
06.05.15
✎
16:38
|
ЗначениеВСтрокуВнутр будет быстрее
|
|||
|
10
DrShad
06.05.15
✎
17:40
|
(9) а если это УФ?
|
| Форум | Правила | Описание | Секции | Поиск |