Дмитрий, попробовал модифицировать ваш пример, чтобы пользователи изменялись или же добавлялись, если их в базе нет. Но почему-то финальный return false; срабатывает только с одного места в коде, вконце верхнего if'а (как у вас в примере).
вот мой код не работает (дублирует юзеров)
| Код |
|---|
AddEventHandler('main', 'OnBeforeUserAdd', 'OnBeforeUserAddHandler');
function OnBeforeUserAddHandler(&$arFields) {
global $APPLICATION;
if (isset($arFields['LOGIN'])) {
$rsUser = CUser::GetList(($by = 'LOGIN'), ($order = 'desc'), array('LOGIN' => $arFields['LOGIN']), array('ID'));
if ($rsUser->SelectedRowsCount() == 1) {
if ($arUser = $rsUser->GetNext()) {
$oUser = new CUser;
$oUser->Update($arUser['ID'], array('UF_SCORE' => $arFields['UF_SCORE']));
$APPLICATION->throwException("skip=".$skip);
return false;
}
}
}
}
|
заранее благодарен за совет