Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 июн 2021, 22:36

Рекурсия - ЗаполнитьЗначенияСвойств в ДеревоЗначений - пропадает иерархия

Автор метис метис, 15 сен 2016, 12:12

0 Пользователей и 1 гость просматривают эту тему.

метис метис

1С 8.3 У.ф.: Рекурсией копирую значения свойств (ЗаполнитьЗначенияСвойств) из одного ДеревоЗначений в другое ДеревоЗначений (оба реквизиты формы, колонки реквизитов полностью совпадают) с условием:

Для Каждого СтрокаДерева Из Дерево Цикл
Если СтрокаДерева["Пометка"] = 1 Тогда
СтрокаНовая = ДеревоСПометкой.ПолучитьЭлементы().Добавить();
ЗаполнитьЗначенияСвойств(СтрокаНовая, СтрокаДерева);
КонецЕсли;

КоллекцияЭлементов = СтрокаДерева.ПолучитьЭлементы();

Если КоллекцияЭлементов.Количество() > 0 Тогда
ЗаполнениеНовогоДереваОбходом(КоллекцияЭлементов, ДеревоСПометкой);
КонецЕсли;
КонецЦикла;


Проблема в том, что в новом ДеревоЗначения (ДеревоСПометкой) пропадает иерархия, то есть, если его обходить рекурсией, то оно обходится как ТаблицаЗначений, то есть в коде:

КоллекцияЭлементов = СтрокаДереваCПометкой.ПолучитьЭлементы();
Если КоллекцияЭлементов.Количество() > 0 Тогда


далее КоллекцияЭлементов.Количество() никогда не становится больше нуля.
При этом преверял - все значения нового дерева заполнены, в т. ч. Родитель. Выдаются все элементы, но без иерархии.
Подскажите, пожалуйста, где я допустил ошибку?

ilyay

Лучше делать это на сервере с настоящим деревом (РеквизитФормыВЗначение и обратно).
Чтобы была иерархия, нужно создавать подчиненные элементы.

ЗаполнениеНовогоДереваОбходом(КоллекцияЭлементов, ДеревоСПометкой);
вместо ДеревоСПометкой поставить СтрокаНовая?

метис метис

Цитата: ilyay от 15 сен 2016, 12:38
ЗаполнениеНовогоДереваОбходом(КоллекцияЭлементов, ДеревоСПометкой);
вместо ДеревоСПометкой поставить СтрокаНовая?
Оно,(как стыдно-то), большое спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск