Разработка кастомных карточек CRM Битрикс24

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

Разработка кастомных карточек CRM Битрикс24

Стандартная карточка сделки в Битрикс24 — универсальный интерфейс под все отрасли сразу. В результате менеджер по продажам оборудования видит те же поля, что и менеджер по аренде. Поля не сгруппированы по смыслу, вычисляемых значений нет, условная логика отображения отсутствует. Кастомная карточка решает конкретную задачу: показать менеджеру ровно то, что нужно на текущей стадии работы.

Два уровня кастомизации

Битрикс24 предлагает два способа изменить карточку CRM-сущности, и они принципиально разные по глубине.

Уровень 1: настройка через интерфейс. В карточке сделки (контакта, смарт-процесса) нажмите «Настроить карточку» → «Настроить поля и разделы». Здесь можно:

  • Переименовать разделы
  • Перетащить поля между секциями
  • Скрыть ненужные поля
  • Задать обязательность полей по стадиям (для сделок)

Это бесплатно и покрывает ~40% запросов. Но нельзя: добавить вычисляемые поля, условную логику, кастомные виджеты, данные из внешних систем.

Уровень 2: разработка через REST Placement API. Это встраивание произвольного HTML/JS-контента в определённые зоны карточки. Именно здесь начинается настоящая кастомизация.

Placement API: точки встраивания

Карточка CRM-сущности содержит несколько зон (placement), в которые можно встроить кастомный контент:

  • CRM_DEAL_DETAIL_TAB — вкладка в карточке сделки. Полноценная область для любого UI.
  • CRM_DEAL_DETAIL_ACTIVITY — блок в таймлайне. Подходит для вывода кастомных действий.
  • CRM_CONTACT_DETAIL_TAB, CRM_COMPANY_DETAIL_TAB — аналогично для контактов и компаний.
  • CRM_DYNAMIC_ITEM_DETAIL_TAB — вкладка в карточке смарт-процесса.

Регистрация placement через REST:

BX24.callMethod('placement.bind', {
    PLACEMENT: 'CRM_DEAL_DETAIL_TAB',
    HANDLER: 'https://your-app.com/deal-tab.html',
    TITLE: 'Калькулятор маржи'
});

После регистрации в карточке появится новая вкладка. При открытии Битрикс24 загрузит HANDLER в iframe и передаст контекст: ENTITY_ID (ID сделки), AUTH_ID, REFRESH_ID.

Глубокое погружение: кастомная вкладка с данными

Рассмотрим типичный кейс — вкладка «Финансы» в карточке сделки, которая показывает: сумму по товарным позициям, себестоимость из внешней 1С, маржу, историю оплат.

Шаг 1: получение данных сделки

BX24.init(function() {
    var dealId = BX24.placement.info().options.ID;

    BX24.callBatch({
        deal: ['crm.deal.get', {id: dealId}],
        products: ['crm.deal.productrows.get', {id: dealId}]
    }, function(result) {
        var deal = result.deal.data();
        var products = result.products.data();
        renderFinanceTab(deal, products);
    });
});

Шаг 2: запрос себестоимости из внешнего API. Вкладка делает запрос к вашему бэкенду, передавая артикулы товарных позиций. Бэкенд проксирует запрос к 1С или ERP и возвращает себестоимость.

Шаг 3: рендеринг. Рассчитываете маржу на клиенте и выводите таблицу. Для визуального соответствия используйте CSS-переменные Б24 или библиотеку @bitrix24/b24-ui.

Условная логика отображения полей

Частый запрос: скрывать/показывать поля в зависимости от значения другого поля. Например, поле «Причина отказа» видно только на стадии «Провалена». Стандартный функционал позволяет сделать поле обязательным по стадии, но не скрыть его.

Решение — кастомный обработчик через placement CRM_DEAL_DETAIL_TAB или встраивание JS-кода через пользовательский тип поля. В коробочной версии доступна модификация шаблона компонента bitrix:crm.deal.detail с добавлением JS-логики в script.js.

Для облачной версии единственный чистый способ — placement с полной перерисовкой нужной секции полей. Это означает: вы забираете данные через REST, рендерите поля с условной логикой в своём iframe, а при сохранении отправляете изменения обратно через crm.deal.update.

Виджеты в таймлайне

Placement CRM_*_DETAIL_ACTIVITY встраивает блок прямо в ленту активностей карточки. Подходит для:

  • Вывода статуса доставки (данные из API транспортной компании)
  • Показа баланса клиента из бухгалтерской системы
  • Отображения последних тикетов из helpdesk

Виджет обновляется при каждом открытии карточки. Для кэширования используйте BX24.appOption — хранилище приложения на стороне Б24.

Производительность

Iframe-вкладки загружаются при активации (клик по табу). Для тяжёлых вкладок это нормально — пользователь не ждёт загрузки того, что не открывал. Но если вы встраиваете виджет в основную область карточки — он грузится сразу. Каждый REST-запрос из iframe — это сетевой round-trip. Используйте BX24.callBatch для объединения запросов: один batch вместо пяти последовательных вызовов.

Элемент карточки Способ кастомизации Сроки
Перегруппировка полей Настройка через UI 1–2 часа
Обязательность по стадии Настройка через UI 30 минут
Кастомная вкладка с внешними данными REST Placement 3–5 дней
Условная логика полей (облако) REST Placement + свой рендер 5–7 дней
Виджет в таймлайне REST Placement Activity 2–3 дня

Ограничения облачной версии

В облаке нельзя модифицировать стандартные секции карточки — только добавлять новые вкладки и виджеты. Нельзя убрать стандартные поля из основного вида (только скрыть через настройку карточки). Для полного контроля над интерфейсом карточки — коробочная версия с переопределением шаблона компонента crm.deal.detail.