Сайт спортивного клуба на 1С-Битрикс: от расписания до билетной системы

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

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

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1357
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    946
  • 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
    693
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    830
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    732
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1075

Сайт спортивного клуба: от расписания до мерча на 1С-Битрикс

Представьте: болельщик хочет купить билет на матч, выбрать конкретное место на схеме стадиона, а заодно заказать футболку с фамилией игрока — всё на одном сайте. И всё это должно работать без тормозов при пиковых нагрузках. Мы строим такие сайты на 1С-Битрикс, где одновременно живут расписание тренировок, турнирные таблицы, билетная система с выбором мест и мерч-магазин. Каждый блок требует отдельной архитектуры данных, а вместе — грамотного кэширования и тегирования. Наш опыт показывает, что стандартные компоненты справляются только при кастомной настройке инфоблоков и Highload-блоков. Стоимость проекта рассчитывается индивидуально — свяжитесь с нами для оценки.

Как спроектировать структуру данных для спортивного клуба?

Для спортивного клуба выстраивается иерархия из нескольких связанных инфоблоков:

  • Команды — основной инфоблок с привязкой к виду спорта, лиге, сезону. Свойства: состав (привязка к инфоблоку «Спортсмены»), тренерский штаб, логотип, цвета формы.
  • Спортсмены — инфоблок с детализированными профилями: ФИО, амплуа, номер, антропометрия, фото в форме, статистика по сезонам (голы/очки/передачи вынесены в отдельный Highload-блок для быстрой выборки).
  • Матчи и тренировки — Highload-блок (b_hlblock_schedule), потому что записей за несколько сезонов набирается тысячи. Поля: дата/время, тип (тренировка/матч/товарищеский), команда-хозяин, команда-гость, стадион, статус (запланирован/идёт/завершён/перенесён), счёт.
  • Турниры — инфоблок с привязкой к сезону. Турнирная таблица формируется кастомным компонентом на основе результатов матчей из Highload-блока.

Привязки между инфоблоками реализуются через свойство типа «Привязка к элементам» (E) или через Highload-справочники, если нужна производительность на выборках.

Почему для расписания используют Highload-блоки?

Расписание тренировок и матчей — самый «горячий» раздел сайта. Болельщики заходят проверить ближайшие игры, тренеры смотрят расписание занятий, администраторы обновляют результаты в реальном времени.

Highload-блок выбран не случайно: при 300+ матчах за сезон и 5-6 командах в клубе обычный инфоблок начинает тормозить на сложных фильтрациях. Highload-блок хранит данные в отдельной таблице MySQL, запросы идут напрямую без overhead инфоблочного API. Сравнение: Highload-блоки обрабатывают запросы в 5 раз быстрее инфоблоков при выборках по 10 000 записей.

Фильтрация на фронте: по команде, по типу события, по месяцу. Компонент рендерит календарную сетку с цветовой индикацией — тренировки серым, домашние матчи зелёным, выездные синим. Для SEO каждый матч получает свою детальную страницу с ЧПУ вида /matches/2024-25/spartak-vs-dinamo-12-10/.

Кеш — тегированный, привязан к тегу schedule_updated. При обновлении любого элемента Highload-блока через обработчик события HighloadBlockOnAfterUpdate сбрасывается именно этот тег, а не весь кеш сайта.

Как работает билетная система с выбором места?

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

Архитектура решения: Каждый стадион (зал, арена) описывается SVG-файлом, в котором каждое место — отдельный элемент <rect> или <circle> с атрибутами data-sector, data-row, data-seat. SVG загружается в браузер, JavaScript-обработчик отвечает за интерактив: подсветка при наведении, выбор места кликом, отображение занятых мест серым цветом.

Хранение мест и состояний: Создаётся Highload-блок hl_stadium_seats с полями:

Поле Тип Назначение
UF_STADIUM_ID Число Привязка к стадиону
UF_SECTOR Строка Код сектора (A, B, C...)
UF_ROW Число Номер ряда
UF_SEAT Число Номер места
UF_CATEGORY Справочник Категория (VIP, стандарт, фан-зона)
UF_PRICE_ZONE Справочник Ценовая зона
UF_SVG_ID Строка ID элемента в SVG для сопоставления

Для каждого матча создаётся таблица бронирований — ещё один Highload-блок hl_ticket_bookings:

Поле Тип Назначение
UF_MATCH_ID Число ID матча из расписания
UF_SEAT_ID Число ID места из hl_stadium_seats
UF_STATUS Список free / reserved / sold / blocked
UF_ORDER_ID Число ID заказа в модуле sale
UF_RESERVED_AT Дата/время Время бронирования (для автоосвобождения)
UF_USER_ID Число Покупатель

Процесс покупки пошагово:

  1. Пользователь открывает страницу матча, загружается SVG-схема.
  2. AJAX-запрос к REST-контроллеру получает массив занятых мест для данного матча. JavaScript окрашивает их в серый и убирает обработчик клика.
  3. Пользователь кликает на свободное место — оно помечается как reserved в hl_ticket_bookings с таймштампом. Резерв живёт 15 минут, потом cron-агент (CTicketReserveAgent) обнуляет просроченные.
  4. Выбранные места добавляются в корзину модуля sale как товарные позиции. Для этого каждая ценовая зона представлена торговым предложением в каталоге. Свойство корзины SEAT_INFO хранит сериализованные данные о конкретном месте.
  5. Оформление заказа стандартное — sale.order.ajax с кастомизированным шаблоном. При успешной оплате статус меняется на sold, генерируется PDF-билет с QR-кодом через библиотеку TCPDF.
  6. QR содержит подписанный токен (HMAC-SHA256), который проверяется на входе сканером.

Конкурентный доступ — критичный момент. Два болельщика не должны забронировать одно место. Решение: UPDATE ... WHERE UF_STATUS = 'free' с проверкой affected rows. Если вернулся 0 — место уже занято, фронт показывает уведомление и перерисовывает SVG.

Производительность SVG-схемы на мобильных Стадион на 10 000 мест — это 10 000 DOM-элементов. На мобильных устройствах это вызывает лаги. Оптимизация: Canvas-рендеринг для обзорного вида с переключением на SVG при зуме в конкретный сектор. Либо разбивка по секторам — сначала выбирается сектор на упрощённой схеме, затем загружается детальная SVG только выбранного сектора.

Почему стоит подключить турнирные таблицы через кастомный компонент?

Кастомный компонент custom:tournament.table агрегирует данные из Highload-блока матчей: считает очки (3 за победу, 1 за ничью), разницу забитых/пропущенных, сортирует. Результат кешируется с тегом tournament_{ID}, сбрасывается при обновлении счёта любого матча в этом турнире.

Для командных видов спорта с плей-офф компонент умеет рендерить сетку play-off (bracket) через SVG — пары, победители, линии связей между раундами.

Профили спортсменов

Детальная страница спортсмена включает: фото, биографию, карьерные достижения (таймлайн через свойство инфоблока «множественное» — клуб, годы, достижения), статистику текущего сезона из Highload-блока, галерею фото/видео с привязкой через CIBlockElement::GetProperty.

Для SEO — микроразметка schema.org/Person с athlete в поле jobTitle, привязка к schema.org/SportsTeam.

Фан-зона и мерч-магазин

Новостной раздел реализуется стандартным компонентом news.list / news.detail с доработанным шаблоном. Фото- и видеогалерея — инфоблок с привязкой к матчам и спортсменам.

Мерч-магазин — полноценный интернет-магазин на модуле catalog + sale: футболки, шарфы, атрибутика. Торговые предложения по размеру и цвету, интеграция с 1С для учёта остатков. Работает параллельно с билетной системой, но в отдельном типе инфоблока, чтобы каталог товаров не пересекался с билетами.

Интеграция с билетными операторами

Если клуб продаёт билеты не только через свой сайт, но и через Ticketland, Kassir.ru или аналогичные системы — нужна синхронизация. Реализуется через REST API билетного оператора: при бронировании/продаже на стороне оператора webhook обновляет статус в hl_ticket_bookings. И наоборот — продажа на сайте отправляет данные оператору.

Cron-агент синхронизации запускается каждые 2 минуты, чтобы подтянуть изменения, которые могли не дойти через webhook (сетевые сбои, таймауты).

Этапы разработки

Этап Состав работ Срок
Проектирование Структура инфоблоков, HL-блоков, прототипы SVG-схем 2–3 недели
Вёрстка и фронтенд Адаптивные шаблоны, интерактивная SVG-схема, календарь 3–4 недели
Бэкенд билетной системы Модуль бронирования, интеграция с sale, PDF-билеты 4–5 недель
Контент и каталоги Профили спортсменов, турнирные таблицы, мерч-магазин 2–3 недели
Интеграции Билетные операторы, 1С, платёжные системы 2–3 недели
Тестирование Нагрузочное тестирование SVG (10 000 мест), конкурентное бронирование 1–2 недели
Запуск и сопровождение Деплой, мониторинг агентов, обучение редакторов 1 неделя

Что входит в работу

  • Полная документация по структуре инфоблоков, HL-блоков, настройкам кэширования.
  • Исходный код всех кастомных компонентов и агентов в репозитории.
  • Обучение редакторов: как добавлять матчи, обновлять статистику, загружать SVG-схемы.
  • Гарантийная поддержка в течение 1 месяца после запуска — исправление ошибок, консультации.

Мы гарантируем корректную работу системы при пиковых нагрузках до 10 000 одновременных посетителей. Свяжитесь с нами для оценки проекта — мы подготовим коммерческое предложение. Получите консультацию по архитектуре вашего спортивного сайта.

Как правильно проектировать инфоблоки?

Мы видим десятки проектов, где неправильная структура инфоблоков превращает сайт в тормоз. Типичный сценарий: заказчик просит «каталог товаров». Разработчик создаёт один инфоблок catalog, закидывает туда 15 свойств. Через полгода — 40 свойств, 8 из которых используются только для одной категории. Фильтр тормозит, таблица b_iblock_element_property разрослась до миллионов строк, CIBlockElement::GetList выполняется 3 секунды. Последствия — падение конверсии, потеря клиентов, дополнительные затраты на оптимизацию. В одном проекте после рефакторинга каталога время генерации страницы снизилось с 4,2 до 0,8 секунды, а стоимость поддержки сократилась на 250 000 рублей в год — за счёт устранения избыточных запросов и агентов.

Наш подход: проектируем инфоблоки до первой строки кода. Отдельные инфоблоки под сущности (товары, категории, бренды), свойства-справочники через highload-блоки, торговые предложения для SKU. Это закладывает производительность на годы вперёд. Если хотите получить предварительный аудит вашей схемы инфоблоков — свяжитесь с нами, разберём типовые ошибки и дадим рекомендации бесплатно.

Почему 1С-Битрикс выгоднее альтернатив?

Выбор CMS диктуется не предпочтениями, а бизнес-задачами. Вот ключевые аргументы:

  • Нативный обмен с 1С — модуль catalog.import.1c обеспечивает двусторонний обмен товарами, ценами, остатками и заказами через CommerceML. Без сторонних модулей. Это в 5 раз быстрее, чем разработка собственного обмена на OpenCart или WordPress. Подробнее о формате — в Wikipedia. Экономия на интеграции составляет в среднем 150 000–300 000 рублей по сравнению с кастомными решениями.
  • Проактивная защита — модуль security включает WAF, контроль целостности файлов, защиту от SQL-инъекций, двухфакторную аутентификацию. Для проектов с требованиями ФСТЭК — сертифицированное решение.
  • Модульная архитектура — подключаем только нужные модули: iblock, catalog, sale, search. Меньше модулей — меньше запросов к БД на каждый хит.
  • Регулярные патчи — вендор выпускает security-патчи, закрывая уязвимости быстрее, чем open-source проекты (среднее время исправления CVE — 2 недели). Официальная документация по модулям — dev.1c-bitrix.ru.

Что дают HL-блоки и как мы ускоряем каталог

Highload-блоки — это альтернатива расширенным свойствам инфоблоков, когда список значений может расти до тысяч записей. Типичный пример: производители, страны, цвета. Если хранить их как свойства-списки в инфоблоке, каждая фильтрация вызывает полное сканирование таблицы b_iblock_property_enum. С HL-блоками выборка идёт по индексу — время ответа фильтра снижается с 1–2 секунд до 50 мс. Мы используем HLB компонент и кастомные запросы через Bitrix\Highloadblock\DataManager. Это особенно критично для каталогов с 100 000+ товарами.

Из нашей практики — проект интернет-магазина с 500 000 товаров. Стандартный фильтр по бренду выполнялся 4 секунды. Сервер не выдерживал нагрузку в 50 одновременных запросов — страницы падали. Мы перевели справочник брендов в HL-блок, добавили тегированное кэширование на 15 минут и настроили агент для сброса кэша при изменении. После доработки время фильтрации составило 120 мс, средний LCP страницы — 1,8 секунды. Проект работает стабильно без сбоев.

Что входит в разработку сайта на 1С-Битрикс

Каждый проект включает полный комплект документации и артефактов, исключающий потерю знаний после передачи.

  • Техническое задание — user stories, диаграммы инфоблоков, схемы интеграций.
  • Исходный код в Git — с историей коммитов, тегами релизов, правилами ветвления.
  • Административная документация — описание кастомных компонентов, инструкции по разворачиванию, перечень агентов и событий.
  • Обучение сотрудников — до 3 часов вебинара: панель управления, работа с заказами, настройка цен. Записываем, чтобы можно было пересмотреть.
  • Доступ к staging на время разработки — тестируете сами до деплоя на продуктив.
  • Гарантийная поддержка — исправление ошибок кода в течение 30 дней после запуска. Постгарантийные абонентские пакеты с SLA (реакция 2 часа, решение 8 часов).

Наш процесс и технологии

Тип проекта Сроки Сложность Ключевые особенности
Корпоративный сайт от 1 месяца Средняя Каталог, новости, формы, CRM-интеграция
Интернет-магазин от 2 месяцев Высокая 54-ФЗ, маркетплейсы, обмен с 1С, SKU
B2B-портал от 3 месяцев Очень высокая Персональные цены, документооборот, Bizproc
Лендинг от 2 недель Низкая LCP < 2с, композитный кеш, статика
Многосайтовая структура от 1,5 месяцев Высокая Раздельный контент, общий каталог, hreflang

Стек: вёрстка mobile-first, тестируем на физических устройствах (iPhone, iPad, Android). Используем BrowserStack для Safari на iOS. Производительность — LCP < 2,5 с, FID < 100 мс, CLS < 0,1. Включаем композитный сайт (composite), CDN, тегированное кэширование, WebP/AVIF, lazy loading. SEO — Schema.org через JSON-LD, автогенерация sitemap.xml модулем seo, canonical и hreflang для мультиязычных версий. robots.txt закрываем /bitrix/ от индексации. CI/CD — Git, автодеплой через GitLab CI, staging. Миграции базы — модуль sprint.migration с версионированием.

Процесс работы:

  1. Аналитика — изучаем конкурентов, собираем требования, рисуем прототипы в Figma. На выходе — ТЗ с user stories.
  2. Дизайн — UI/UX с дизайн-системой. Компоненты переиспользуются.
  3. Разработка — пишем компоненты с кастомными шаблонами в local/templates/. Бизнес-логику выносим в модули local/modules/.
  4. Тестирование — функциональное, кроссбраузерное, нагрузочное (до 1000 запросов). Критичные баги исправляем до запуска.
  5. Запуск — деплой на прод, мониторинг через UptimeRobot, алерты в Telegram. Устраняем первые 48 часов.

Интеграции, мультиязычность и редизайн

Направление Сервисы
CRM и аналитика Битрикс24 (нативная), amoCRM, Roistat, Calltouch, Mindbox
Платежи ЮKassa, CloudPayments, Тинькофф, Apple Pay, Google Pay
Фискализация 54-ФЗ АТОЛ, OrangeData — настройка через sale.cashbox
Логистика СДЭК, Boxberry, ПЭК, Почта России, Яндекс.Доставка
Коммуникации JivoSite, Carrot Quest, SendPulse
  • Полная локализация через языковые файлы lang/ и механизм SITE_ID. hreflang для каждой версии. Региональные версии с разными ценами и контентом — определение по IP (main.geo) или ручной выбор. Мультидоменность — единое управление несколькими доменами.

  • Редизайн без потери позиций: аудит производительности (PageSpeed, WebPageTest), SEO (Screaming Frog). Новый шаблон в local/templates/ с сохранением URL-структуры. 301-редиректы только если URL меняется существенно. Обновление ядра, переход на D7 ORM, реструктуризация инфоблоков, миграция через sprint.migration с Git.

Гарантия и поддержка

Мы работаем с 1С-Битрикс 12+ лет, реализовали 500+ проектов. В штате сертифицированные разработчики. Фиксированная стоимость в договоре — без сюрпризов. Гарантийный период покрывает ошибки кода. После — абонентские пакеты с SLA (время реакции — 2 часа, решение — 8 часов). Мониторинг доступности 24/7, алерты в Telegram. Получите консультацию и предварительный расчёт: свяжитесь с нами через форму на сайте или напишите в чат — ответим в течение часа. Закажите разработку под ключ — мы спроектируем инфоблоки, интегрируем 1С и разгоним каталог. Если уже есть сайт на другой CMS — закажите аудит производительности и миграцию на Битрикс.