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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка сайту автошколи на 1С-Бітрікс
Складна
від 1 тижня до 3 місяців
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Розробка сайту автошколи на 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-шлюз.

Онлайн-тести ПДР: детальний розгляд

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

Архітектура зберігання питань

Інформаційний блок «Питання ПДР» з розділами за темами: «Проїзд перехресть», «Дорожні знаки», «Сигнали світлофора», «Перша допомога» тощо (всього 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 — відповіді перевіряються тільки на сервері.

Для захисту від накрутки статистики введена debounce-перевірка: якщо між відповідями пройшло менше 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 тижні на контент.