Импорт пользователей
В целом, задача импорта пользователей из другой системы не такая уж и сложная: достаточно создать CSV-файл со списком пользователей, в котором будут заполнены как минимум поля «NAME» и «LAST_NAME»( Импорт пользователей из CSV-файла ).
Но есть одна загвоздка: пароли пользователей, в большинстве случаев, хранятся в зашифрованном виде и сохранить эти пароли в базе Битрикса сразу нельзя. Чтобы решить эту задачу, потребуется прибегнуть к небольшой хитрости.
Весь процесс можно разделить на 3 шага.
1. Для начала, конечно же, необходимо экспортировать пользователей из старой системы в CSV-файл. Я не буду заострять внимание на этом шаге, способы есть разные, упомяну только лишь о возможности экспортировать данные определённой таблицы в CSV-файл с использованием phpMyAdmin.
В результате в CSV-файле у вас должно получиться примерно такое содержимое:
| NAME | LAST_NAME | LOGIN | PASSWORD |
| Иван | Иванов | ivan | $P$BMcujdtDPda5n0WhJWl81tPGAlyrCw. |
| Пётр | Петров | test | $P$BP9Z.C4z2YkgJ6JibnhA2UKPPwlqZo. |
| Антон | Шпак | user | $P$BsAjJCwkgTm3jmgwUYxlhgCenydAB./ |
2. Как уже упоминалось выше, поле «PASSWORD», скорее всего, будет содержать зашифрованное значение. Чтобы пользователь не заметил смены движка и дальше продолжал пользоваться функционалом сайта, но при этом мы могли бы записать корректное значение пароля в базу Битрикса, пользователю потребуется заново авторизоваться. Вот тут-то мы и определим пароль, сравнив зашифрованное значение, загруженное из CSV-файла, со значением, отправленным пользователем при авторизации, используя алгоритм из старой системы, который Вам потребуется скопировать.
Перед импортом необходимо в файле «/bitrix/php_interface/init.php» вставить обработчик события OnAfterUserAdd :
AddEventHandler("main", "OnAfterUserAdd", "__afterUserAdd"); function __afterUserAdd($arParams) < if(defined("USER_IMPORT_EXECUTION_TIME")) < global $DB; $DB->Ins ert("old_user", array( "LOGIN" => "'".$DB->ForSQL($arParams["LOGIN"])."'", "HASH" => "'".$DB->ForSQL($arParams["PASSWORD"])."'" )); > >
В этом обработчике при импорте, после добавления пользователя, будет происходить добавление логина и зашифрованного пароля в отдельную таблицу, назовём её «old_user». Создать таблицу можно в «Настройки — Инструменты — SQL-запрос», выполнив запрос:
CRE ATE TABLE `old_user` ( `LOGIN` varchar(60) NOT NULL, `HASH` varchar(64) NOT NULL, PRIMARY KEY (`LOGIN`) );
Затем запустите CSV-импорт и убедитесь, что таблица «old_user» заполнилась.
3. На следующем и последнем шаге удалите из файла «/bitrix/php_interface/init.php» вставленный код и вставьте новый:
AddEventHandler("main", "OnBeforeUserLogin", "__beforeUserLogin"); function __beforeUserLogin($arParams) < global $DB; $login = $DB->ForSQL($arParams["LOGIN"]); $password = $arParams["PASSWORD"]; $from_old = "FROM old_user wh ere 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; // Проверяем правильность присланного пароля // алгоритмом старой системы // (в данном случае это worpress 3.3.1) require_once('wp-class-phpass.php'); $wp_hasher = new PasswordHash(8, TRUE); if(!$wp_hasher->CheckPassword($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; >
Этот код будет решать основную задачу, которую я описал выше: сопоставлять отправленный пользователем пароль с имеющимися в таблице «old_user» и записывать его, в случае совпадения, в таблицу Битрикса.
Периодически Вы можете просматривать содержимое таблицы «old_user». Когда таблица «old_user» опустеет, Вы можете удалить её, как и код, указанный на 3 шаге.
Стоит также учесть, что пользователь может захотеть изменить пароль. Это можно запретить для пользователей, находящихся в таблице «old_user», создав обработчик события OnSendUserInfo .
Форум
Всем привет. Знаю что для импорта пользователей из CSV-файла минимально необходимое условие — это указание имени ( NAME ) и фамилии пользователя ( LAST_NAME ).
Как отключить эту функцию или где удалить на время? У меня в CSV у некоторых пользователей (500 чел.) не все эти поля заполнены. У кого-то просто NAME , а у кого-то только LAST_NAME.
Это грузится:
XML_ID;EMAIL;LOGIN;PASSWORD;NAME;LAST_NAME;SECOND_NAME;PERSONAL_MOBILE;PERSONAL_NOTES
user-1;email@yandex.ru;login;123456789; Имя ; Фамилия ;Отчество;+7495;Разное
Это не грузится:
Не указано имя пользователя
Не указана фамилия пользователя
Посетитель
Сообщений: 71 Баллов: 5 Регистрация: 11.08.2012
07.03.2014 18:55:12
Нашел решение: Заменил ;; на ;»…»;
Теперь вместо имени и фамилии — .
Страницы: 1
Центр поддержки
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
Как импортировать пользователей из CSV в Битрикс КП?

Добрый день, импортировал пользователей из АД.
Не достающие поля, такие как год рождения, к примеру, хочу импортировать из CSV,
по примеру собрал файл с данными
при импорте получатся так, что создается новый пользователь, а мне нужно обновить информацию в некоторых полях, какое следует добавить поле для сопоставления пользователей?
- Вопрос задан более трёх лет назад
- 742 просмотра
Комментировать
Решения вопроса 2

Андрей Николаев @gromdron Куратор тега Битрикс24
Работаю с Bitrix24
В Вашем случае никак. Список пользователей -> Импорт пользователей для CSV файла не обновляет пользователей, а только создает и эта связь осуществляется по логину.
Я бы заносил информацию в AD или ставил задачу на портале по заполнению полей.
Можно конечно в 1С все это подтянуть и сделать связь: 1С -> Bitrix
Ответ написан более трёх лет назад
Нравится 3 1 комментарий
Импорт в Битрикс. С чего начинать?
В данной статье мы расскажем вам о своем опыте интеграции с Битриксом и о некоторых особенностях этой системы. Наша компания занимается разработкой e-commerce-интегратора, возможности которого включают наполнение интернет-магазинов товарами, интеграцию баз поставщиков с базами магазинов, анализ прайсов конкурентов, актуализацию склада, цен и др.
Обновление от 2023 года
- он работает на отдельном сервере, т.е. ваш сервер не будет задействован для обработки прайсов
- огромный опыт, более 10 лет уже этим занимаются
- поддержка и через тикеты и через телеграм
- интергация с другими системами
- адаптация под наши местные реалии
- 14 дней бесплатного тестирования — вы успеете проверить как все работает.
Следует также отметить, что у нас уже были клиенты, e-commerce-приложения которых работали на базе Битрикс. Однако они почему-то всегда просили нас экспортировать данные в разные форматы. Мы так и делали, и всех все устраивало. Однако все же возникал закономерный вопрос: «Почему Битрикс один, а форматы для импорта в него у всех разные?». Как-то раз одному из наших заказчиков потребовалось организовать импорт данных напрямую в Битрикс. Мы скачали демо-версию Битрикса для магазинов и выяснили, что в нем есть возможность импорта данных в CSV-формате. А так как в этот формат мы уже давно и успешно импортируем, то и было решено воспользоваться для решения нашей задачи именно этой возможностью. Оценив стоимость проекта и уточнив все детали с заказчиком, мы принялись за импорт в Битрикс.
Импорт в Битрикс через CSV
Начав заливать данные, мы выяснили, что использовать CSV-формат не очень удобно из-за требования заказчика переносить параметры товаров. Если точнее, то CSV отбросили потому, что импортировать товары с параметрами очень неудобно в этом режиме: Битрикс постоянно требовал непонятные заголовки для CSV-файла. Они были больше похожи на внутренние названия полей, и разбираться с ними не было желания. Очень маловероятно, что этот способ принес бы требуемый результат.
Таким образом, если вам нужно сделать простой импорт в Битрикс, где требуется перенести “название товара”, “описание”, “цену” и “картинку”, то тогда этот способ подойдет, если что-то большее — ищите другой способ.
При более детальном изучении было выяснено, что Битрикс поддерживает следующие способы импорта:
— через CSV;
— CommerceML;
— XML;
— через 1С.
Сразу скажу, что в конечном итоге выбрали импорт товаров в магазин через 1С, а вот почему — читайте ниже.
Импорт в Битрикс через CommerceML
Этот способ изначально казался наиболее перспективным, так как в Интернете много различных статей о том, какой CommerceML-формат классный. Немного смутил тот факт, что официальный сайт этого формата не открывался, но мы нашли и скачали XSD-формат, несколько примеров и начали анализировать.
Первое, что вызвало культурный шок, — это русский язык в названиях тегов, но, сделав ставку на локальность продуктов и доступность их для пользователей, можно было принять сей факт. Для русскоязычного населения и соответственно пользователей этот способ наиболее подходящий. Далее сделали вручную несколько тестовых файлов и начали тестировать импорт в Битрикс. Он не работал, как нам нужно было, и не было понятно, почему нельзя залить сразу и цены и склад.
После был предложен тестовый CommerceML-файл в импорт XML, и часть информации стала отображаться после импорта на сайте, как нам хотелось, но все еще не удавалось отобразить цены, только номенклатура висела на сайте. Эта загрузка CommerceML-файла в импорт XML работала, но что-то все же было не так.
Импорт в Битрикс через 1С
Позже выяснилось, что есть способ импорта в Битрикс, которым пользуются чуть ли не все, — это импорт из 1С. Разобравшись, что для импорта нужны два файла — import.xml и offers.xml — и сделав примеры этих файлов, начали опять тестировать их на реальном сайте Битрикса, поочередно подставляя то в процедуру импорта CommerceML, то в процедуру импорта XML. Требуемый результат так и не получался. Где-то на форумах встретилась фраза о том, что процедура импорта CommerceML требует формат файла 1.х, а тот, который мы генерировали, был версии 2.х, поэтому мы начали разбираться, как же импортировать эти import.xml и offers.xml, которые были явно валидные, но почему-то все никак не хотели отображаться в магазине.
Поняв, что следует научиться импортировать в Битрикс именно эти два файла и зная, что они генерируются из 1С, появилось понимание того, что необходима 1С, чтобы их заимпортировать. 1С это умеет делать через веб. 1С получает в качестве параметра ссылку на веб-обработчик (можно сказать, сервис). В процессе импорта в Битрикс 1С передает файлы на сайт, а потом последовательно импортирует оба файла. Мы уже хотели начать писать программу эмуляции 1С, но вдруг наткнулись на интересное расширение, которое эмулирует работу импорта в Битрикс из 1С! В результате все сошлось.
Важные шаги процесса импорта в Битрикс механизмом через 1С:
1) Файл расширения — bx_1c_import_lite.php (он легко гуглится и находится на сайте Битрикса) копируем в корень и далее открываем в браузере. Открыв эту ссылку, мы получаем возможность импорта файлов import.xml и offers.xml.
2) Согласно документации файлы import.xml и offers.xml следует положить в папку uploads/1c_catalog, но на деле получилось, что нужно было эти два файла положить в корневую папку 1c_catalog, предварительно ее создав.
3) Далее следует дать пользователю (в нашем случае администратору) возможность импорта в Битрикс (задаем права доступа) через интерфейс 1с, как показано на следующей картинке.
4) Затем решение проблемы отображения каталога Битрикс. Этот пункт мы сделали в самом начале наших исследований способов импорта в Битрикс, но нужен он именно здесь. Для отображения каталога следует выбрать правильные компоненты отображения. Общая идея настройки показана на следующем рисунке:
То есть надо открыть страницу Catalog в визуальном редакторе, после этого поменять визуальный компонент этой страницы на “Каталог” из доступных компонентов (на рисунке они справа). Затем, перетянув компонент на страницу, двойным кликом по нему начать редактирование, задав последовательно все требуемые настройки.
5) Свойства товара в Битрикс. На данном этапе нам требовалось засветить на сайте более 1 тыс. свойств на карточках продуктов. А показывались только Артикул и Цена, хотя в админке отображалось, что на товаре свойства есть, и свойства есть на инфоблоке каталога. Впоследствии выяснилось, что свойства в Битриксе отображаются на странице товара только в случае, если им задан “Мнемонический код свойства”. Выставив парочку вручную и убедившись в правильности выставления, мы попытались найти, как выставить эти свойства через файлы import.xml и offers.xml, но ничего подходящего не нашли. После был написан следующий скрипт, который заполнял в странице браузера мнемонические коды автоматически (странно, что в Битриксе нет такой функциональности «из коробки»), вот код JavaScript:
var elems = document.getElementsByTagName(‘*’);
var t = 0;
for(var i=0; i var el = elems[i];
if (el.type == ‘text’)
if (el.value == »)
el.value = ‘CATL_’ + t;
t = t + 1;
>
На этом весь процесс импорта в Битрикс заканчивается. Мы получили то, что требовалось, — красивую карточку товара с большой картинкой и правильной ценой, отображением наличия на складе и красивым выводом свойств товара. Пример одной из карточек товара показан на следующем изображении:

Получив опыт первого импорта в Битрикс, хотим поделиться своими впечатлениями о системе (с точки зрения интегратора и поставщика данных):
1) Битрикс имеет огромные возможности «прямо из коробки».
2) Изначально Битрикс — это CMS общего назначения. Для использования в качестве магазина следует делать косметические настройки после инсталляции.
3) Битрикс — это для бизнеса. Существует огромное число студий, которые работают с Битриксом. У них всегда можно заказать разработку и консультации.
4) Поддержка формата CammerceML 2.0, используемого Битриксом во время импорта через 1С, лучшего из тех, с которыми нам приходилось работать (сегодня мы поддерживаем 17 CMS).
