Разобрались с помощью техподдержки, спасибо всем за участие!
Окончательный код (кому-нибудь пригодится):
<?
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("MyClass", "OnAfterIBlockElementUpdateHandler"));
class MyClass
{
function OnAfterIBlockElementUpdateHandler(&$arFields)
{
$res = CIBlockElement::GetList(Array(), Array("ID"=>$arFields["ID"]), false, array(), array());
if($ar_fields = $res->Fetch());
$iUserID = $ar_fields["CREATED_BY"];
$rsUser = CUser::GetByID($iUserID);
$arUser = $rsUser->Fetch();
$arFields = Array(
"CONTRACT_ID" => $arFields["ID"],
"NAME" => $arUser["NAME"],
"LAST_NAME" => $arUser["LAST_NAME"],
"EMAIL" => $arUser["EMAIL"]
);
CEvent::Send("CONTRACT_SAVED","s1",$arFields);
}
}
?>