Показ смарт-процессов вне 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
).
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.