Доброго времени суток!
Существует импорт из 1С:ЗУП в Корпоративный портал. Я добавил в выгрузку пользовательские поля: DIVIZION, DIVIZION1, DIVIZION2, DIVIZION3, DIVIZION4. В зависимости от этих полей пользователи должны распределяться по соответствующим группам вот вымученный мною код:
<?
// файл /bitrix/php_interface/init.php
AddEventHandler("main", "OnBeforeUserUpdate", Array("MyClass", "OnBeforeUserUpdateHandler" );
class MyClass
{
function OnBeforeUserUpdateHandler(&$arFields)
{
$array = $arFields["GROUP_ID"];
if ($arFields["UF_DIVIZION"]!=NULL)
$arFields["GROUP_ID"][] = 58;
if ($arFields["UF_DIVIZION1"]!=NULL)
$arFields["GROUP_ID"][] = 61;
if ($arFields["UF_DIVIZION2"]!=NULL)
$arFields["GROUP_ID"][] = 62;
if ($arFields["UF_DIVIZION3"]!=NULL)
$arFields["GROUP_ID"][] = 64;
if ($arFields["UF_DIVIZION4"]!=NULL)
$arFields["GROUP_ID"][] = 66;
}
}
?>
Вопрос в том что этот код работает нормально если я редактирую значения пользовательских полей непосредственно в ручную. А когда проходит импорт, значения пользовательских полей редактируются, но у пользователя остаются только те группы, которые соответствуют пользовательским полям, т.е. все группы, которые были у пользователя до импорта удаляются. Мне конечно нужно чтобы все группы, которые были у пользователя до выполнения импорта оставались у него и после.
Подскажите из-за чего это может быть. Может быть где-то дополнительно что-то нужно дописать?
Существует импорт из 1С:ЗУП в Корпоративный портал. Я добавил в выгрузку пользовательские поля: DIVIZION, DIVIZION1, DIVIZION2, DIVIZION3, DIVIZION4. В зависимости от этих полей пользователи должны распределяться по соответствующим группам вот вымученный мною код:
<?
// файл /bitrix/php_interface/init.php
AddEventHandler("main", "OnBeforeUserUpdate", Array("MyClass", "OnBeforeUserUpdateHandler" );
class MyClass
{
function OnBeforeUserUpdateHandler(&$arFields)
{
$array = $arFields["GROUP_ID"];
if ($arFields["UF_DIVIZION"]!=NULL)
$arFields["GROUP_ID"][] = 58;
if ($arFields["UF_DIVIZION1"]!=NULL)
$arFields["GROUP_ID"][] = 61;
if ($arFields["UF_DIVIZION2"]!=NULL)
$arFields["GROUP_ID"][] = 62;
if ($arFields["UF_DIVIZION3"]!=NULL)
$arFields["GROUP_ID"][] = 64;
if ($arFields["UF_DIVIZION4"]!=NULL)
$arFields["GROUP_ID"][] = 66;
}
}
?>
Вопрос в том что этот код работает нормально если я редактирую значения пользовательских полей непосредственно в ручную. А когда проходит импорт, значения пользовательских полей редактируются, но у пользователя остаются только те группы, которые соответствуют пользовательским полям, т.е. все группы, которые были у пользователя до импорта удаляются. Мне конечно нужно чтобы все группы, которые были у пользователя до выполнения импорта оставались у него и после.
Подскажите из-за чего это может быть. Может быть где-то дополнительно что-то нужно дописать?