Разработка приложений Битрикс24 на React

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка приложений Битрикс24 на React
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • 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

Разработка приложений Битрикс24 на React

Приложения Битрикс24 — это внешние веб-приложения, встраиваемые в интерфейс портала через iframe или открываемые в отдельной вкладке. Они работают через REST API Битрикс24, получают контекст пользователя через BX24.js SDK и могут встраиваться в различные места интерфейса: боковая панель CRM, карточка лида, шапка портала, отдельная страница приложения.

React — естественный выбор для таких приложений: компонентный подход, богатая экосистема, TypeScript-типизация REST API Битрикс24.

Типы приложений и их архитектура

Встраиваемые (embedded) приложения — отображаются внутри интерфейса Битрикс24 в iframe. Размер фиксирован или адаптивен через BX24.resizeWindow(). Доступны места встройки: CRM_LEAD_DETAIL_TAB, CRM_DEAL_DETAIL_TAB, TASKS_TASK_VIEWFORM_SIDEBAR и десятки других.

Standalone-приложения — открываются на отдельной странице в рамках Битрикс24 (/apps/). Полноценный SPA с собственным роутингом.

Виджеты — небольшие компоненты, встраиваемые в конкретные карточки. Например, виджет в карточке сделки, показывающий историю поставок из внешней ERP.

// Инициализация BX24 в React-приложении
import { useEffect, useState } from 'react';

declare global {
  interface Window { BX24: any; }
}

function useBX24Init() {
  const [isReady, setIsReady] = useState(false);
  const [user, setUser] = useState(null);

  useEffect(() => {
    window.BX24.init(() => {
      setIsReady(true);
      window.BX24.callMethod('profile', {}, (result: any) => {
        setUser(result.data());
      });
    });
  }, []);

  return { isReady, user };
}

Аутентификация и REST API

Авторизация в приложении — через OAuth 2.0. Битрикс24 выдаёт access_token при открытии приложения в iframe (через postMessage или URL-параметры). Для серверных запросов (backend-to-Bitrix24) — авторизация через client_id + client_secret + webhook.

Типичная архитектура: React-фронт делает запросы к собственному бэкенду (не напрямую в Битрикс24), бэкенд проксирует к Битрикс24 REST API с серверным токеном. Это скрывает токены от браузера и позволяет кешировать повторяющиеся запросы.

// React-хук для вызова Битрикс24 REST через BX24.js (клиентская сторона)
function useBX24Method<T>(method: string, params: object) {
  return useQuery({
    queryKey: ['bx24', method, params],
    queryFn: () =>
      new Promise<T>((resolve, reject) => {
        window.BX24.callMethod(method, params, (result: any) => {
          if (result.error()) reject(result.error());
          else resolve(result.data());
        });
      }),
    staleTime: 30_000,
  });
}

// Использование
const { data: deals } = useBX24Method<Deal[]>('crm.deal.list', {
  select: ['ID', 'TITLE', 'STAGE_ID', 'OPPORTUNITY'],
  filter: { ASSIGNED_BY_ID: currentUserId },
  order:  { DATE_MODIFY: 'DESC' },
});

Bitrix24 UI Kit в React

Битрикс24 предоставляет официальный @bitrix24/b24jssdk и UI Kit на основе React-компонентов. Использование UI Kit обеспечивает визуальную консистентность с интерфейсом Битрикс24 — приложение выглядит как родная часть портала.

Компоненты UI Kit: Button, Input, Select, Table, Modal, Notification, Avatar, Badge. Стилизация через CSS-переменные — автоматически адаптируется под тему портала (светлая/тёмная).

Кейс: приложение для контроля SLA в CRM

Компания B2B-услуг, 45 менеджеров, сделки проходят через 8 стадий. Задача: виджет в карточке сделки, показывающий, сколько времени сделка находится на текущей стадии, флаг нарушения SLA (если больше нормы), история переходов по стадиям.

Штатный Битрикс24 не имеет SLA-контроля в CRM Deal из коробки.

Реализация:

Бэкенд — Laravel (отдельный сервер). При каждом изменении стадии сделки — вебхук от Битрикс24 (event: ONCRMDEALUPDATE) записывает переход в таблицу deal_stage_history с временными метками.

React-виджет встроен в CRM_DEAL_DETAIL_TAB. При открытии карточки — запрос на собственный бэкенд с DEAL_ID, который возвращает: текущая стадия, время на стадии, SLA-норма для этой стадии, статус (в норме / нарушено), список переходов.

Визуализация: таймлайн стадий с цветовой индикацией. Красный — SLA нарушен, жёлтый — 75% времени использовано, зелёный — в норме.

function SlaWidget({ dealId }: { dealId: number }) {
  const { data } = useSlaData(dealId);

  if (!data) return <Spinner />;

  return (
    <div className="sla-widget">
      <SlaTimer
        currentStage={data.currentStage}
        timeOnStage={data.timeOnStage}
        slaLimit={data.slaLimit}
        status={data.status}
      />
      <StageTimeline history={data.stageHistory} />
    </div>
  );
}

Уведомления: при нарушении SLA бэкенд отправляет уведомление ответственному менеджеру и его руководителю через im.notify.system.add REST API.

Метрика До После
Нарушения SLA без реакции ~35% сделок/мес ~8% сделок/мес
Время реакции при нарушении Часы (ручной мониторинг) Минуты (автоуведомление)
Видимость истории стадий Только лог активности Визуальный таймлайн

Вебхуки и real-time обновления

Приложения Битрикс24 могут подписываться на события через вебхуки: изменение сделок, задач, контактов. Это позволяет строить приложения с near-real-time обновлениями.

Для real-time в React — Server-Sent Events (SSE) или polling. WebSocket поверх Битрикс24 — только через BX24.callMethod('pull.application.event.add') с Push & Pull модулем.

Публикация и деплой

Приложение регистрируется в Маркетплейс Битрикс24 или устанавливается напрямую на конкретный портал. Для корпоративных решений — второй вариант: приложение деплоится на собственный сервер, регистрируется через Настройки → Приложения → Добавить приложение.

HTTPS обязателен — Битрикс24 не загружает HTTP-контент в iframe.

Состав работ

  • Проектирование: место встройки, API-методы, схема авторизации
  • Регистрация приложения в Битрикс24, настройка OAuth
  • Разработка бэкенда: прокси REST, бизнес-логика, вебхуки
  • Разработка React SPA: компоненты, стейт, интеграция с BX24.js
  • Тестирование на реальном портале Битрикс24, edge cases авторизации

Сроки: простой виджет-вставка — 1–2 недели. Полноценное standalone-приложение с собственным бэкендом — 4–12 недель в зависимости от функционала.