Импорт вопросов позволяет наполнить тест десятками и сотнями заданий без ручного ввода каждого из них. В 1С-Битрикс вопросы модуля «Обучение» хранятся как разделы и элементы инфоблока, поэтому загрузка выполняется через стандартные механизмы импорта данных.
Где хранятся вопросы теста
В модуле «Обучение» (learning) тест — это набор вопросов, привязанных к учебному курсу или уроку. Технически данные разложены по инфоблокам: отдельно вопросы, отдельно варианты ответов.
- Тест — сущность, которая ссылается на курс и определяет параметры прохождения (проходной балл, время, попытки).
- Вопрос — элемент, содержащий формулировку, тип (один ответ, несколько ответов, свободный текст) и балл.
- Ответ — вариант, привязанный к вопросу, с признаком правильности и весом.
Чтобы импорт прошёл корректно, все три уровня должны сохранять связи между собой. Именно поэтому файл импорта строят иерархически: вопрос → его ответы.
Подготовка файла для импорта
Модуль «Обучение» использует формат обмена на базе XML, совместимый со стандартным механизмом импорта инфоблоков 1С-Битрикс. Для ручной подготовки удобнее промежуточная таблица (CSV или Excel), которую затем преобразуют в XML.
Минимальный набор полей для каждого вопроса:
| Поле | Назначение | Обязательное |
|---|---|---|
QUESTION | Текст вопроса | Да |
TYPE | Тип: R — один ответ, C — несколько, T — текст | Да |
POINT | Балл за верный ответ | Нет |
ANSWER | Текст варианта ответа | Да |
CORRECT | Признак верного ответа (Y/N) | Да |
Сохраняйте файл в кодировке, совпадающей с кодировкой сайта (обычно UTF-8). Несовпадение кодировки — самая частая причина «кракозябр» в импортированных вопросах.
Структура XML для загрузки
При выгрузке существующего теста Битрикс формирует XML, который можно взять за образец. Ключевой принцип — вопрос описывается элементом, а его ответы вложены как дочерние сущности либо связаны через внешний код (XML_ID).
- У каждого вопроса должен быть уникальный
XML_ID— по нему при повторном импорте система решает, создавать элемент или обновлять существующий. - Ответы ссылаются на вопрос через тот же внешний код, что обеспечивает целостность связей.
- Свойства (балл, тип, признак правильности) передаются как значения полей элемента.
Если вы генерируете XML скриптом, обязательно экранируйте спецсимволы (&, <, >) в тексте вопросов, иначе парсер отклонит файл.
Загрузка файла через админку
Импорт выполняется в разделе управления обучением. Порядок действий:
- Перейдите в Контент → Обучение → Тесты и откройте нужный тест (или создайте новый).
- Убедитесь, что тест привязан к курсу и указаны параметры прохождения.
- Откройте раздел Список вопросов и найдите действие импорта данных.
- Укажите подготовленный файл, выберите кодировку и режим (добавлять новые или обновлять по
XML_ID). - Запустите импорт и дождитесь завершения — для больших файлов процесс идёт пошагово, чтобы не упереться в лимит времени выполнения PHP.
После загрузки откройте список вопросов теста и проверьте, что варианты ответов подтянулись и хотя бы один из них помечен как правильный.
Привязка вопросов к тесту
Загруженные вопросы попадают в общий пул. Чтобы они участвовали в конкретном тесте, проверьте настройки выборки:
- Раздел вопросов — тест берёт вопросы из назначенной ему группы (раздела инфоблока). Импортируйте вопросы именно в этот раздел.
- Количество вопросов в попытке — можно задать случайную выборку из большего пула, что удобно после массового импорта.
- Перемешивание — порядок вопросов и ответов задаётся в настройках теста, а не в файле импорта.
Если после импорта тест показывает «нет вопросов», почти всегда причина в том, что вопросы легли не в тот раздел, из которого тест делает выборку.
Частые ошибки при импорте
Разбор типичных проблем, с которыми сталкиваются при загрузке вопросов:
- Кодировка не совпадает. Текст вопросов отображается нечитаемыми символами. Пересохраните файл в кодировке сайта и повторите импорт.
- Нет правильного ответа. Для типов
R/Cхотя бы один вариант должен иметьCORRECT = Y, иначе вопрос всегда засчитывается как неверный. - Дубли вопросов. При повторной загрузке без
XML_IDсистема создаёт копии. Используйте режим обновления по внешнему коду. - Незакрытые теги и спецсимволы. Невалидный XML прерывает импорт с ошибкой парсера — проверьте экранирование.
- Импорт в неправильный раздел. Вопросы загружены, но тест их не видит: сверьте раздел выборки в настройках теста.
- Обрыв на большом файле. Разбейте импорт на части или увеличьте лимиты
max_execution_timeи памяти.
Проверка результата после импорта
После загрузки не полагайтесь только на счётчик добавленных записей. Выполните контрольные шаги:
- Откройте несколько случайных вопросов и убедитесь, что формулировки и ответы читаемы.
- Проверьте признак правильности хотя бы у выборочных вопросов каждого типа.
- Пройдите тест от лица тестового пользователя и сверьте подсчёт баллов.
- Убедитесь, что случайная выборка действительно выдаёт заданное количество вопросов.
Такая проверка занимает несколько минут, но избавляет от ситуации, когда ошибку замечают уже реальные слушатели курса.
Итог
Импорт вопросов теста в модуле «Обучение» 1С-Битрикс сводится к трём вещам: корректно подготовленный файл (правильная кодировка, валидная структура, уникальные XML_ID), загрузка в раздел, из которого тест делает выборку, и обязательная проверка результата прохождением теста.
Соблюдение этих правил позволяет за один проход наполнить тест сотнями заданий и избежать дублей, потери связей и нечитаемого текста.