Функционал обработки лидов является важным конкурентным преимуществом CRM — системы Битрикс 24. При этом, к сожалению, вендор никак не подумал насчет повышения информативности сведений о лидах, а именно, чтобы лиды, наряду со сделками, отображались в карточках компаний и контактов в отдельной вкладке.
В итоге, подобную доработку пришлось делать самостоятельно. Перед началом разработки стоял выбор — использовать обработчик места встраивания при помощи placement.bind , то есть, делать доработку, которая может использоваться и в облачных решениях, или изменять в локальной области сопутствующие компоненты .
Пошел по последнему пути, ибо это экономило время на написание интерфейса «грида» лидов, позволяло попутно убрать для конечных пользователей лишние закладки, такие как счета и заказы, да и ТЗ было составлено исключительно на доработку коробочной версии.
В итоге, в рамках файла result_modifier шаблонов crm.contact.details и crm.lead.details был видоизменен массив $arResult[‘TABS’], отвечающий за состав закладок в интерфейсе, в рамках специального сервисного файла lazyload.ajax.php, — вызван стандартный компонент crm.lead.list, в классе которого была наложена дополнительная опциональная фильтрация по коду передаваемого id контакта или компании. Плюс сделаны доработки, позволяющие менять стадию лида непосредственно на карточке.
if($arFilter['%ASSOCIATED_CONTACT_ID']) {
$cid = $arFilter['%ASSOCIATED_CONTACT_ID'];
$arFilter = array();
$arFilter['CONTACT_ID'] = $cid;
}
if($arFilter['%ASSOCIATED_COMPANY_ID']) {
$coid = $arFilter['%ASSOCIATED_COMPANY_ID'];
$arFilter = array();
$arFilter['COMPANY_ID'] = $coid;
}
Как мы видим на экране, лиды в карточках контактов и компаний успешно отобразились.