o058oo
@o058oo
Кофе, код и рок-н-ролл!

Как импортировать пользователей в 1С-Битрикс?

Имеется CSV-файл вида:
LOGIN;NAME;EMAIL;PASSWORD;UF_FIELD_NAME
и, соответственно там данные вида:
ivan;Иван;ivan@site.ru;Qwerty123;abcd

Вопрос в том, как сделать импорт пользователей с паролями? Пароли в незашифрованном виде.
  • Вопрос задан
  • 71 просмотр
Решения вопроса 2
anton99zel
@anton99zel Куратор тега 1С-Битрикс
29а класс средней школы №7
$csvData = file_get_contents('./people.csv');
$lines = explode(PHP_EOL, $csvData);
$array = array();
foreach ($lines as $line) {
    $array[] = str_getcsv($line);
}
print_r($array);

Пример результата
Array
(
    [0] => Array
        (
            [0] => 12345
            [1] => Computers
            [2] => Acer
            [3] => 4
            [4] => Varta
            [5] => 5.93
            [6] => 1
            [7] => 0.04
            [8] => 27-05-2013
        )

    [1] => Array
        (
            [0] => 12346
            [1] => Computers
            [2] => Acer
            [3] => 5
            [4] => Decra
            [5] => 5.94
            [6] => 1
            [7] => 0.04
            [8] => 27-05-2013
        )

)


А вот код добавления пользователей, его в цикле выполнить
$user     = new CUser;
    $arFields = array(
        "NAME" => $name,
        "LOGIN" => $login,
        "EMAIL" => $email,
        "PHONE_NUMBER" => $phone,
        "LID" => "ru",
        "ACTIVE" => "Y",
        "PASSWORD" => $pass,
        "CONFIRM_PASSWORD" => $pass,
        "GROUP_ID" => array(10, 11)
    );
    $new_user_ID    = $user->Add($arFields);


перед кодом
require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");

Ссылки в помощь
https://dev.1c-bitrix.ru/api_help/main/reference/c...
https://www.php.net/manual/ru/function.file-get-co...
https://askdev.ru/q/php-csv-stroka-v-massiv-95815/
Ответ написан
o058oo
@o058oo Автор вопроса
Кофе, код и рок-н-ролл!
Собственно получился такой код, возможно кому пригодится. Большие файлы не берет, естественно выдает 504. Но файлы по 200-300 строк заходят нормально.

<? require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");

$csvData = file_get_contents('./people.csv');
$lines = explode(PHP_EOL, $csvData);
$array = array();
foreach ($lines as $line) {
    $array[] = str_getcsv($line);
	
	foreach ($array as $arr) {
		$user     = new CUser;
		$arFields = array(
			"NAME" => $arr[0],
			"LOGIN" => $arr[0],
			"EMAIL" => $arr[3],
			"PHONE_NUMBER" => $arr[0],
			"LID" => "ru",
			"ACTIVE" => "Y",
			"PASSWORD" => $arr[1],
			"CONFIRM_PASSWORD" => $arr[1],
			"GROUP_ID" => array(21),
			"UF_FIELD_STRING" => $arr[0]
		);
		$new_user_ID    = $user->Add($arFields);
		
		$ID = $user->Add($arFields);
		if (intval($ID) > 0)
			echo "Пользователь успешно добавлен.";
		else
			echo $user->LAST_ERROR;
	}
}
//print_r($array);

?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ITFactory Ростов-на-Дону
от 65 000 до 120 000 ₽
Докторслон.ру Санкт-Петербург
от 100 000 до 150 000 ₽
СОЮЗСНАБ Москва
от 150 000 до 180 000 ₽
02 мар. 2021, в 14:48
2000 руб./за проект
02 мар. 2021, в 14:30
40000 руб./за проект
02 мар. 2021, в 14:20
40000 руб./за проект