gifts2017

Дерево значений в таблицу значений и обратно

Опубликовал Дмитрий Башинский (bashinsky) в раздел Программирование - Инструментарий

Алгоритм переводит табличную часть или таблицу значений в дерево значений и обратно.

Я уже выкладывал эту обработку ранее, но потом случайно удалил. Теперь выкладываю еще раз.

 

Надо было реализовать документы, где вместо табличной части надо использовать дерево и все это на управляемых формах. Но дерево нельзя сохранить в базе в текущем виде. Пришлось использовать табличную часть документа для хранения данных дерева.  И при открытии формы получать данные из ТЧ и выводить их в дерево. Далее все манипуляции производить с деревом и при сохранении документа помещать данные в обратно в ТЧ.

Поиск по интернету не дал нужного варианта, пришлось реализовавыть свой механизм, используя информацию которая была на просторах интернета.

Для реализации такого механизма в ТЧ был добавлен реквизит “КлючСвязи” (обязательный реквизит) с типом число, куда помещался “НомерСтроки” (стандартный реквизит ТЧ) родителя (верхний уровень). А самый верхний элемент дерева имеет “КлючСвязи” равный 0.

На картинке ниже видно структуру дерева и структуру ТЧ

  

Нагрузка на сервер осуществляется при окрытии и при сохранении документа. А с деревом работают уже на клиенте.
На рабочей базе обрабатывается около 200 строк в одном документе.
Открытие и сохранение документа происходит моментально. С большем количеством строк не тестировалось.
Чтобы алгорит правильно работал, у рекизита фомы с типом дерево значений должны быть все реквизиты табличной части, кроме “КлючСвязи” и “НомерСтроки”. Иначе платформа выдаст ошибку. В дерево можо добавлять свои реквизиты отличные от ТЧ, они будут использоваться только в дереве.

likion.ru

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Архив с демо-базой и обработкой
.zip 23,04Kb
16.02.15
36
.zip 23,04Kb 36 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

3. Яков Коган (Yashazz) 16.02.15 18:44
Кабы не объектная блокировка, накрылась бы у вас эта идеология... Если в дереве данные простых типов и не требуется контроль ссылочной целостности, можно его просто хранить сериализованным.
4. Константин Юрин (kostyaomsk) 17.02.15 09:20
Интересная идея. Стоит запомнить.
5. Игорь Герман (German_Tagil) 04.10.16 15:30
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа