Событие смены ответственного за задачу битрикс24

← разместить еще код

ловит события изменения задачи, определяет, сменился ли ответственный в этом изменении, если да, заполняет пользовательские поля задачи bitrix24 1c-bitrix битрикс24 работа с событиями модуль задач

Расшаренный код:

AddEventHandler("tasks", "OnTaskUpdate", Array("UpdateTaskResponsible", "UpdateTaskResponsibleHandler"));
class UpdateTaskResponsible
{
    function UpdateTaskResponsibleHandler($ID, &$arFields, &$arTaskCopy)
    {

        $taskid = $ID;

        $res = \CTaskLog::GetList(array('CREATED_DATE' => 'ASC'), array('TASK_ID' => $taskid));
        while (true) {
            if ($parameters['ESCAPE_DATA']) {
                $item = $res->GetNext();
            } else {
                $item = $res->fetch();
            }
            if (!$item)  break;
            if( $item['TASK_ID'] == $taskid ){
                $change = $item;
            }

        }
        $to = 0;
        if( $change['FIELD'] == 'RESPONSIBLE_ID' ){
            $to = $change['TO_VALUE'];
        }

        if( $to ){

            $arFields = Array(
                "UF_NEW_RESPONSIBLE" => $to,
                "UF_NEW_RESP_DATE" => date('d.m.Y H:i:s')
            );

            $obTask = new CTasks;
            $success = $obTask->Update($taskid, $arFields);

            // file_put_contents($_SERVER['DOCUMENT_ROOT'].'/apps/w'.microtime().'.php', print_r($to, true));
        }

    }
}