Связи CRM‑объектов в Битрикс24: как реализовать

В проектах автоматизации на Битрикс24 возникает задача: связать несколько CRM‑объектов между собой по принципу «многие ко многим».

Например: 🔹Карточка смарт‑процесса CLM‑цикла, в которой хранится информация о клиенте и автомобиле и нужно, чтобы эта карточка была связана со всеми сделками по этому клиенту и автомобилю. 🔹 Карточка смарт‑процесса группы компаний, где должны отображаться все сделки всех компаний из группы.

Почему это не работает штатно? Потому что в Битрикс24 отсутствует функционал связи CRM‑объектов по модели «многие ко многим». Сейчас реализована только схема «один ко многим»: одна карточка смарт‑процесса может быть привязана к множеству сделок, но не наоборот.

Как решить задачу? 1. В облачных порталах:

Для таких сценариев воспользуйтесь возможностями REST API. В бизнес‑процессе (роботе) вызовите метод crm.deal.update и пропишите нужные ID смарт‑процесса в поля сделки.

Пример запроса: { "id": {=Variable:ID_deal}, "fields": { "PARENT_ID_136": {=Variable:parentID}, "UF_CRM_1708091479": {=Variable:parentID} } } Чтобы не писать код руками, удобнее воспользоваться приложением из маркетплейса — например «REST Activity» от IT Solution, которое выполнит такие REST‑запросы прямо из конструктора бизнес‑процессов.

2. В коробочных порталах:

В «коробке» можно обойтись без API и записывать данные напрямую в таблицы CRM с помощью PHP‑активити в бизнес‑процессе.

Пример кода для добавления связи между сделкой и смарт‑процессом:

_use BitrixCrmItemIdentifier; use BitrixCrmServiceContainer;

$parentEntityTypeId = 134; // ID смарт‑процесса $parentEntityId = $this->getvariable('parentEntityId'); $childEntityTypeId = CCrmOwnerType::Deal; $childEntityId = $this->getvariable('childEntityId');

$parent = new ItemIdentifier($parentEntityTypeId, $parentEntityId); $child = new ItemIdentifier($childEntityTypeId, $childEntityId);

if (!Container::getInstance()->getRelationManager()->areItemsBound($parent, $child)) { Container::getInstance()->getRelationManager()->bindItems($parent, $child); }_

Так создаются записи связи напрямую в нужных таблицах базы данных CRM и реализовываются сценарии «все со всеми».

Стандартного функционала Битрикс24 недостаточно, чтобы построить связи CRM‑объектов по схеме «все со всеми». Но это легко реализовать — через REST API или прямые записи в базу данных на коробочных порталах.

Если тема для вас актуальна — ставьте «🔥», чтобы я понимал, стоит ли продолжать разбирать похожие кейсы.

Связи CRM‑объектов в Битрикс24: как реализовать | Сетка — социальная сеть от hh.ru