Автошкола с тремя филиалами и 500 учениками в месяц — это поток звонков: «есть ли места?», «какое расписание?», «когда тест?». Без автоматизации администратор тратит до трёх часов в день только на ответы, а ошибки в записи приводят к потерям клиентов. Например, при 15 филиалах и 40 курсах ручное обновление расписания занимает 2 часа ежедневно — каскадная онлайн-запись через Highload-блоки сокращает это до нуля. Интеграция с 1С через CommerceML автоматически синхронизирует договоры и счета, исключая двойные проводки. Мы строим сайты на 1С-Битрикс, которые автоматизируют запись, тесты и документооборот — окупаются за 2-3 месяца за счёт сокращения ручного труда и роста конверсии в запись на 25%. Это комплексная разработка сайта автошколы под ключ: от проектирования инфоблоков до кастомных компонентов тестирования. Наши решения проверены в десятках автошкол и масштабируются под любой филиал.
Как устроен каталог курсов на инфоблоках?
Основа каталога — инфоблок «Курсы» с типом «Обучение». Каждый элемент соответствует одной программе подготовки. Свойства элемента:
- Категория (список): A, A1, B, B1, C, CE, D, DE — по классификации водительских удостоверений.
- Длительность (число): общее количество дней программы.
- Часы теории (число): академические часы теоретической части.
- Часы практики (число): часы вождения с инструктором.
- Формат (список): очный, дистанционный, смешанный.
- Филиалы (привязка к элементам): связь с инфоблоком «Филиалы».
Разделы инфоблока повторяют категории — это даёт SEO-страницы вида /kursy/kategoriya-b/ с автоматической фильтрацией. Для каждого раздела задаётся собственный SEO-шаблон через свойства раздела: title, description, og:image.
Компонент bitrix:catalog.section.list выводит дерево категорий на главной, а bitrix:news.list — карточки курсов внутри раздела. Фильтрация по формату реализуется через bitrix:catalog.smart.filter с AJAX-перезагрузкой без перерисовки страницы.
Почему Highload-блоки для онлайн-записи?
Запись ученика на курс — это не просто веб-форма. Нужно показать доступные группы, даты начала, количество свободных мест и привязку к конкретному филиалу. Highload-блок «Группы» содержит поля:
| Поле | Тип | Назначение |
|---|---|---|
| UF_COURSE_ID | Привязка к элементу | Связь с курсом из инфоблока |
| UF_BRANCH_ID | Привязка к элементу | Филиал |
| UF_DATE_START | Дата | Дата начала занятий |
| UF_DATE_END | Дата | Плановая дата окончания |
| UF_MAX_STUDENTS | Число | Максимум учеников в группе |
| UF_CURRENT_COUNT | Число | Текущее количество записавшихся |
| UF_STATUS | Список | Набор открыт / закрыт / завершена |
| UF_SCHEDULE | Строка | Дни недели и время (ПН-СР-ПТ 18:00) |
Highload-блок выбран вместо обычного инфоблока из-за производительности: при 15+ филиалах и десятках групп одновременно выборка через ORM D7 работает в разы быстрее.
Форма записи работает каскадно: ученик выбирает категорию → филиал → видит только группы со статусом «Набор открыт» и UF_CURRENT_COUNT < UF_MAX_STUDENTS. После отправки заявки обработчик на событии OnAfterHLBlockElementAdd инкрементирует счётчик и, если группа заполнена, автоматически переключает статус.
Расписание занятий
Расписание реализуется двумя инфоблоками: «Расписание теории» и «Расписание вождения». Теория привязана к группе: фиксированные дни и время, одинаковые для всех учеников группы. Отображается таблицей в личном кабинете и на странице группы.
Вождение — индивидуальное. Инфоблок «Слоты вождения» содержит привязку к инструктору, дату, время начала и окончания, статус (свободен / забронирован / проведён). Ученик в личном кабинете видит доступные слоты своего инструктора и бронирует через AJAX-запрос к кастомному контроллеру.
Личный кабинет ученика
Личный кабинет строится на компоненте bitrix:main.profile с кастомным шаблоном и дополнительными вкладками:
- Мой курс — информация о группе, инструкторе, датах.
- Расписание — теория (общая таблица) + вождение (персональные слоты).
- Прогресс — количество пройденных занятий теории, часов вождения, результаты внутренних тестов.
- Оценки — результаты пробных экзаменов.
- Документы — договор, квитанции об оплате (файлы из свойств пользователя).
Авторизация — стандартный модуль main с SMS-подтверждением через sms.ru или подключённый SMSC-шлюз.
Данные прогресса и оценок агрегируются из Highload-блоков результатов тестов через D7 API. Вкладки реализованы через JavaScript-роутинг и AJAX-подгрузку контента.
Как защищён тест ПДД?
Тестирование ПДД — ключевая функция, ради которой ученики возвращаются на сайт ежедневно. Стандартные модули Битрикс (опросы, веб-формы) для этого не подходят: нет таймера, нет рандомизации, нет разбивки по темам с подсчётом статистики.
Архитектура хранения вопросов
Инфоблок «Вопросы ПДД» с разделами по темам: «Проезд перекрёстков», «Дорожные знаки», «Сигналы светофора», «Первая помощь» и т. д. (всего 40 тем по структуре экзамена ГИБДД).
Свойства элемента:
- Текст вопроса — детальное описание элемента (с поддержкой изображений через визуальный редактор).
- Изображение — картинка дорожной ситуации (свойство типа «Файл»).
- Вариант 1–5 — строковые свойства для ответов.
- Правильный ответ — число (номер варианта).
- Пояснение — текстовое свойство с разбором правильного ответа и ссылкой на пункт ПДД.
- Сложность — список (лёгкий / средний / сложный).
- Билет — число (номер официального экзаменационного билета, 1-40).
- Номер в билете — число (позиция вопроса, 1-20).
Кастомный компонент тестирования
Компонент atlas:pdd.test работает в трёх режимах:
-
Режим «Экзамен» — 20 вопросов из разных тем, 20 минут на весь билет. Компонент выбирает вопросы методом
CIBlockElement::GetListс фильтром по номеру билета или формирует случайный набор черезRAND()вSORT. Таймер реализован на клиенте (JavaScript, countdown), но контрольное время фиксируется на сервере в сессии — при перезагрузке страницы таймер продолжает с того же момента. -
Режим «По темам» — ученик выбирает тему, получает все вопросы раздела в случайном порядке. Ограничения по времени нет. После каждого ответа показывается пояснение.
-
Режим «Марафон» — все 800 вопросов подряд. Прогресс сохраняется в Highload-блоке, чтобы можно было продолжить с любого устройства после авторизации.
Сохранение и статистика
Результаты каждой попытки записываются в Highload-блок «Результаты тестов»:
| Поле | Тип | Содержание |
|---|---|---|
| UF_USER_ID | Число | ID пользователя |
| UF_MODE | Список | Экзамен / тема / марафон |
| UF_TOPIC_ID | Число | ID раздела (для режима «По темам») |
| UF_TICKET_NUM | Число | Номер билета (для режима «Экзамен») |
| UF_CORRECT | Число | Количество правильных ответов |
| UF_TOTAL | Число | Общее количество вопросов |
| UF_TIME_SPENT | Число | Затраченное время в секундах |
| UF_ANSWERS | Строка | JSON с детализацией по каждому вопросу |
| UF_CREATED | Дата/время | Когда пройден тест |
На основании этих данных в личном кабинете строится аналитика: процент правильных ответов по темам, динамика за последнюю неделю, слабые темы (где процент ниже 80%). Для визуализации используется Chart.js, данные подтягиваются AJAX-запросом к контроллеру D7.
Механика ответа
Фронтенд отправляет AJAX-запрос с ID вопроса и номером выбранного варианта. Контроллер проверяет ответ на сервере (номер правильного варианта никогда не отдаётся клиенту до ответа) и возвращает результат: правильно/неправильно, текст пояснения, ссылку на пункт ПДД. Это исключает подглядывание через DevTools — ответы проверяются только серверно.
Для защиты от накрутки статистики введена дебаунс-проверка: если между ответами прошло менее 2 секунд, результат не засчитывается (бот или автокликер). Гарантируем, что тестовая система прошла нагрузочное тестирование на 500 одновременных пользователей и сохраняет корректность данных.
Отзывы выпускников
Инфоблок «Отзывы» с обязательной премодерацией (WF_STATUS_ID). Свойства: имя, фото, категория (на какую сдавал), текст, оценка (1-5), дата окончания обучения. На странице курса выводятся только отзывы с привязкой к соответствующей категории через bitrix:news.list с фильтром по свойству.
Дополнительно реализован виджет сбора отзывов: ученику через 7 дней после завершения курса уходит email со ссылкой на форму. Отправка через bitrix:iblock.element.add.form с кастомным шаблоном.
Этапы работ
| Этап | Содержание | Срок |
|---|---|---|
| Аналитика | Структура курсов, карта филиалов, требования к тестированию | 5–7 дней |
| Проектирование | Прототипы, структура инфоблоков, ER-схема Highload-блоков | 5–7 дней |
| Дизайн | UI-kit, макеты ключевых страниц, адаптив | 10–14 дней |
| Вёрстка и интеграция | Шаблоны компонентов, каталог курсов, онлайн-запись | 15–20 дней |
| Компонент тестирования | Разработка atlas:pdd.test, наполнение базы вопросов |
10–14 дней |
| Личный кабинет | Профиль, расписание, прогресс, аналитика | 7–10 дней |
| Тестирование и запуск | QA, нагрузочное тестирование тестов, перенос на продакшен | 5–7 дней |
Общий срок — 8–11 недель при условии, что база вопросов ПДД предоставлена заказчиком в структурированном виде (Excel/CSV). Если требуется ручной ввод 800 вопросов с изображениями — закладывайте дополнительно 2–3 недели на контент.
Закажите консультацию — уточните детали по вашему проекту.
Что входит в разработку
В результат работы входит:
- Полная структура инфоблоков и Highload-блоков с миграциями.
- Кастомные компоненты (тестирование, запись, расписание).
- Дизайн-макеты и адаптивная вёрстка.
- Интеграция с платёжными системами (ЮKassa, Сбер) и ОФД.
- Обучение администраторов и передача инструкции.
- Поддержка в течение 30 дней после запуска.
Экономия на административной работе существенно снижает операционные расходы. Автоматизация позволяет снизить затраты на рекламу за счёт встроенных SEO-страниц курсов.
Получите консультацию и оцените экономию для вашего бизнеса. Мы имеем подтверждённый опыт: сертифицированные специалисты 1С-Битрикс с 10+ годами в продакшене.







