@Darklt

Как автоматически создавать профиль пользователя из 1С и убирать из внешней группы sale?

Коллеги, очень прошу помощи, импортирую пользоватлей из 1С, они попадают почему то в группу EXTERNAL_AUTH_ID = sale, приходиться из базы их вручную удалять т.к. нельзя им задать в этом случае пароль,
Далее пишу в init.php создание профиля при регистрации, но работает он только на регистрацию вручную.

AddEventHandler("main", "OnAfterUserRegister", Array("MyClass", "OnBeforeUserRegisterHandler")); 
class MyClass
{
    function OnBeforeUserRegisterHandler(&$arFields)
    {
      //создаём профиль
      //PERSON_TYPE_ID - идентификатор типа плательщика, для которого создаётся профиль
      $arProfileFields = array(
         "NAME" => "Профиль покупателя (".$arFields['LOGIN'].')',
         "USER_ID" => $arFields['USER_ID'],
         "PERSON_TYPE_ID" => 3
      );
      $PROFILE_ID = CSaleOrderUserProps::Add($arProfileFields);
      
      //если профиль создан
      if ($PROFILE_ID)
      {
         //формируем массив свойств
         $PROPS=Array(
         array(
               "USER_PROPS_ID" => $PROFILE_ID,
               "ORDER_PROPS_ID" => 3,
               "NAME" => "Телефон",
               "VALUE" => $arFields['WORK_PHONE']
            ),
         array(
               "USER_PROPS_ID" => $PROFILE_ID,
               "ORDER_PROPS_ID" => 1,
               "NAME" => "Ф.И.О.",
               "VALUE" => $arFields['LAST_NAME'].' '.$arFields['NAME'].' '.$arFields['SECOND_NAME']
            )
         );
         //добавляем значения свойств к созданному ранее профилю
         foreach ($PROPS as $prop)
            CSaleOrderUserPropsValue::Add($prop);
      }
    }}


Пробовал менять на
AddEventHandler("main", "OnAfterUserAdd", Array("MyClass", "OnBeforeUserAddHandler"));


Вызывает ошибки :(
  • Вопрос задан
  • 307 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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