Сделать проверку поля при регистрации и оборвать ее в случае неудачи
AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserRegisterHandler");
// а заодно и при обновлении данных пользователем
AddEventHandler("main", "OnBeforeUserUpdate", "OnBeforeUserRegisterHandler");
// описываем саму функцию
function OnBeforeUserRegisterHandler($args)
{
$userBy = "UF_USER_POINTS";
$userOrder = "desc";
$userFilter = array(
'UF_CARD_NUMBER' => $args['UF_CARD_NUMBER']
);
$rsUser = CUser::GetList(
$userBy,
$userOrder,
$userFilter,
array(
'SELECT' => array())
);
if ($user = $rsUser->Fetch())
{
$GLOBALS['APPLICATION']->ThrowException('Пользователь с этой картой уже зарегистрирован!');
return false;
}
return true;
}