Разработка сайта автошколы на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка сайта автошколы на 1С-Битрикс
Сложная
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка сайта автошколы на 1С-Битрикс

Сайт автошколы — не витрина с телефоном и адресом. Это рабочий инструмент, который закрывает запись учеников, управляет расписанием инструкторов и разгружает администраторов от рутинных звонков. На 1С-Битрикс такой проект строится на связке инфоблоков, Highload-блоков и кастомных компонентов без необходимости подключать сторонние сервисы.

Каталог курсов: структура инфоблока

Основа каталога — инфоблок «Курсы» с типом «Обучение». Каждый элемент соответствует одной программе подготовки. Свойства элемента:

  • Категория (список): 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-шлюз.

Онлайн-тесты ПДД: deep-dive

Тестирование ПДД — ключевая функция, ради которой ученики возвращаются на сайт ежедневно. Стандартные модули Битрикс (опросы, веб-формы) для этого не подходят: нет таймера, нет рандомизации, нет разбивки по темам с подсчётом статистики.

Архитектура хранения вопросов

Инфоблок «Вопросы ПДД» с разделами по темам: «Проезд перекрёстков», «Дорожные знаки», «Сигналы светофора», «Первая помощь» и т.д. (всего 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 секунд, результат не засчитывается (бот или автокликер).

Отзывы выпускников

Инфоблок «Отзывы» с обязательной премодерацией (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 недели на контент.