private static $isFieldChanged = false;
/**
* Событие перед обновлением контакта
**/
public static function handleOnBeforeContactUpdae(&$fields)
{
//Если поле присутствует в массиве обновления
if(array_key_exists('UF_CODE', $fields))
{
//Проверяем его текущее значение
$currentContact = \Bitrix\Crm\ContactTable::getRow([
'filter' => [
'ID' => $fields['ID']
],
'select' => ['UF_CODE']
]);
if($currentContact['UF_CODE'] != $fields['UF_CODE'])
{
static::$isFieldChanged = true;
}
}
}
/**
* Событие после обновления контакта
**/
public static function handleOnAfterContactUpdae(&$fields)
{
if(static::$isFieldChanged === true)
{
static::$isFieldChanged = false;
// Запускаем наш бизнес-процесс
...
}
}