+7 (987) 026-06-36
Написать в Telegram

Оставить заявку
stanislav_web

Ошибка при авторизации по номеру телефона после обновления MySQL в 1С-Битрикс

Ошибка при авторизации по номеру телефона после обновления MySQL в 1С-Битрикс Объясняю и показываю примеры решений разных задач с которыми сталкивался и сталкиваюсь в процессе работы

Ошибка при авторизации по номеру телефона после обновления MySQL в 1С-Битрикс

Объясняю и показываю примеры решений разных задач с которыми сталкивался и сталкиваюсь в процессе работы

📅 28 августа 2025

👁‍🗨 209

🔥 0

Ошибка при авторизации по номеру телефона после обновления MySQL в 1С-Битрикс

После обновления модулей 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]);
}
?>