Деталь с древовидной структурой из нескольких объектов

Добрый день, коллеги.

Появилась необходимость произвести следующую доработку: на страницу Заказа вывести деталь, которая будет показывать все заказы, у которых Контакт такой же, как и на отображаемой страницу, но к тому же чтобы была возможность вывода продуктов из каждого заказа, по аналогии с деталью Структура в Проектах. Конечно, аналогия не совсем прямая, в Проектах всё завязано только на одном объекте, когда как в поставленной задаче нужно в первом "слое" выводить записи из Заказов, в во втором "слое" - Продукты в Заказе. Кто-нибудь сталкивался с подобным заданием или разбирал этот функционал? Уже изучил схемы ProjectStructureDetailV2, BaseProjectPageV2 и ProjectUtilities. Также нашёл схему HierarchicalProjectUtilities, там, кажется, находится нечто полезное, но я вообще не нашёл связи между этой схемой и кодом, который ответственен за деталь Структура. Меня более всего интересует сам механизм получения списка того, что нужно отобразить в детали, возможно придётся писать полностью свою логику сборки этого списка, но куда этот составленный список применить - мне не понятно. Будет полезно всё - от указания всех схем, которые участвуют в корректной отрисовке Структуры до принципиального описания как это всё работает и идей, как возможно прикрутить ещё один левый объект. Заранее спасибо!

 

Нравится

3 комментария
Лучший ответ

Если деталь Read-only, то делали View с полем Parent и использовали модуль "Hierarchy list view for creatio" из marketplace

 

Если деталь Read-only, то делали View с полем Parent и использовали модуль "Hierarchy list view for creatio" из marketplace

 

Владимир Соколов, не могли бы вы уточнить, каким образом вы произвели данную доработку именно для двух разных объектов в одной детали? На что должно ссылаться поле Parent в представлении, какой именно раздел преобразовывали в представление для детали? Я имею в виду, модуль всё равно работает только с одним объектом, в их примере они настраивают древовидное отображение дочерних договоров для самих же договоров

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

Если первичный ключ записи в этой view нельзя взять из однозначно соответствующей записи одной из таблиц, его можно также формировать программно, например, взяв первую половину Guid из Id записи одного раздела и вторую половину — из другого. Или md5-хэш от других полей, как в примере тут. Главное, чтобы было полное соответствие Id записей, на которые ссылаются и значений полей-ссылок.

Затем по этому view создать объект и далее его использовать в «Hierarchy list view».

Показать все комментарии