Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

1С-Битрикс сделать email в качестве логина при создании пользователя при регистрации

Вопрос задан: 3 июня 2026 в 11:00 | Просмотров: 26 Использованные MCP инструменты: searchDocs, liveApiFindFunction, liveApiGetFunctionCode, liveApiFindByReflection, liveApiGetAllEvents, liveApiGetModuleEvents, liveApiGetFunctionUsage

Задайте свой вопрос — Работает AI в связке с MCP сервером. Перепроверяйте важную информацию.

В 1С-Битрикс нет встроенной готовой опции "Email как логин" в настройках. Поля LOGIN и EMAIL — это разные поля в таблице пользователей. Однако эту задачу можно решить программно.

Способ 1. Через событие OnBeforeUserRegister (рекомендуемый)

При регистрации через стандартный компонент bitrix:main.register срабатывает событие OnBeforeUserRegister. В обработчике можно подменить значение логина на email.

Создайте файл init.php/bitrix/php_interface/ или /local/php_interface/) и добавьте:

<?php
// Регистрируем обработчик события OnBeforeUserRegister
AddEventHandler('main', 'OnBeforeUserRegister', 'setEmailAsLoginHandler');
function setEmailAsLoginHandler(&$arFields)
{
    // Если логин не заполнен, подставляем email в качестве логина
    if (empty($arFields['LOGIN']) && !empty($arFields['EMAIL']))
    {
        $arFields['LOGIN'] = $arFields['EMAIL'];
    }
    // Если логин отличается от email — принудительно заменяем
    elseif (!empty($arFields['EMAIL']))
    {
        $arFields['LOGIN'] = $arFields['EMAIL'];
    }
}
?>

Событие OnBeforeUserRegister (модуль main, файл /bitrix/modules/main/install/components/bitrix/main.register/component.php) вызывается перед созданием пользователя через компонент регистрации. $arFields содержит поля, которые будут переданы в CUser::Add().

Способ 2. Через событие OnBeforeUserAdd (универсальный)

Если пользователь создаётся не только через компонент регистрации, но и программно через CUser::Add() — подойдёт событие OnBeforeUserAdd (модуль main, файл /bitrix/modules/main/classes/general/user.php):

<?php
AddEventHandler('main', 'OnBeforeUserAdd', 'setEmailAsLoginOnAdd');
function setEmailAsLoginOnAdd(&$arFields)
{
    if (empty($arFields['LOGIN']) && !empty($arFields['EMAIL']))
    {
        $arFields['LOGIN'] = $arFields['EMAIL'];
    }
}
?>

Способ 3. Авторизация по email

Стандартный метод CUser::Login($login, $password) (модуль main, класс CUser, файл /bitrix/modules/main/classes/general/user.php, строка 1736) ищет пользователя по полю LOGIN. Если вы подставили email в LOGIN — авторизация будет работать автоматически.

Если нужно, чтобы пользователь мог вводить email в поле логина при авторизации (без изменения самого логина), используйте событие OnBeforeUserLogin:

<?php
AddEventHandler('main', 'OnBeforeUserLogin', 'authByEmailHandler');
function authByEmailHandler(&$arFields)
{
    // Проверяем, не является ли введённый логин email'ом
    if (check_email($arFields['LOGIN']))
    {
        // Ищем пользователя по email
        $rsUser = CUser::GetList(
            $by = 'ID', $order = 'ASC',
            ['=EMAIL' => $arFields['LOGIN']]
        );
        if ($arUser = $rsUser->Fetch())
        {
            // Подставляем реальный логин для авторизации
            $arFields['LOGIN'] = $arUser['LOGIN'];
        }
    }
}
?>

Что важно учесть

  • Уникальность: Поле LOGIN должно быть уникальным в таблице b_user. Если у двух пользователей email совпадёт — возникнет ошибка. Предусмотрите проверку.
  • Длина логина: Стандартное ограничение поля LOGIN — 50 символов (в БД varchar(50)). Если email длиннее, нужно расширять поле либо обрезать.
  • Символы: Логин по умолчанию может содержать только латиницу, цифры, дефис и подчёркивание. Email содержит @ и . — это допускается в современных версиях Битрикс, но уточните в своей.
  • Главный модуль: В настройках Настройки > Настройки продукта > Настройки модулей > Главный модуль на вкладке Авторизация можно установить флаг "Email является обязательным полем" — это не делает email логином, но гарантирует, что email будет заполнен.

Услуги Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.
Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.
Индивидуальная разработка магазина
от 250 000 руб. от 4-х недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Подробнее
Сайт на готовом решении 1С-Битрикс
от 50 000 руб. от 5-ти дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Подробнее
Мобильное приложение
от 300 000 руб. от 4-х недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Подробнее
Сайт компании
от 120 000 руб. от 2-х недель

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Подробнее
Инфоресурс
от 100 000 руб. от 3-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Подробнее
Поддержка и доработки проектов
от 3 000 руб. от 1 часа

Выполнение доработок любой сложности. Поддержка, модернизация и расширение функционала существующих проектов. Решение задач: от мелких правок вёрстки до разработки новых модулей.

Подробнее

Включено в стоимость разработки:

  • Лицензия на 1С-Битрикс необходимой редакции, дополнительные модули, для реализации функционала и видео-инструкции по работе с готовым проектом
  • Оптимизация программной части проекта и конфигурации сервера под максимальную скорость работы. Базовая СЕО оптимизация и добавление сайта в поисковые системы.

Блог-note Заметки по 1С-Битрикс