В csv файле не указано поле name имя пользователя
Чтобы осуществить импорт пользователей вам сперва будет необходимо сформировать файл CSV с информацией о пользователях.
Наиболее простой и удобный способ получить шаблон файла с корректными заголовками столбцов:
- Запустить экспорт пользователей,
- Открыть скачанный файл,
- При необходимости удалить ненужные строки (с уже существующими пользователями - если вы не планируете их обновлять) и столбцы (если какая-либо информация вам не нужна при импорте),
- Заполнить получившийся файл,
- Загрузить и импортировать файл.
Чтобы вам было легче ориентироваться при заполнении файла информацией (или если вы хотите вручную сформировать файл, без предварительного экспорта), вы можете воспользоваться следующими правилами заполнения файла:
Логин пользователя (через него также может осуществляться авторизация на сайте). Также должен быть уникален для каждого пользователя. Поле опциональное для заполнения. Может быть использован в качестве ключевого поля.
Номер телефона пользователя.
Содержимое поля "Адрес доставки".
Содержимое поля "Примечание".
Содержимое поля "Расчетный счет".
BIK
Содержимое поля "БИК".
Содержимое поля "Юридический адрес".
Содержимое поля "Почтовый адрес".
Статус активации пользователя (параметр "Аккаунт активирован").
Укажите 1, если аккаунт активирован.
Укажите 0, если аккаунт еще не подтвержден.
Необходимость прохождения модерации.
Укажите 1, если аккаунт непромодерирован.
Укажите 0, если аккаунт не требует модерации.
Статус бана аккаунта.
Укажите 1, если аккаунт забанен.
Укажите 0, если аккаунт не должен находиться в бане.
В случае если у вас в разделе "Пользователи" существуют еще какие-либо дополнительные поля, вы можете импортировать значения и для них. В данном случае заголовок столбца должен быть именно в приведенном формате (рекомендуем все же для этих целей воспользоваться предварительным экспортом). Для дополнительных полей ID прописан в скобках рядом с названием поля (в разделе "Настройки"). Таким образом, сперва вам необходимо указать транслитерированное название поля, а затем, через двоеточие его ID. Например, Dopolnitelnyy telefon:phone2.
Количество начисленных в рамках бонусной программы баллов.
Если в "Настройках пользователей" вы добавили собственные поля, вы также можете заполнять и обновлять их с помощью импорта.
Название столбца будет сформировано из транслитерированного названия поля (например, поле "Телефон" в файле импорта будет заполняться через столбец "Telefon:telefon").
Чтобы получить файл с корректными заголовками столбцов, настоятельно рекомендуем сначала осуществить экспорт пользователей и уже на основе полученного файла сфорировать таблицу для импорта.
Содержимое ячейки должно соответствовать типу поля. Иными словами:
- Если это текстовая строка или текстовое поле - в наполнении должен быть текст.
- Если это выпадающий список или радиогруппа - в ячейке должен быть нужный вариант списка.
- Если это галочка - укажите "1", если галочка должна быть отмечена, и "0", если снята.
- Если это календарь - укажите дату в формате ДД.ММ.ГГГ.
Когда файл будет готов, перейдите непосредственно к запуску и настройке импорта.
Курс предназначен для базовой подготовки администраторов сайтов, созданных на "1С-Битрикс: Управление сайтом". Изучив курс, вы освоите основные методы администрирования системы, а также пополните знания по темам, изученным в курсе Контент-менеджер.
Если вы добросовестно изучите курс, то научитесь:
- управлять доступом к системе, сайтами, пользователями, группами пользователей;
- работать с инструментами системы;
- использовать возможности интерфейса по управлению системой;
- работать с модулями "1С-Битрикс: Управление сайтом", связанными с оптимизацией и безопасностью работы сайта;
- выполнять работу по конфигурированию веб-системы для оптимальной работы.
Если вам предстоит самостоятельная установка системы или перенос сайта на хостинг, то без курса Установка и настройка Курс Установка и настройка предназначен для специалистов устанавливающих "1С-Битрикс: Управление сайтом" или "Битрикс24 в коробке".
Начальные требования
Необходимый минимум знаний для изучения курса:
- базовые навыки компьютерной грамотности и навыки работы с ОС Windows;
- базовые знания о WWW и организации доступа к веб-серверу;
- знание системы в рамках курса Контент-менеджер Мы считаем, что вы этот курс уже прошли и знаете многое о Битриксе. Поэтому подсказок во всплывающих окнах будет намного меньше, чем в курсе Контент-менеджер. , чтобы банально не путаться в интерфейсе.
Неплохо было бы иметь базовые навыки установки и администрирования *nix-систем.
У нас часто спрашивают, сколько нужно заплатить
Курс полностью бесплатен. Изучение курса, прохождение итоговых тестов и получение сертификатов - ничего из этого оплачивать не нужно.
Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Баллы опыта
В конце каждого урока есть кнопка Прочитано! . При клике на неё в Вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:
уроке.
Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, поэтому итоговое количество набранных Вами баллов может отличаться от максимально возможного. Не переживайте! Отличный результат - это если общее число набранных Вами баллов отличается от максимального на 1-2%.
Тесты и сертификат
После изучения курса пройдите тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение вы увидите результат обучения и там же - ваш сертификат в формате PDF.
Иконка успешно сданного вами курса отображается в вашем профиле на Freelance, если вы укажите ссылку на ваш профиль на сайте компании 1С-Битрикс.
Комментарии к урокам
Для преподавания офлайн
Если данный курс берётся в качестве основы для офлайнового преподавания, то рекомендуемая продолжительность: 3 дня (24 академических часа).
Если нет интернета
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса. Версия файла - от 11.04.2022.
Как проходить учебный курс?
Перенос пользователей в CMS «1C-Битрикс» из другой системы выполняется довольно быстро и без сложностей. Для этого нужно создать CSV-файл с перечнем пользователей с заполненными полями NAME и LAST_NAME, LOGIN и PASSWORD. Однако имейте в виду: здесь может возникнуть проблема с паролями. Пользовательские данные в большинстве ситуаций находятся в зашифрованном виде и сохранить их в базу Bitrix сразу не получится. Для решения этой задачи нужно учесть несколько важных нюансов.
Этап 2. Вставляем обработчик события
В поле Password (пароль) будет зашифрованное значение. Чтобы пользователь не заметил переезд на другой движок и без проблем продолжил пользоваться функционалом сайта, ему придется авторизоваться заново. Нам потребуется включить оптимальное значение пароля в базу «1C-Битрикс». Здесь и нужно определить пароль путем сравнения зашифрованного значения из CSV-файла со значением, которое пользователь отправил при авторизации. Для этого скопируйте алгоритм из старой системы.
Перед тем, как выполнить импорт, требуется вставить обработчик события OnAfterUserAdd в файл /bitrix/php_interface/init.php. Для этого используем следующий кусок кода:
В процессе импорта этот обработчик после включения в него пользователя будет добавлять логин и зашифрованный пароль в отдельную таблицу. Пускай она называется old_user. Сделать ее можно, используя SQL-запрос. Для этого заходим в «Настройки» => «Инструменты» => «SQL-запрос».
Выполняем следующий запрос:
Далее запускаем CSV-импорт и проверяем, что таблица old_user заполнена целиком.
Альтернатива: Open Office Calc
Для работы с CSV-файлами я использую именно Calc. Он не то чтобы совсем не считает цифровые данные строками, но хотя бы не применяет к ним переформатирование в соответствии с региональными настройками Windows. Да и импорт попроще.
Конечно, понадобится пакет Open Office (OO). При установке он предложит переназначить на себя файлы MS Office. Не рекомендую: хоть OO достаточно функционален, он не до конца понимает хитрое микрософтовское форматирование документов.
А вот назначить OO программой по умолчанию для CSV-файлов — вполне разумно. Сделать это можно после установки пакета.
Итак, запускаем импорт данных из CSV. После двойного клика на файле Open Office показывает диалог.
Заметьте, в OO не нужно создавать новый воркбук и принудительно запускать импорт, все само
- Кодировка — как в файле.
- «Разделитель» — точка с запятой. Естественно, если в файле разделителем выступает именно она.
- «Разделитель текста» — пустой (все то же, что в Excel).
- В разделе «Поля» кликаю в левый-верхний квадрат таблицы, подсвечиваются все колонки. Указываю тип «Текст».
Помимо Calc у нас в HFLabs популярен libreOffice, особенно под «Линуксом». И то, и другое для CSV применяют активнее, чем Excel.
Побеждаем порчу данных правильным импортом
Если серьезно, в бедах виноват не Excel целиком, а неочевидный способ импорта данных в программу.
По умолчанию Excel применяет к данным в загруженном CSV-файле тип «General» — общий. Из-за него программа распознает цифровые строки как числа. Такой порядок можно победить, используя встроенный инструмент импорта.
Запускаю встроенный в Excel механизм импорта. В меню это «Data → Get External Data → From Text».
Выбираю CSV-файл с данными, открывается диалог. В диалоге кликаю на тип файла Delimited (с разделителями). Кодировка — та, что в файле, обычно определяется автоматом. Если первая строка файла — шапка, отмечаю «My Data Has Headers».
Перехожу ко второму шагу диалога. Выбираю разделитель полей (обычно это точка с запятой — semicolon). Отключаю «Treat consecutive delimiters as one», а «Text qualifier» выставляю в «». (Text qualifier — это символ начала и конца текста. Если разделитель в CSV — запятая, то text qualifier нужен, чтобы отличать запятые внутри текста от запятых-разделителей.)
На третьем шаге выбираю формат полей, ради него все и затевалось. Для всех столбцов выставляю тип «Text». Кстати, если кликнуть на первую колонку, зажать шифт и кликнуть на последнюю, выделятся сразу все столбцы. Удобно.
Дальше Excel спросит, куда вставлять данные из CSV — можно просто нажать «OK», и данные появятся в открытом листе.
Перед импортом придется создать в Excel новый workbook
Но! Если я планирую добавлять данные в CSV через Excel, придется сделать еще кое-что.
После импорта нужно принудительно привести все-все ячейки на листе к формату «Text». Иначе новые поля приобретут все тот же тип «General».
- Нажимаю два раза Ctrl+A, Excel выбирает все ячейки на листе;
- кликаю правой кнопкой мыши;
- выбираю в контекстном меню «Format Cells»;
- в открывшемся диалоге выбираю слева тип данных «Text».
Чтобы выделить все ячейки, нужно нажать Ctrl+A два раза. Именно два, это не шутка, попробуйте
После этого, если повезет, Excel оставит исходные данные в покое. Но это не самая твердая гарантия, поэтому мы после сохранения обязательно проверяем файл через текстовый просмотрщик.
Бонус-трек: проблемы при сохранении из Calc в .xlsx
Если сохраняете данные из Calc в экселевский формат .xlsx, имейте в виду — OO порой необъяснимо и масштабно теряет данные.
Белая пустошь, раскинувшаяся посередине, в оригинальном CSV-файле богато заполнена данными
Поэтому после сохранения я еще раз открываю файл и убеждаюсь, что данные на месте.
Если что-то потерялись, лечение — пересохранить из CSV в .xlsx. Или, если установлен Windows, импортнуть из CSV в Excel и сохранить оттуда.
После пересохранения обязательно еще раз проверяю, что все данные на месте и нет лишних пустых строк.
Если интересно работать с данными, посмотрите на наши вакансии. HFLabs почти всегда нужны аналитики, тестировщики, инженеры по внедрению, разработчики. Данными обеспечим так, что мало не покажется :)
Столкнулась с такой проблемой: в Moodle 2.6 при загрузке пользователей из csv-файла (кодировка UTF-8) не распознаются символы кириллицы (имя, фамилия, город. ) - вместо них пустота. Соответственно, система выдаёт ошибку "пустое имя".
При этом если в тексте встречается некириллический символ (например, точка или _), то и он, и вся кириллица после него видны. Вот так выглядит таблица предпросмотра загружаемых записей (фамилия видна, потому что начинается с точки):
А вот так выглядит таблица в Moodle 2.3 (загрузка из того же файла):
Экспериментировала с различными кодировками (собственно до "точки" и докопалась).
Может, кто-то сталкивался с такой проблемой? Куда копать?
Людмила, точно с такой же проблемой сталкивался Yuriy Antonovich, только эта тема исчезла с сайта после ноябрьского сбоя. Была тут: Russian » Форумы » Общий форум » Кириллические символы при загрузке пользователей
Спросите у Юрия в личке, решил ли он проблему.
ЗЫ: csv-файл прикрепите, проверю у себя.
Спасибо, Вадим, за совет!
ЛС отправила, но в профиле написано, что Юрий Антонович не был на форуме больше 2 лет
Файлик прикрепила, буду очень благодарна за проверку
Юрий Антонович не был на форуме больше 2 лет
Вопрос наглядно представлен на рисунках. Загрузка файла, представленного на рис.1 (Блок "Настройки" - Администрирование - Пользователи - Учётные записи - Загрузить пользователей) приводит к результатам, представленным на рис.2. Кириллические символы в примере отображаются только после цифры. В чём может быть проблема загрузки ФИО?
Прим.: замечено после поэтапного обновления Moodle с версии 1.9 до версии 2.5.2+ (Build: 20131011). В версии 1.9 пользователи загружались нормально.
С файлом всё в порядке, в версии 2.6.1 пользователь загружается без ошибок. Отладка на сайте включена на "Разработчик…"? Ошибок никаких не выводит?
Проверьте загрузку тестовых вопросов с кириллицей, терминов глоссария из файла XML, может проблема с кодировкой БД, и кириллица нигде не работает. Пока на ум больше ничего не приходит
The block ajax_marking does not define the standard capability block/ajax_marking:addinstance
- line 617 of /blocks/moodleblock.class.php: call to debugging()
- line 595 of /blocks/moodleblock.class.php: call to block_base->has_add_block_capability()
- line 1118 of /lib/blocklib.php: call to block_base->user_can_addto()
- line 1098 of /lib/blocklib.php: call to block_manager->user_can_delete_block()
- line 256 of /blocks/moodleblock.class.php: call to block_manager->edit_controls()
- line 956 of /lib/blocklib.php: call to block_base->get_content_for_output()
- line 1008 of /lib/blocklib.php: call to block_manager->create_block_contents()
- line 361 of /lib/outputrenderers.php: call to block_manager->ensure_content_created()
- line 37 of /theme/essential/layout/columns2.php: call to core_renderer->standard_head_html()
- line 866 of /lib/outputrenderers.php: call to include()
- line 796 of /lib/outputrenderers.php: call to core_renderer->render_page_layout()
- line 1093 of /admin/tool/uploaduser/index.php: call to core_renderer->header()
В глоссарий данные из xml-файла загружаются корректно.
Надо, однако, пробовать обновление (до сих пор боялась). А "минорное" обновление происходит так же, как и "мажорное"? То есть надо всё удалить из каталога, кроме config.php, предварительно сохранив всё и вся, и т.д.? Или есть возможность обновиться с 2.6 до 2.6.1 автоматом?
Эта ошибка не критична, версия блока ajax_marking не соответствует требованиям версии moodle 2.6 (в файле /blocks/ajax_marking/db/access.php не указано разрешение standard capability block/ajax_marking:addinstance). Но, в вашем случае, т. к. в moodle что-то не работает (или работает неправильно), я бы его удалил и попробовал загрузить пользователей снова.
То есть надо всё удалить из каталога, кроме config.php, предварительно сохранив всё и вся, и т.д.?
Именно. "Автоматом" (через админку) можно обновлять только плагины.
Все "подозрительные" блоки полностью удалила, но проблему это не решило. Вадим, большое спасибо за терпение и помощь.
Проблема пока остаётся открытой, началась сессия у дистантников и экспериментировать пока некогда. Если что-то решится или появятся новые идеи, обязательно сюда напишу.
Всем плодотворной работы и с прошедшим праздником
Людмила, для работы используйте LibreOffice. Несколько вариантов:
- можно разрабатывать таблицы в Excel, сохранить, потом открыть в LibreCalc и сохранить в csv в кодировке utf-8,
- можно сразу в LibreCalc и сохранить в csv в кодировке utf-8
Андрей, спасибо за совет!
Кодировку я меняла в Notepad++, но это не помогало. А потом сменили хостинг - и всё наладилось
Moodle позволяет вводить CSV-файлы в самых разных кодировках, не только в UTF-8. Нужно только правдиво указать разделители и кодировку, которую вы используете. Наш Excel создает CSV-файлы в кодировке Windows 1251 с разделителем ";" (хотя, тип файла, который мы выбираем при сохранении файла в Excel, называется CSV, разделители запятые). Поэтому я создаю файл в Excel и сразу импортирую его в Moodle. Ничего не конвертирую.
Я тоже в Libre Office делаю в Calc. Там при сохранении нужно поставить галочку "Изменение настроек фильтра" внизу окна сохранения, ну и выбрать формат CSV. Тогда откроется дополнительное окно где можно и кодировку задать и разделитель любой выбрать.
Сообщаю о результатах. Получила ответ от Юрия Антоновича, пишет, что полностью проблему так и не решили, нашли два временных решения: точка в имени и прямой доступ к БД. Однако, с переносом ресурсов на другой сервер проблема перестала быть.
На своём сайте обнаружила подобный же баг и с загрузкой записей в модуль "База данных" из файла csv, решала её взятием в кавычки всех значений (результат более приемлемый, поскольку кавычки системой просто отбрасывались, и в базе не было никаких посторонних символов). Вчера перенесли сайт на другой сервер - и теперь все пользователи загружаются корректно (убрать бы теперь точки у старых пользователей))).
Спасибо всем за участие!
Точки в lastname можно убрать у всех сразу прямым SQL-запросом к БД (надеюсь, точки только в одном месте в фамилии?):
Что такое CSV-файлы
Формат CSV используют, чтобы хранить таблицы в текстовых файлах. Данные очень часто упаковывают именно в таблицы, поэтому CSV-файлы очень популярны.
CSV-файл состоит из строк с данными и разделителей, которые обозначают границы столбцов
CSV расшифровывается как comma-separated values — «значения, разделенные запятыми». Но пусть название вас не обманет: разделителями столбцов в CSV-файле могут служить и точки с запятой, и знаки табуляции. Это все равно будет CSV-файл.
У CSV куча плюсов перед тем же форматом Excel: текстовые файлы просты как пуговица, открываются быстро, читаются на любом устройстве и в любой среде без дополнительных инструментов.
Из-за своих преимуществ CSV — сверхпопулярный формат обмена данными, хотя ему уже лет 40. CSV используют прикладные промышленные программы, в него выгружают данные из баз.
Одна беда — текстового редактора для работы с CSV мало. Еще ничего, если таблица простая: в первом поле ID одной длины, во втором дата одного формата, а в третьем какой-нибудь адрес. Но когда поля разной длины и их больше трех, начинаются мучения.
Следить за разделителями и столбцами — глаза сломаешь
Еще хуже с анализом данных — попробуй «Блокнотом» хотя бы сложить все числа в столбце. Я уж не говорю о красивых графиках.
Поэтому CSV-файлы анализируют и редактируют в Excel и аналогах: Open Office, LibreOffice и прочих.
Ветеранам, которые все же дочитали: ребята, мы знаем об анализе непосредственно в БД c помощью SQL, знаем о Tableau и Talend Open Studio. Это статья для начинающих, а на базовом уровне и небольшом объеме данных Excel с аналогами хватает.
Этап 3. Вставляем новый код
Последний шаг — удалить вставленный код /bitrix/php_interface/init.php из файла и добавить новый. К примеру, переносим пользователей с WordPress на «1C-Битрикс»:
Этот код решает самую важную задачу: он сравнивает отправленный пользователем пароль с паролем old_user из таблицы. В случае совпадения код фиксирует отправленный пароль в таблице.
Вы можете регулярно изучать содержимое таблицы old_user. Когда она станет пустой, ее можно удалить, как и большой кусок кода, прописанный выше.
Учитывайте, что пользователи периодически меняют пароли. Запретите это действие для тех, чьи пароли находятся в таблице old_user. Для этого создайте обработчик события OnSendUserInfo.
Этап 1. Экспортируем пользователей в CSV-файл
Далее кликните по значку шестеренки в верхней правой части. В открывшемся меню выбирайте Excel. После этого вам предложат сохранить пользовательский список в формате CSV. Если же вы хотите выгрузить дополнительные поля, то просто включите их в список. В получившемся файле у вас будет примерно такой перечень:
Пример выгрузки пользователей
Специализируемся на 1С-Битрикс более 10 лет и знаем все подводные камни и специфику. Работаем с сайтами любой технической сложности и бизнес-логики. При необходимости подключаем UX-специалиста и дизайнера. В течение 2 часов реагируем на обращения в тикетной системе.
В четырех ячейках представлены имена, фамилии, логин и пароль.
Как Excel портит данные: из классики
Все бы ничего, но Excel, едва открыв CSV-файл, начинает свои лукавые выкрутасы. Он без спроса меняет данные так, что те приходят в негодность. Причем делает это совершенно незаметно. Из-за этого в свое время мы схватили ворох проблем.
Большинство казусов связано с тем, что программа без спроса преобразует строки с набором цифр в числа.
Округляет. Например, в исходной ячейке два телефона хранятся через запятую без пробелов: «5235834,5235835». Что сделает Excel? Лихо превратит номера́ в одно число и округлит до двух цифр после запятой: «5235834,52». Так мы потеряем второй телефон.
Приводит к экспоненциальной форме. Excel заботливо преобразует «123456789012345» в число «1,2E+15». Исходное значение потеряем напрочь.
Проблема актуальна для длинных, символов по пятнадцать, цифровых строк. Например, КЛАДР-кодов (это такой государственный идентификатор адресного объекта: го́рода, у́лицы, до́ма).
Потеря плюса критична, например, если данные пойдут в стороннюю систему, а та при импорте жестко проверяет формат.
Разбивает по три цифры. Цифровую строку длиннее трех символов Excel, добрая душа, аккуратно разберет. Например, «8 495 5235834» превратит в «84 955 235 834».
Форматирование важно как минимум для телефонных номеров: пробелы отделяют коды страны и города от остального номера и друг от друга. Excel запросто нарушает правильное членение телефона.
Удаляет лидирующие нули. Строку «00523446» Excel превратит в «523446».
А в ИНН, например, первые две цифры — это код региона. Для Республики Алтай он начинается с нуля — «04». Без нуля смысл номера исказится, а проверку формата ИНН вообще не пройдет.
Меняет даты под локальные настройки. Excel с удовольствием исправит номер дома «1/2» на «01.фев». Потому что Windows подсказал, что в таком виде вам удобнее считывать даты.
Использование модуля
Второй способ переноса пользователей с сайта, на котором стоит редакция «1С-Битрикс», — использование специального модуля «Перенос пользователей». С его помощью вы транспортируете все пользовательские данные, выводимые на странице редактирования по следующей ветке: «Пользователи» – «Список пользователей».
Не будут, однако, перенесены файловые поля. Это фотографии («Личные данные») и Логотип компании (вкладка «Работа). При этом модуль переносит значения (в том числе и множественные) из вкладки «Дополнительные поля». Перед началом переноса обязательно нужно выполнить бэкапы.
Для корректной работы модуля требуется установка расширения Curl. В параметрах перед переносом модуль потребует такие данные, как URL сайта, логин и пароль админа, группу пользователей, а также лимит пользователей на этап переноса.
Продукты HFLabs в промышленных объемах обрабатывают данные: адреса, ФИО, реквизиты компаний и еще вагон всего. Естественно, тестировщики ежедневно с этими данными имеют дело: обновляют тест-кейсы, изучают результаты очистки. Часто заказчики дают «живую» базу, чтобы тестировщик настроил сервис под нее.
Первое, чему мы учим новых QA — сохранять данные в первозданном виде. Все по заветам: «Не навреди». В статье я расскажу, как аккуратно работать с CSV-файлами в Excel и Open Office. Советы помогут ничего не испортить, сохранить информацию после редактирования и в целом чувствовать себя увереннее.
Материал базовый, профессионалы совершенно точно заскучают.
Читайте также: