Bitrix CMS Интеграция с 1с действия при загрузке объектов
Ситуация: Из 1с загружаются пользователи сайта. Есть тип события AUTOREG и привязанный к нему шаблон email сообщения. При загрузке пользователя должно отрабатывать это событие но в какой то момент оно перестало работать.
В файле \bitrix\local\import.php есть следующий код
protected function addUser($xml_id,$client,$info_ar)
{
$new_password = randString(7);
$user = new CUser;
$arFields = Array(
"TITLE" => $client,
"LOGIN" => $info_ar['phone'],
"PERSONAL_PHONE" => $info_ar['phone'],
"ACTIVE" => "Y",
"GROUP_ID" => array(6),
"PASSWORD" => $new_password,
"CONFIRM_PASSWORD" => $new_password,
"XML_ID" => $xml_id
);
//Lms
$autoName = '';
$autoLastName = '';
$autoSecondName = '';
if (!is_array($client) && (strlen($client) > 0)) {
$arNames = explode(" ", $client);
$autoLastName = $arNames[0];
$autoName = $arNames[1];
$autoSecondName = (!empty($arNames[2]) ? trim($arNames[2]) : '');
}
if(strlen($autoLastName) > 0)
$arFields['LAST_NAME'] = $autoLastName;
if(strlen($autoName) > 0)
$arFields['NAME'] = $autoName;
if(strlen($autoSecondName) > 0)
$arFields['SECOND_NAME'] = $autoSecondName;
if($info_ar['Адрес электронной почты контрагента для обмена электронными документами']){
$arFields['EMAIL']=$info_ar['Адрес электронной почты контрагента для обмена электронными документами'];
}
//Lms
if($info_ar['Город'])
$arFields['PERSONAL_CITY']=$info_ar['Город'];
if($info_ar['Юридический адрес контрагента'])
$arFields['PERSONAL_CITY']=$info_ar['Юридический адрес контрагента'];
if($info_ar['Фактический адрес контрагента']){
$arFields['PERSONAL_STREET']=$info_ar['Фактический адрес контрагента'];
}
if($info_ar['Почтовый адрес']){
$arFields['PERSONAL_MAILBOX']=$info_ar['Почтовый адрес'];
}
//Lms
if($info_ar['Телефон контрагента'] && $info_ar['Личный мобильный']) {
//wf old
//$arFields['PERSONAL_MOBILE']=$info_ar['Сотовый контрагента'];
$parsedPhone = Parser::getInstance()->parse($info_ar['Личный мобильный']);
$arFields['PERSONAL_MOBILE'] = $parsedPhone->format(Format::E164);
}
if($info_ar['Другое (любая другая контактная информация)']){
$arFields['PERSONAL_NOTES']=$info_ar['Другое (любая другая контактная информация)'];
}
if($info_ar['Сайт']){
$arFields['PERSONAL_WWW']=$info_ar['Сайт'];
}
if($info_ar['Факс контрагента']){
$arFields['PERSONAL_FAX']=$info_ar['Факс контрагента'];
}
if($info_ar['Номер факса']){
$arFields['PERSONAL_FAX']=$info_ar['Номер факса'];
}
if($info_ar['Почтовый адрес организации']){
$arFields['PERSONAL_MAILBOX']=$info_ar['Почтовый адрес организации'];
}
$arFieldsTmp = $arFields;
unset($arFieldsTmp["PASSWORD"], $arFieldsTmp["CONFIRM_PASSWORD"]);
$ID = $user->Add($arFields);
if (intval($ID) > 0){
$fieldSend=[
"LOGIN" => $info_ar['phone'],
"EMAIL" => $arFields['EMAIL'],
"PASS" => $new_password
];
CEvent::Send("AUTOREG","s1",$fieldSend,"Y");
$arGroups = array(
array(
'GROUP_ID' => 6,
'DATE_ACTIVE_FROM'=>'',
'DATE_ACTIVE_TO'=>''));
CUser::SetUserGroup($ID, $arGroups);
if (_DEVMODE) Diag\Debug::writeToFile($arFieldsTmp, $varName = date('Y-m-d H:i:s') . ' addUser() $arFieldsTmp', $fileName = "local/logs/" . date('Y-m-d') . "_import.log");
return $ID;
} else {
Diag\Debug::writeToFile($arFieldsTmp, $varName = date('Y-m-d H:i:s') . ' ERROR addUser() $arFieldsTmp', $fileName = "local/logs/" . date('Y-m-d') . "_ERROR_import.log");
$strDataTmp = is_array($user->LAST_ERROR) ? print_r($user->LAST_ERROR, true) : $user->LAST_ERROR;
if (mb_stripos($strDataTmp, 'уже существует') === false) {
toErrorLogAndMail($strDataTmp, 'import: ' . 'user->LAST_ERROR');
} else {
toErrorLogAndMail($strDataTmp, 'import: ' . 'user->LAST_ERROR', null, null, ['[email protected]', '[email protected]']);
}
}
}
Но насколько я смог понять эта функция просто нигде не вызывается а используется стандартная которая из коробки. И сообщение не отправляется.
Вопрос где вызвать эту функцию чтоб оно работало?