Как можно сохранить в HighLoad блоке данные о каждом изменении элемента CRM (Лид, Сделка, Компания) в Битрикс24, включая ENTITY_ID, ELEMENT_ID и CHANGE_LOG, используя созданное событие?
Для сохранения данных в блокчейне HighLoad в Битрикс24 (облачная версия) необходимо создать соответствующий обработчик событий, который будет отслеживать изменения элементов CRM (Лида, Сделки, Компании) и сохранять информацию в блокчейне. Шаги для сохранения данных в HighLoad блоке с использованием созданного события: 1. Создайте событие, которое будет срабатывать при изменении элементов CRM. Например, можно использовать событие "OnAfterCrmLeadUpdate", "OnAfterCrmDealUpdate", "OnAfterCrmCompanyUpdate". 2. Создайте соответствующий обработчик событий, который будет получать информацию об изменениях (ENTITY_ID, ELEMENT_ID, CHANGE_LOG) и сохранять ее в блокчейн HighLoad. 3. В обработчике событий необходимо получить данные об изменении элемента (например, используя объект $event), сформировать необходимую информацию (ENTITY_ID, ELEMENT_ID, CHANGE_LOG) и отправить ее на сервер блокчейна HighLoad. 4. На сервере блокчейна HighLoad необходимо создать соответствующие сервисы или API для приема и сохранения данных о изменениях элементов CRM. 5. После сохранения данных в блокчейне HighLoad можно реализовать дополнительные функции, например, аналитику изменений, отслеживание истории изменений и прочее. Обратите внимание, что для интеграции блокчейна HighLoad с Битрикс24 необходимо иметь соответствующие навыки программирования и доступ к настройкам системы.
По хорошему это всё должно быть в классе и на d7, но развивая ваш пример вот.
Быстрая реализация через говнокод =)
AddEventHandler("crm", "OnAfterCrmLeadUpdate", "saveLeadEventToHlBlock"); AddEventHandler("crm", "OnAfterCrmDealUpdate", "saveDealEventToHlBlock"); AddEventHandler("crm", "OnAfterCrmContactUpdate", "saveContactEventToHlBlock"); function saveLeadEventToHlBlock(&$arFields){ saveChangeCrmEntity('CRM_LEAD', $arFields); } function saveDealEventToHlBlock(&$arFields){ saveChangeCrmEntity('CRM_DEAL', $arFields); } function saveContactEventToHlBlock(&$arFields){ saveChangeCrmEntity('CRM_CONTACT', $arFields); } function saveChangeCrmEntity(string $entityType, array $fields) { global $USER; $hlbl = 2; $hlblock = HL\HighloadBlockTable::getById($hlbl)->fetch(); $entity = HL\HighloadBlockTable::compileEntity($hlblock); $entity_data_class = $entity->getDataClass(); $data = array( "UF_USER_ID" => $USER->GetID(), "UF_ENTITY_ID" => $entityType, "UF_ELEMENT_ID" => $fields['ID'], "UF_CHANGE_LOG" => \Bitrix\Main\Web\Json::encode($fields), "UF_DATE" => date("d.m.Y H:i:s") ); $result = $entity_data_class::add($data); }