@ContentProvider

Как добавить обработку события изменения сделки в коробке Битрикс24?

Стоит задача: при изменении сделки, получить пользовательское поле и на основании его данных заполнить другое пользовательское поле.

В /local/php_interface/init.php пишу следующий код:

AddEventHandler("crm", "OnAfterCrmDealUpdate", "OnAfterCrmDealUpdateHandler");
function OnAfterCrmDealUpdateHandler(&$arFields)
{
	$log  = "\n------------------------\n";
	$log .= date("Y.m.d G:i:s") . "\n";
	$log .= print_r($arFields, 1);
	$log .= "\n------------------------\n";
	file_put_contents( $_SERVER["DOCUMENT_ROOT"].'/local/php_interface/result.log', $log, FILE_APPEND);

	return true;
}


Но в лог данные не пишутся.
Как мне отловить это событие правильно? В примерах документации ничего не нашёл.
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 2
gromdron
@gromdron Куратор тега Битрикс24
Bitrix developer
Попробуйте использовать новую запись EventManager:

<?php

$eventManager = \Bitrix\Main\EventManager::getInstance();

$eventManager->addEventHandlerCompatible(
	'crm',
	'OnAfterCrmDealUpdate',
	function (&$arFields){

		ob_start();
		echo PHP_EOL."<pre>".PHP_EOL;
		var_dump($arFields);
		file_put_contents(__DIR__.'/log.log', ob_get_clean(), FILE_APPEND);
	}
);
Ответ написан
@Guliver99
проверьте права на изменение логируемего файла.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы