Событие (обработчик) добавление записей в TimeLine сущности CRM Битрикс24. Другие примеры работы со сделкой.
2978
Для того, что бы отследить добавление комментария к сделки, воспользуемся методом OnAfterAdd, класса Timeline
AddEventHandler("crm", "\Bitrix\Crm\Timeline\Entity\Timeline::OnAfterAdd", "GetCommentTime");
function GetCommentTime()
{
$application = \Bitrix\Main\Application::getInstance();
$request = $application->getContext()->getRequest(); // получим данные о текущем запросе
$ownerID = $request->getPost('OWNER_ID'); // событие сущности (Лид, Контакт, Сделка..)
$action = $request->getPost('ACTION');
if ($action == "SAVE_COMMENT") { // ограничим код по событию добавления комментария
$commentText = $request->getPost('TEXT'); // текст добавленного комментария
}
}
Рассмотрим пример кода, обновление сделки (обновим дополнительное текстовое свойство сделки и запишем туда полученный ранее комментарий). Для этого воспользуемся методом Update:
$CCrmEntity = new CCrmDeal(false); // создадим экземпляр класса сделки
$arFields = array(
'UF_CRM_ID' => $commentText // UF_CRM_ID - Код свойства, $commentText - текст комментария
);
$res = $CCrmEntity->Update(
$DealID,
$arFields,
true,
true,
['DISABLE_USER_FIELD_CHECK' => true]
);
Рассмотрим еще один пример, добавления комментария в Timeline. Для этого воспользуемся классом CommentEntry и методом Create
\Bitrix\Main\Loader::includeModule('crm'); // подключим модуль crm
global $USER;
\Bitrix\Crm\Timeline\CommentEntry::create(
array(
'TEXT' => 'текст который отобразится в Timeline',
'SETTINGS' => array('HAS_FILES' => 'N'), //cодержит ли файл комментарий
'AUTHOR_ID' => $USER->GetID(), //ID пользователя, от которого будет добавлен комментарий
'BINDINGS' => array(array('ENTITY_TYPE_ID' => 2, 'ENTITY_ID' => 999)) // привязка к сущности CRM: ENTITY_TYPE_ID - тип сущности CRM (2 - Сделка), 'ENTITY_ID' - ID сделки в системе.
));