Как вывести дополнительные данные в карточку сделки в CRM Битрикс24
Разработка
Разработка

Как вывести дополнительные данные в карточку сделки в CRM Битрикс24

Вывести дополнительные данные в карточку можно тремя способами

  1. Добавить кастомное пользовательское свойство

    Для этого нужно зарегистрировать собственный тип пользовательских свойств, разработать собственный виджет для его отображения и таким образом модернизировать карточку CRM. Можно реализовать и в облачной и в коробочной версии.

  2. С помощью js кода

    С помощью js кода можно добавить произвольный блок в произвольное место карточки. Можно реализовать только в коробочной версии.

  3. Добавить дополнительную вкладку в карточке CRM

    В карточку CRM можно добавлять собственные вкладки с произвольными данными. Можно реализовать и в коробочной и в облачной версии (только для серверных приложений).

В этой статье остановимся подробнее на третьем способе — добавление дополнительной вкладки. Существует три варианта добавления дополнительной вкладки в карточку:

  1. через JavaScript — подходит только для коробочной версии.
  2. через REST-приложение — подходит только для серверных приложений.
  3. через универсальные списки — подходит и для коробочной и для облачной версии.

Разберем все три.

1. Добавляем вкладку через JavaScript


Чтобы добавить дополнительную вкладку необходимо подключить собственный js файл на страницах с карточкой CRM. Самый простой способ это сделать — через обработчик события «onProlog» модуля «main».

После добавления данного кода на портал в карточке лида, сделки, контакта и компании должна появиться вкладка "Foo tab". При нажатии произойдет ajax-запрос на адрес ‘/foo.php’, если данный адрес будет существовать, то в открытую вкладку будет подставлен ответ, который вернется с этого адреса. Если пропустить объявление tabData.loader, во вкладке отобразится текст «Foo tab content» зеленым цветом. При переключении между вкладками генерируется пользовательское событие «onEntityDetailsTabShow», на которое можно подписаться и добавить какую-то свою логику в уже существующую вкладку. Но это уже другая история.

2. Добавляем новую вкладку через REST-приложение


Плюсы:

Можно добавить и в облаке и в коробке
Содержимое вкладки может быть любым

Минусы:

  • Работает только в серверном приложении
Для этого используем API-метод «placement.bind». Чтобы он сработал необходимо чтобы приложение имело доступ к CRM (crm) и Встраиванию приложений (placement). Подробнее об ограничениях на встраивание приложений читайте в курсе Приложения Битрикс24 При первоначальной установке приложения или же где-то в настройках приложения добавляем следующий код: В итоге, в карточках CRM появится всё та же вкладка «Foo tab», при открытии которой откроется фрейм с контентом по ссылке ‘https://mysuperbitrix24app.ru/foo.php’. Ссылка на контент вкладки должна быть в том же домене, в котором работает приложение.

3. Добавляем вкладку через универсальные списки


Плюсы:

  • Просто
  • Быстро

Минусы:

  • Очень ограниченные возможности
В карточках CRM можно вывести вкладку с универсальным списком, при этом во вкладке будут отображаться элементы списка, которые связаны с текущей просматриваемой сущностью с возможностью добавления нового элемента списка. Чтобы универсальный список начал отображаться в карточке, необходимо добавить в нем свойство с типом «Привязка к элементам CRM». В настройках свойства выбрать нужные CRM-сущности и установить галочку «Показывать в карточке CRM».

Итог

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

В зависимости от ситуации вы можете использовать разные инструменты добавления дополнительной вкладки в CRM. Иногда достаточно просто создать универсальный список нужной структуры и интегрировать его в карточку CRM. Если вы работаете с облаком и нужна какая-то более менее сложная логика во вкладке, то, безусловно, встраивание через приложение ваш единственный выход.

Если же вы работаете с коробкой, то можно использовать встраивание через приложение либо через js код. В данном случае встраивание через js код будет более гибким, так как дает больше свободы действий.
Эмиль Алиев
Эмиль Алиев
Ведущий разработчик Битрикс24