Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
Конверсайт
Разработка и продвижение сайтов на 1С-Битрикс
+7 391 204-60-83
+7 391 204-60-83
E-mail
info@conversite.ru
Адрес
г. Красноярск, ул. Ладо Кецховели 22а, офис 8-28/1
Режим работы
Пн. – Пт.: с 9:00 до 18:00
Услуги
  • Разработка сайтов
    • Одностраничные сайты
    • Корпоративные сайты
    • Интернет-магазины
    • Индивидуальный проект
    • Разработка сайта для для государственных организаций
  • SEO-продвижение сайтов
    • SEO продвижение
    • Базовая seo оптимизация
  • Настройка контекстной рекламы
    • Яндекс.Директ
  • Дополнительные услуги
    • Ускорение сайта - композитный режим 1С-Битрикс
Каталог
  • Готовые интернет-магазины
    • B2B
    • Авто
    • Бытовая техника, электроника и оборудование
    • Детские товары
    • Другое
    • Красота и здоровье
    • Мебель
    • Одежда, обувь, аксессуары
    • Подарки и сувениры
    • Продукты питания
    • Спорт, туризм, отдых
    • Строительство и ремонт
    • Товары для животных
    • Украшения, аксессуары
    • Универсальные
  • Готовые сайты
    • Landing page
    • Информационный портал
    • Каталог товаров, услуг
    • Корпоративный сайт
    • Персональный сайт
    • Универсальные
  • Для интернет-магазина
    • Другое
    • Интеграция с онлайн-кассами
    • Каталог товаров
    • Корзина, покупка
    • Курсы валют
    • Подарки, скидки
    • Работа с заказами
  • Инструменты
    • Для разработчиков
    • Контент-менеджеру
  • Интеграция
    • 1С и другие ERP
    • IP-телефония
    • SMS-шлюзы
    • Другое
    • Почтовые сервисы
    • Социальные сети
    • Торговые площадки
  • Маркетинг, реклама
    • SEO
    • Баннеры
    • Другое
    • Региональность
    • Статистика сайта
  • Мобильные приложения
  • Поддержка клиентов
    • Другое
    • Заказ звонка
    • Обратная связь
    • Онлайн-консультанты
    • Отзывы, комментарии
    • Подписки и рассылки
  • Решения для Битрикс24
    • CRM
    • Бизнес-процессы
    • Документы
    • Другое
    • Задачи
    • Импорт/экспорт
    • Инструменты
    • Сотрудники
    • Телефония
    • Чат-боты
Компания
  • Сертификаты
  • Партнеры
  • Отзывы
  • Вакансии
  • Реквизиты
  • Документы
Битрикс24
  • Битрикс24
    • Базовый
    • Стандартный
    • Професиональный
    • Энтерпрайз
Проекты
Блог
Контакты
  • Отзывы
  • Сертификаты
  • Вопрос-ответ
  • Контакты
  • ...
    +7 391 204-60-83
    +7 391 204-60-83
    E-mail
    info@conversite.ru
    Адрес
    г. Красноярск, ул. Ладо Кецховели 22а, офис 8-28/1
    Режим работы
    Пн. – Пт.: с 9:00 до 18:00
    Войти
    Конверсайт
    Разработка и продвижение сайтов на 1С-Битрикс
    Услуги
    • Разработка сайтов
      Разработка сайтов
      • Одностраничные сайты
      • Корпоративные сайты
      • Интернет-магазины
      • Индивидуальный проект
      • Разработка сайта для для государственных организаций
    • SEO-продвижение сайтов
      SEO-продвижение сайтов
      • SEO продвижение
      • Базовая seo оптимизация
    • Настройка контекстной рекламы
      Настройка контекстной рекламы
      • Яндекс.Директ
    • Дополнительные услуги
      • Ускорение сайта - композитный режим 1С-Битрикс
    Каталог
    • Готовые интернет-магазины
      • B2B
      • Авто
      • Бытовая техника, электроника и оборудование
      • Детские товары
      • Другое
      • Красота и здоровье
      • Мебель
      • Одежда, обувь, аксессуары
      • Подарки и сувениры
      • Продукты питания
      • Спорт, туризм, отдых
      • Строительство и ремонт
      • Товары для животных
      • Украшения, аксессуары
      • Универсальные
    • Готовые сайты
      • Landing page
      • Информационный портал
      • Каталог товаров, услуг
      • Корпоративный сайт
      • Персональный сайт
      • Универсальные
    • Для интернет-магазина
      • Другое
      • Интеграция с онлайн-кассами
      • Каталог товаров
      • Корзина, покупка
      • Курсы валют
      • Подарки, скидки
      • Работа с заказами
    • Инструменты
      • Для разработчиков
      • Контент-менеджеру
    • Интеграция
      • 1С и другие ERP
      • IP-телефония
      • SMS-шлюзы
      • Другое
      • Почтовые сервисы
      • Социальные сети
      • Торговые площадки
    • Маркетинг, реклама
      • SEO
      • Баннеры
      • Другое
      • Региональность
      • Статистика сайта
    • Мобильные приложения
    • Поддержка клиентов
      • Другое
      • Заказ звонка
      • Обратная связь
      • Онлайн-консультанты
      • Отзывы, комментарии
      • Подписки и рассылки
    • Решения для Битрикс24
      • CRM
      • Бизнес-процессы
      • Документы
      • Другое
      • Задачи
      • Импорт/экспорт
      • Инструменты
      • Сотрудники
      • Телефония
      • Чат-боты
    Компания
    • Сертификаты
    • Партнеры
    • Отзывы
    • Вакансии
    • Реквизиты
    • Документы
    Битрикс24
    • Битрикс24
      • Базовый
      • Стандартный
      • Професиональный
      • Энтерпрайз
    Проекты
    Блог
    Контакты
      Конверсайт
      +7 391 204-60-83
      +7 391 204-60-83
      E-mail
      info@conversite.ru
      Адрес
      г. Красноярск, ул. Ладо Кецховели 22а, офис 8-28/1
      Режим работы
      Пн. – Пт.: с 9:00 до 18:00
      Войти
      Конверсайт
      Телефоны
      +7 391 204-60-83
      E-mail
      info@conversite.ru
      Адрес
      г. Красноярск, ул. Ладо Кецховели 22а, офис 8-28/1
      Режим работы
      Пн. – Пт.: с 9:00 до 18:00
      Конверсайт
      • Услуги
        • Услуги
        • Разработка сайтов
          • Разработка сайтов
          • Одностраничные сайты
          • Корпоративные сайты
          • Интернет-магазины
          • Индивидуальный проект
          • Разработка сайта для для государственных организаций
        • SEO-продвижение сайтов
          • SEO-продвижение сайтов
          • SEO продвижение
          • Базовая seo оптимизация
        • Настройка контекстной рекламы
          • Настройка контекстной рекламы
          • Яндекс.Директ
        • Дополнительные услуги
          • Дополнительные услуги
          • Ускорение сайта - композитный режим 1С-Битрикс
      • Каталог
        • Каталог
        • Готовые интернет-магазины
          • Готовые интернет-магазины
          • B2B
          • Авто
          • Бытовая техника, электроника и оборудование
          • Детские товары
          • Другое
          • Красота и здоровье
          • Мебель
          • Одежда, обувь, аксессуары
          • Подарки и сувениры
          • Продукты питания
          • Спорт, туризм, отдых
          • Строительство и ремонт
          • Товары для животных
          • Украшения, аксессуары
          • Универсальные
        • Готовые сайты
          • Готовые сайты
          • Landing page
          • Информационный портал
          • Каталог товаров, услуг
          • Корпоративный сайт
          • Персональный сайт
          • Универсальные
        • Для интернет-магазина
          • Для интернет-магазина
          • Другое
          • Интеграция с онлайн-кассами
          • Каталог товаров
          • Корзина, покупка
          • Курсы валют
          • Подарки, скидки
          • Работа с заказами
        • Инструменты
          • Инструменты
          • Для разработчиков
          • Контент-менеджеру
        • Интеграция
          • Интеграция
          • 1С и другие ERP
          • IP-телефония
          • SMS-шлюзы
          • Другое
          • Почтовые сервисы
          • Социальные сети
          • Торговые площадки
        • Маркетинг, реклама
          • Маркетинг, реклама
          • SEO
          • Баннеры
          • Другое
          • Региональность
          • Статистика сайта
        • Мобильные приложения
        • Поддержка клиентов
          • Поддержка клиентов
          • Другое
          • Заказ звонка
          • Обратная связь
          • Онлайн-консультанты
          • Отзывы, комментарии
          • Подписки и рассылки
        • Решения для Битрикс24
          • Решения для Битрикс24
          • CRM
          • Бизнес-процессы
          • Документы
          • Другое
          • Задачи
          • Импорт/экспорт
          • Инструменты
          • Сотрудники
          • Телефония
          • Чат-боты
      • Компания
        • Компания
        • Сертификаты
        • Партнеры
        • Отзывы
        • Вакансии
        • Реквизиты
        • Документы
      • Битрикс24
        • Битрикс24
        • Битрикс24
          • Битрикс24
          • Базовый
          • Стандартный
          • Професиональный
          • Энтерпрайз
      • Проекты
      • Блог
      • Контакты
      • Кабинет
      • 0 Корзина
      • +7 391 204-60-83
        • Телефоны
        • +7 391 204-60-83
      • г. Красноярск, ул. Ладо Кецховели 22а, офис 8-28/1
      • info@conversite.ru
      • Пн. – Пт.: с 9:00 до 18:00

      Перенос пользователей Битрикс (Импорт/Экспорт)

      Главная
      —
      Блог
      —Перенос пользователей Битрикс (Импорт/Экспорт)
      Перенос пользователей Битрикс (Импорт/Экспорт)
      Программирование

      Очень частой задачей является перенести пользователей со старой системы 1С-Битрикс на новую. При этом мы конечно же хотим сохранить весь процесс незаметным для клиента что бы не приходилось делать массовую рассылку с временным паролем и так далее.

      Очень частой задачей является перенести пользователей со старой системы 1С-Битрикс на новую. При этом мы конечно же хотим сохранить весь процесс незаметным для клиента что бы не приходилось делать массовую рассылку с временным паролем и так далее.

      Экспорт пользователей

      Мы можем настроить необходимые столбцы и экспортировать данные в формате Excel с помощью стандартного функционала Битрикс, так же можно сделать экспорт через phpMyAdmin, но мы решили написать этот функционал самостоятельно. На исходном сайте создаем файл, например users.php со следующим содержимым:

      // Подключаем пролог Bitrix require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); // Проверяем права доступа if (!$USER->IsAdmin()) { die("Access denied"); } // Устанавливаем заголовки для скачивания CSV файла header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=users.csv'); // Открываем поток для записи в файл $output = fopen('php://output', 'w'); // Записываем заголовки столбцов fputcsv($output, array('ID', 'NAME', 'LAST_NAME' ,'LOGIN','PASSWORD', 'EMAIL')); $rsUsers = CUser::GetList(($by="sort"), ($order="desc"), array()); $users = []; while ($arUser = $rsUsers->Fetch()) { if(empty($arUser['NAME'])) $arUser['NAME'] = 'EMPTY'; if(empty($arUser['LAST_NAME'])) $arUser['LAST_NAME'] = 'EMPTY'; $users[] = $arUser; } foreach($users as $user) { fputcsv($output, array( $user['ID'], $user['NAME'], $user['LAST_NAME'], $user['LOGIN'], $user['PASSWORD'], $user['EMAIL'], )); } // Закрываем поток fclose($output); // Завершаем выполнение скрипта require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");

      После запуска скрипта будет скачан файл .csv со списком пользователей, мы не будем рассматривать в этой статье ситуацию с большим объемом данных, в таких случаях обмен можно выполнять частями.

      Промежуточная таблица

      Основная задумка в том, что нам необходимо создать промежуточную таблицу для пользователей перед их загрузкой, а после добавления уже внести данные в эту таблицу, в этом случае мы сможем сравнивать хэш паролей перед авторизацией клиентов и в случае совпадения обновлять незаметно пароль и удалять запись из промежуточной таблицы.

      Создаем таблицу (Настройки-> Инструменты -> SQL запрос):

      CRE ATE TABLE `old_user` (
      		  `LOGIN` varchar(60) NOT NULL,
      		  `HASH` varchar(64) NOT NULL,
      		  PRIMARY KEY (`LOGIN`)
      		);

      Экспорт пользователей

      Перед добавлением пользователей в базу регистрируем обработчик события OnBeforeUserAdd

      AddEventHandler("main", "OnBeforeUserAdd", "__beforeUserAdd");
      
      		  function __beforeUserAdd($arParams)
      		  {
      		    if (defined("USER_IMPORT_EXECUTION_TIME")) {
      		      global $DB;
      
      		      $from_old = "FROM old_user where LOGIN='".$arParams["LOGIN"]."';";
      		      $rsOLDUser = $DB->Query("SELECT * $from_old");
      		      if (!($rsOLDUser->GetNext())) {
      		        $DB->Insert("old_user", array(
      		          "LOGIN" => "'" . $DB->ForSQL($arParams["LOGIN"]) . "'",
      		          "HASH" => "'" . $DB->ForSQL($arParams["PASSWORD"]) . "'"
      		        ));
      		      }
      
      		    }
      		  }

      Как только обработчик готов можно запускать импорт пользователей из CSV файла.

      Сравниваем хэш паролей перед авторизацией с помощью события OnBeforeUserLogin

      Пишем обработчик события OnBeforeUserLogin в котором после ввода пароля мы сравниваем его хэш со старым хэшем из промежуточной таблицы и если они совпали обновляем хэш пароля пользователя, авторизуем его в системе и удаляем из промежуточной таблицы.

      AddEventHandler("main", "OnBeforeUserLogin", "__beforeUserLogin");
      		  function __beforeUserLogin($arParams)
      		  {
      		    global $DB;
      
      		    $login = $DB->ForSQL($arParams["LOGIN"]);
      		    $password = $arParams["PASSWORD"];
      		    $from_old = "FROM old_user where LOGIN='$login';";
      
      		    // Ищем пользователя с таким логином в "old_user"
      		    $rsOLDUser = $DB->Query("SELECT * $from_old");
      		    if(!($arOLDUser = $rsOLDUser->GetNext()))
      		      return true;
      
      		    // Ищем пользователя с таким логином в базе Битрикса
      		    $rsBXUser = CUser::GetByLogin($login);
      		    if(!($arBXUser = $rsBXUser->GetNext()))
      		      return true;
      
      		    // Проверяем правильность присланного пароля
      		    // алгоритмом старой системы
      		    if(!password_verify($password, $arOLDUser['HASH']))
      		      return true;
      
      		    // Обновляем пароль пользователя в базе Битрикса
      		    $USER = new CUser;
      		    $bUbdate = $USER->Update($arBXUser["ID"], array("PASSWORD" => $password));
      		    unset($USER);
      		    if(!$bUbdate)
      		      return true;
      
      		    // А затем удаляем пользователя из "old_user"
      		    $DB->Query("DELETE $from_old");
      		    return true;
      		  }

      После экспорта пользователей обработчик __beforeUserAdd можно удалить, и периодически проверять промежуточную таблицу, как только она опустее можно удалять. Всем спасибо за внимание, если возникнут сложности или понадобится профессиональная помощь мы всегда на связи.

      • Комментарии
      Загрузка комментариев...
      Назад к списку
      • Программирование 5
      Подписывайтесь
      на новости и акции
      Компания
      Сертификаты
      Партнеры
      Отзывы
      Вакансии
      Реквизиты
      Документы
      Услуги
      Корпоративные сайты
      Интернет-магазины
      Лендинги
      Почему Вам стоит доверить работу именно нам

      Мы являемся партнером 1С-Битрикс и Битрикс24. И обладаем всеми необходимыми компетенциями для решения задач различной сложности.

      Профиль компании на сайтах:
      профиль Конверсайт на сайте 1С-Битрикс
      +7 391 204-60-83
      +7 391 204-60-83
      E-mail
      info@conversite.ru
      Адрес
      г. Красноярск, ул. Ладо Кецховели 22а, офис 8-28/1
      Режим работы
      Пн. – Пт.: с 9:00 до 18:00
      info@conversite.ru
      г. Красноярск, ул. Ладо Кецховели 22а, офис 8-28/1
      © 2025 Конверсайт - Разработка и продвижение сайтов на 1С-Битрикс
      Политика конфиденциальности
      0

      Корзина

      Очистить корзину

      Ваша корзина пуста

      Исправить это просто: выберите в каталоге интересующий товар и нажмите кнопку «В корзину»
      В каталог