Разработка сайта фитнес-клуба на 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С Предприятие для компании МИРСАНБЕЛ
    829
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    732
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1075

Клиент заходит на сайт фитнес-клуба в понедельник вечером, выбирает занятие, нажимает «Записаться» — и видит «Ошибка сервера». Или расписание открывается через 5 секунд. Архитектура не рассчитана на пиковые нагрузки. Мы — команда инженеров с 8-летним опытом разработки на 1С-Битрикс — решаем эти проблемы под ключ. Проектируем Highload-структуры, настраиваем кэширование, интегрируем с платёжными системами и CRM. Оценим ваш проект за 2 дня, сроки озвучим после аудита. Чтобы получить консультацию по вашему проекту, свяжитесь с нами.

Типичная задача: расписание на неделю с 300 занятиями, 15 залов, 40 тренеров. Без правильного подхода фильтрация занимает 800–1200 мс. Мы переводим данные в Highload-блоки — плоские таблицы с индексами. Время фильтрации падает до 20–30 мс. Ниже разберём ключевые узлы такого проекта.

Как спроектировать расписание под нагрузку 5000 посещений в день?

Расписание — центральный элемент сайта. Если оно тормозит, клиент уходит в Telegram-бота конкурента.

Для хранения расписания используем HL-блоки. Обычный инфоблок (EAV-модель) при 300 занятиях, 15 залах и 40 тренерах даёт десятки тысяч строк в таблице свойств. Фильтрация по комбинации «зал + день + тренер + направление» — серия JOIN-ов с 800–1200 мс.

Highload-блок — плоская таблица в MySQL. Одна строка = одно занятие, все поля — колонки. Фильтрация через обычные индексы.

Структура HL FitnessSchedule:

Поле Тип Назначение
UF_DATE date Дата занятия
UF_TIME_START string Начало (HH:MM)
UF_TIME_END string Окончание
UF_HALL_ID integer ID зала (связь с HL FitnessHalls)
UF_TRAINER_ID integer ID тренера
UF_DIRECTION_ID integer Направление: йога, кроссфит, бассейн...
UF_CAPACITY integer Максимум участников
UF_BOOKED integer Текущее количество записавшихся
UF_STATUS enumeration active / cancelled / full
UF_IS_RECURRING boolean Повторяющееся по шаблону
UF_TEMPLATE_ID integer Ссылка на шаблон расписания

Для повторяющихся занятий — отдельный HL ScheduleTemplate. Cron-агент раз в неделю генерирует конкретные занятия. Это позволяет тренеру отменить конкретное занятие, не ломая всё расписание.

Фильтрация на фронте через DataManager::getList():

$result = $entityClass::getList([
    'filter' => [
        'UF_DATE' => $selectedDate,
        'UF_HALL_ID' => $hallId,
        'UF_STATUS' => 'active',
    ],
    'order' => ['UF_TIME_START' => 'ASC'],
]);

На фронте — сетка: по горизонтали залы, по вертикали временные слоты. AJAX-запросы через кастомный REST-эндпоинт.

Почему Highload-блоки выигрывают у инфоблоков?

При 50 000 записей HL-блок обрабатывает фильтр за 20 мс, инфоблок — за 900 мс. Разница в 45 раз — за счёт отсутствия EAV-прослоек и прямых индексов. HL-блоки поддерживают SELECT ... FOR UPDATE, что критично для транзакционной записи.

Онлайн-запись с лимитом мест и waitlist

Запись на занятие — транзакционная операция с проверкой лимита, конкурентным доступом и механизмом ожидания.

Сценарий:

  1. Клиент нажимает «Записаться»
  2. Система проверяет: UF_BOOKED < UF_CAPACITY
  3. Если да — создаёт запись в HL FitnessBooking, инкрементирует UF_BOOKED
  4. Если нет — предлагает встать в лист ожидания

Конкурентный доступ решается транзакцией с блокировкой строки. Два клиента одновременно нажимают на занятие с одним местом. Без блокировки оба получат подтверждение.

Решение — raw SQL с SELECT ... FOR UPDATE:

$connection = \Bitrix\Main\Application::getConnection();
$connection->startTransaction();

$row = $entityClass::getList([
    'filter' => ['ID' => $scheduleId],
    'select' => ['UF_BOOKED', 'UF_CAPACITY'],
    // FOR UPDATE через raw SQL
])->fetch();

if ($row['UF_BOOKED'] < $row['UF_CAPACITY']) {
    // создаём бронирование
    $connection->commitTransaction();
} else {
    $connection->rollbackTransaction();
    // предлагаем waitlist
}

ОRM Битрикса не поддерживает SELECT ... FOR UPDATE, поэтому критическую секцию оборачиваем в raw SQL.

Waitlist реализуется отдельным HL FitnessWaitlist. Когда кто-то отменяет запись, агент проверяет waitlist и переносит первого в очереди, отправляя SMS/push.

Отмена записи — клуб разрешает отмену за 2–4 часа до начала. Логика в обработчике события сравнивает время.

Продажа абонементов через модуль sale

Абонементы — не простые товары. У них срок действия, количество посещений, заморозка.

Типы абонементов реализуются как элементы инфоблока со свойствами:

  • DURATION_DAYS, VISIT_LIMIT, TYPE, FREEZE_ALLOWED, FREEZE_MAX_DAYS

При покупке через Order::create() абонемент добавляется в корзину. После оплаты обработчик OnSaleOrderPaid создаёт запись в HL UserSubscription с полями: UF_USER_ID, UF_START_DATE, UF_END_DATE, UF_VISITS_LEFT, UF_IS_FROZEN, UF_FREEZE_START.

Заморозка — клиент нажимает «Заморозить», система проверяет лимиты и устанавливает UF_IS_FROZEN. При разморозке пересчитывает UF_END_DATE.

Экономия на разработке с нашим подходом достигает 35% по сравнению с типовыми решениями, а бюджет проекта для среднего клуба стартует от 800 тыс. руб.

Интеграция с CRM-системами клуба

Фитнес-клубы используют 1С:Фитнес клуб или Mobifitness.

1С:Фитнес клуб — обмен через CommerceML или REST API. Синхронизируются: услуги, расписание, клиенты, продажи. Обмен по cron каждые 15–30 минут.

Mobifitness — REST API с авторизацией по токену. Битрикс выступает фронтендом, Mobifitness — мастер-системой. HL FitnessSchedule заполняется через синхронизацию.

Выбор архитектуры зависит от мастер-системы.

Личный кабинет клиента

Строится на модуле main с расширениями:

  • История посещений — выборка из FitnessBooking
  • Остаток занятий — UF_VISITS_LEFT из UserSubscription
  • Продление абонемента — кнопка, создающая заказ
  • Заморозка/разморозка

Авторизация — через телефон с SMS-кодом (модуль messageservice).

Тренерские профили

Тренеры — инфоблок с привязкой к направлениям. На детальной странице — расписание на текущую неделю (AJAX-запрос к FitnessSchedule).

Сроки реализации

Масштаб проекта Состав Срок
Небольшой клуб (1 зал, 5–7 направлений) Расписание, запись, абонементы, личный кабинет 8–10 недель
Сеть из 3–5 клубов Мультисайтовость, единая база, интеграция с Mobifitness 14–18 недель
Крупная сеть (10+ клубов) B2B-портал, мобильное приложение через REST Битрикса, сложная тарификация 20–28 недель

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

  • Аудит текущей архитектуры и нагрузок (бесплатно)
  • Проектирование Highload-структур (HL-блоки, индексы, триггеры)
  • Разработка расписания, онлайн-записи с waitlist, личного кабинета
  • Интеграция с 1С:Фитнес клуб или Mobifitness
  • Настройка тегированного кэширования и композитного режима
  • Подключение платёжных шлюзов (ЮKassa, Сбер, АТОЛ)
  • Обучение администраторов и передача документации
  • 3 месяца технической поддержки после запуска
Типичные ошибки при проектировании расписания
  • Использование инфоблоков для расписания — приводит к тормозам при 300+ занятиях.
  • Отсутствие блокировок SELECT ... FOR UPDATE — дубли бронирований.
  • Хранение листа ожидания в том же инфоблоке — усложняет логику и тормозит.
  • Игнорирование кэширования — на пике нагрузки сервер валится.
  • Отсутствие мастер-системы — конфликты данных между сайтом и CRM.

Наша команда — 8+ лет опыта с 1С-Битрикс, 15+ проектов для фитнес-клубов, 5 лет на рынке. Высоконагруженные расписания — наша специализация.

Перед стартом определите мастер-систему расписания и платёжный шлюз — это влияет на архитектуру. Получите консультацию: свяжитесь с нами, чтобы обсудить детали.

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

Мы видим десятки проектов, где неправильная структура инфоблоков превращает сайт в тормоз. Типичный сценарий: заказчик просит «каталог товаров». Разработчик создаёт один инфоблок 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 — закажите аудит производительности и миграцию на Битрикс.