Инженерная практика Сертификация и соответствие

Виджеты и приложения для Битрикс24: аналитика контрагента прямо в карточке CRM

Виджет аналитики сертификации в карточках Лидов, Сделок и Компаний Битрикс24 на нескольких коробках; вторая версия с кэшированием; поиск по шести реестрам через ClickHouse за 300 мс.

143ч выполнено
Виджеты и приложения для Битрикс24: аналитика контрагента в карточке CRM

Менеджер открывает в Битрикс24 карточку лида и хочет понять, с кем имеет дело: сколько у контрагента сертификатов и деклараций, по каким техническим регламентам, какая динамика. Идти за этим в отдельную аналитическую систему он не станет — если переключение занимает больше 10 секунд, продажа пойдёт без контекста. Мы встроили аналитику прямо в карточки Лидов, Сделок и Компаний. Главное решение приняли на старте: встройка в чужом портале ломается на любом крупном обновлении Битрикса, поэтому в самой встройке логики нет, весь поиск и агрегация живут на нашем сервере. Жизнь проверила схему дважды. Когда внешний администратор случайно стёр интеграцию, виджет вернули примерно за 20 минут; когда Битрикс изменил отдачу данных и виджет слёг на всех коробках разом, починили в тот же день.

Сводка

Отрасль Сертификация продукции, B2B-аналитика рынка
Конечный клиент «Аналитика сертификатов»
Формат сотрудничества Регулярное сопровождение — серия ТЗ по виджетам и приложениям в Битрикс24
Тип проекта Виджет в карточках CRM, который показывает аналитику сертификации по контрагенту, и серверный сервис поиска под ним
Объём работ Виджет в Лидах, Сделках и Компаниях; вторая версия виджета с кэшированием и мониторингом; модуль ответственности по делам; раскатка на несколько коробок Битрикс24
Дата проекта Виджет в amoCRM — 2022, перенос на Битрикс24 — с конца 2024, далее продолжается
Трудозатраты больше 143 часов подтверждённых смет (133 ч виджет v1 + 10 ч модуль ответственности; объём v2 в часах не оцифрован)
Команда Антон Херсун (руководитель проекта; виджет v1 делал сам), затем направление принял разработчик виджетов и парсеров — он ведёт v2 и далее
Технологический стек REST API Битрикс24 · встраивание в карточки CRM · серверная часть на Laravel · поиск по шести реестрам через ClickHouse · несколько коробок
Сдано Виджет в трёх разделах CRM на нескольких коробках, вторая версия виджета, модуль ответственности по делам. Обмен статусами с 1С остался на стадии предложения, продукт «Прайс» остановлен на стороне заказчика

Постановка задачи

Клиент живёт в Битрикс24 как в основном CRM-инструменте: лиды, сделки, компании. У каждой компании-контрагента в карточке есть поле ОГРН, БИН или ИНН, и по этому идентификатору внутренняя аналитическая платформа поднимает данные: сколько у компании выданных сертификатов и деклараций, по каким реестрам, какая динамика. Менеджеру всё это нужно внутри Битрикс24, а не в отдельном окне.

История виджета началась раньше Битрикса. В 2022 году мы сделали такой же виджет для amoCRM: документы по ИНН/ОГРН прямо в карточке плюс подписка на уведомления о новых документах. Когда в 2023-м клиент решил уходить с amoCRM на Битрикс24, amoCRM-виджет отключили, а перенос на новый портал заказчик оформил отдельным ТЗ.

Дальше задачи приходили постепенно:

  • октябрь 2023: концепт CRM-приложения для Битрикс24 (оценка 160–220 ч), старт несколько раз сдвигался и в итоге свернулся в более узкий виджет
  • ноябрь 2024: ТЗ на виджет в Лидах, Сделках и Компаниях (133 ч)
  • ноябрь 2024: предложение по обмену статусами документов с 1С, заказчик решил отложить
  • август–сентябрь 2025: вторая версия виджета, «большое ТЗ»
  • сентябрь 2025: модуль ответственности по делам (10 ч)
  • весна 2026: предложение продукта «Система Прайс» для Битрикс24, остановлено партнёрами заказчика

Перед стартом виджета v1 заказчик передал условие партнёров: начинать при предоплате 50%, остаток после сдачи. Договорились без споров: предоплата пришла 26 декабря 2024, разработку запланировали на январь.

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

Как мы это сделали

1. Серверная часть у нас, виджет как тонкая встройка.
Виджет в Битрикс24 принимает информацию об открытой карточке, забирает значение поля ОГРН и шлёт запрос к нашему сервису на Laravel. Поиск по реестрам, агрегация, формирование выдачи — всё это живёт на стороне Laravel, виджет показывает уже готовую страницу. Если Битрикс24 поменяет API встроек, переделывать придётся только тонкую встройку, а не сервис.

2. Один сервис на три раздела CRM.
В основном ТЗ (133 ч) виджет встраивается в три места портала: карточку Лида, Сделки и Компании. Идентификатор контрагента в каждом случае берётся по-своему: из карточки Компании напрямую, из Сделки через связанную компанию, из Лида из собственного поля (у лидов оно своё, и лид должен быть привязан к компании). Сервису неважно, откуда пришёл идентификатор: на выходе одна и та же страница с аналитикой. Вместо трёх отдельных виджетов получился один сервис.

3. Поиск по шести реестрам через ClickHouse: 300 мс на запрос.
По одному ОГРН виджет ищет сразу в шести таблицах: сертификаты и декларации РФ, сертификаты и декларации Киргизии, реестр Казахстана и реестр Беларуси. На обычной базе при выросших объёмах такой поиск занимал секунды. Мы подключили ClickHouse, и поиск стал укладываться в диапазон от 300 мс до 1 секунды даже на самом тяжёлом российском реестре; формирование выдачи добавляет ещё пару секунд. Сотня менеджеров может искать одновременно без задержек. На случай аварии хранилища поставили переключатель: ClickHouse недоступен — виджет мгновенно откатывается на обычную базу и продолжает работать.

4. Постановка дел: подсчёт новых документов и уведомления.
Менеджер может подписать карточку контрагента на отслеживание. Каждые 2 часа система пересчитывает новые документы по подписанным ИНН и раз в 2,5 часа ставит «дела» — задачи-уведомления в соответствующие лиды, сделки и компании. Так менеджер узнаёт о новом сертификате контрагента, не открывая карточку специально.

5. Вторая версия как переосмысление, а не патч («большое ТЗ»).
К v2 подписок накопилось столько, что прежний механизм перестал справляться: 13 тысяч ИНН на отслеживании не успевали обработаться за отведённые 2 часа, и постановка дел молча отваливалась. Сначала временно растянули интервал, потом сели за полноценный пересмотр. В «большое ТЗ» вошли починка постановки дел под выросшую нагрузку, поддержка нескольких ОГРН в одной сущности, архивация подписок уволенных сотрудников, кэширование (карточка не ходит в базу повторно, если данные не менялись) и отдельный мониторинг обработки ОГРН. Втискивать всё это в мелкое обновление даже не пробовали: такие задачи всегда выходят втрое дороже по часам. Кэширование докатили ночью к 25 сентября 2025.

6. Модуль ответственности по делам отдельным ТЗ (10 ч).
Возник вопрос: на кого ставить дело-уведомление — на ответственного за сущность или на сотрудника, который подписал карточку? И что делать, если ответственного нет или система не даёт его назначить. Логику «ставим ответственному, при невозможности пользователю, на лету» вынесли в отдельный модуль на 10 часов: пусть живёт независимо от ядра виджета и настраивается как в коробке, так и в самом виджете. Выкатили 29 сентября 2025, сверху повесили статистику в мониторинге.

Результаты

Метрика Значение
Подтверждённые сметы больше 143 часов (133 ч v1 + 10 ч модуль ответственности)
Точек встраивания в Битрикс24 3 (Лиды, Сделки, Компании)
Реестров в одном поиске 6 (РФ серт/декл, КГ серт/декл, КЗ, Беларусь)
Скорость поиска после ClickHouse 300 мс — 1 секунда вместо нескольких секунд
Версии виджета v1 и v2 («большое ТЗ»)
Коробок Битрикс24 несколько, виджет раскатан на все

Под тонкой встройкой в Битрикс24 живёт сервис на Laravel: бизнес-логики в самой встройке нет, она отдаёт готовую страницу. Один сервис обслуживает три раздела CRM. Поиск по шести реестрам уложился в 300 мс благодаря ClickHouse, с откатом на обычную базу при аварии. Вторая версия закрыла накопленную нагрузку на постановку дел и добавила кэширование. Модуль ответственности оформлен отдельно и настраивается на каждой коробке.

Процесс и хронология

Этап Период Результат
Виджет в amoCRM (предшественник) 2022 Документы по ИНН/ОГРН + уведомления в amoCRM
Концепт CRM-приложения Битрикс24 октябрь 2023 оценка 160–220 ч, свернулся в виджет
Виджет v1 в трёх разделах ноябрь 2024 → март 2025 133 ч, боевой запуск 3 февраля 2025, принят 12 марта 2025
Обмен статусами с 1С ноябрь 2024 предложение, отложено заказчиком
Виджет v2 («большое ТЗ») август–сентябрь 2025 готово 25 сентября 2025
Модуль ответственности по делам сентябрь 2025 10 ч, выкат 29 сентября 2025
Система Прайс для Битрикс24 весна 2026 Прототип, остановлено партнёрами заказчика

Инциденты и реакция

Виджет в чужом портале проверяется не в спокойном режиме, а в авариях. Два случая показали, зачем логика вынесена на наш сервер.

Интеграцию стёрли — восстановили примерно за 20 минут. В августе 2025 внешний администратор портала по неосторожности удалил интеграцию виджета, заодно сбив client id и secret. От сообщения «у нас пропал виджет» до подтверждения полной работоспособности прошло около 20 минут: подняли резервную копию настроечных таблиц, поправили ключи в базе, переподключили приложение. Подписки на ОГРН при этом не слетели. По следам случая дописали в документацию короткий регламент восстановления.

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

Что предлагали, но не делали

Честные статусы тоже часть работы. Обмен статусами документов между 1С и платформой мы оценили ещё в 2024-м, но заказчик решил отложить. Когда в 2025-м к идее вернулись уже на объёме около 107 тысяч деклараций, мы намеренно не оформляли ТЗ до теста жизнеспособности, и задача так и осталась на стадии проверки. Браузерное расширение как способ обойти ограничения Битрикса на установку приложений (показывать виджет по ИНН на любом сайте) предложили в 2024-м — идея зависла. Продукт «Система Прайс» для Битрикс24 довели до прототипа, но партнёры заказчика его не поддержали, и проект остановили на их стороне.

Команда

  • Антон Херсун, Xaver Pro — руководитель проекта, проектирование контракта «виджет ↔ сервис». Виджет v1 (133 ч) делал сам. Для нас это редкий случай, когда руководитель проекта закрывает сборку руками: сперва нужно было понять механику Битрикс24 изнутри, и только потом рисовать архитектуру.
  • Разработчик виджетов и парсеров — принял направление Битрикс к моменту v2 и ведёт его дальше (вторую версию и последующие доработки). Преемственность внутри направления сохраняется: задачи по виджету идут через одного и того же человека. Аналитическую панель ведёт другой разработчик, здесь своя специализация по интеграциям и парсерам.

Скриншоты и материалы

Будут добавлены отдельным проходом: скриншот виджета внутри карточки Сделки после обработки приватности конкретных компаний.

Если ваш виджет в Битрикс24 ломается на каждом обновлении портала, нам это знакомо. Покажите код и список «упало в этом релизе», ответим, что стоит вынести на сервер, чтобы обновления портала не роняли виджет. Разбор бесплатный.

Разобрать виджет в Битрикс24 →


Прокрутить вверх