Документация для разработчиков
Темная тема

Показ смарт-процессов вне CRM

В обновлении crm 21.25.1 в настройках смарт-процесса появился пункт "Показ вне CRM", который позволяет вынести данный процесс в новый раздел в левом меню. В случае включения этой настройки, смарт-процесс пропадет из основного раздела "CRM" и будет доступен через отдельный пункт в левом меню.

Данный функционал использует механизм настраиваемых разделов модуля Intranet.


Общий подход

Роутинг смарт-процессов осуществляется через \Bitrix\Crm\Service\Router. Именно он генерирует ссылки на грид, канбан и карточки элементов, которые потом подставляются в верстку. И через него решается, какой компонент с какими параметрами необходимо подключить.

При выделении смарт-процесса в отдельный раздел, роутер начинает генерировать ссылки для него с учетом нового адреса. Во всех ссылках на этот смарт-процесс стандартный корень /crm/ заменяется на тот, который генерируется Интранетом (см. \Bitrix\Crm\Integration\IntranetManager::getUrlForCustomSectionPage). Аналогично с js-роутером BX.Crm.Router.

Если смарт-процесс выделен в отдельный раздел, то он не показывается в основном разделе CRM. Т.е. он исчезает из верхнего меню CRM, все ссылки на этот процесс открываются в отдельном разделе.


Детали реализации

Интеграция с настраиваемыми разделами Интранета обеспечивается через \Bitrix\Crm\Integration\Intranet\CustomSectionProvider.

На странице настраиваемого раздела подключается компонент crm.router, которому в параметрах передается текущий корень. Дальше жизненный цикл не отличается от обычной страницы CRM в новом API

Если текущий открытый смарт-процесс выделен в отдельный раздел, то не подключается верхняя панель CRM (\Bitrix\Crm\Component\Base::addTopPanel).



© «Битрикс», 2001-2024, «1С-Битрикс», 2024