Событие (обработчик) добавление записей в TimeLine сущности CRM Битрикс24. Другие примеры работы со сделкой.

119
Для того, что бы отследить добавление комментария к сделки, воспользуемся методом 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 сделки в системе. ));


Яндекс.Метрика