@Darklt

Как автоматически создавать профиль пользователя из 1С?

У меня создаются покупатели из 1С, но при этом
1. EXTERNAL_AUTH_ID подставляется sale, изза этого пароль не даёт ввести
2. Прописываю в 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);
      }
    }}


UPDATE:

Причина в том что если вручную создавать то всё создаётся профиль автоматом, а если импорт пользоватля то нет :( или если его создать из админки

Пробовал через функции OnAfterUserAdd и OnBeforeUserAdd, ничего не вышло
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы