Ошибка при авторизации по номеру телефона после обновления MySQL в 1С-Битрикс
Объясняю и показываю примеры решений разных задач с которыми сталкивался и сталкиваюсь в процессе работы
Ошибка при авторизации по номеру телефона после обновления MySQL в 1С-Битрикс
Объясняю и показываю примеры решений разных задач с которыми сталкивался и сталкиваюсь в процессе работы
📅 28 августа 2025
👁🗨 209
После обновления модулей 1С-Битрикс и базы данных с версии 5.7 на 8.0 появились ошибки в базе данных при проверке системы. После устранения ошибок при авторизации по номеру телефона стали выходить ошибки «Неправильно указан получатель» и «Не заполнено обязательное поле "MESSAGE_TO"»
Для начала попробуйте вручную в административной панели у пользователя стереть значение поля «Номер телефона для регистрации» перед этим его куда-то записав и нажмите сохранить.
Затем вбейте этот номер обратно и еще раз сохраните.
Попробуйте авторизоваться снова.
Если помогло, то ниже код который сделает это для всех пользователей.
<?
use Bitrix\Main\Loader;
use Bitrix\Main\UserPhoneAuthTable;
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');
if (!Loader::includeModule('main')) {
die();
}
$rsUsers = CUser::GetList('ID', 'ASC', ['ACTIVE' => 'Y'], ['FIELDS' => ['ID', 'PERSONAL_PHONE']]);
while ($arUser = $rsUsers->Fetch()) {
$userId = $arUser['ID'];
$getRow = UserPhoneAuthTable::getRow(['filter' => ['=USER_ID' => $userId]]);
$phoneNumber = $getRow['PHONE_NUMBER'] ? $getRow['PHONE_NUMBER'] : $arUser['PERSONAL_PHONE'];
if (empty($phoneNumber)) continue;
$user = new CUser;
$user->Update($userId, ['PHONE_NUMBER' => '']);
$normalize = UserPhoneAuthTable::normalizePhoneNumber($phoneNumber);
$user->Update($userId, ['PHONE_NUMBER' => $normalize]);
}
?>