Как настроить фильтр по кастомному (пользовательскому) полю в BI‑конструкторе Битрикс24?

Делаю дашборд на основе датасета crm_deal_stage_history в BI‑конструкторе Битрикс24. Фильтрацию по дате (интервал) и по ответственному настроил, но теперь нужно отфильтровать сделки по кастомному полю "Причина слива" = "Спам". <br/>В crm_deal_stage_history этого поля нет, так как это пользовательское поле. Какую таблицу/датасет нужно присоединить (джойн), чтобы фильтровать по этому полю? Есть ли готовые примеры кода или ссылки на документацию?
  • 21 мая 2026 г. 10:02
Ответы на вопрос 3
Кратко — нужно присоединить к датасету crm_deal_stage_history тот датасет, который содержит карточку сделки (там же хранятся пользовательские поля UF_CRM_*). Обычно это датасет crm_deal (или «Deals» / «Сделки» в вашем BI‑интерфейсе). Джойн по id сделки — и в фильтре использовать поле пользовательского поля (UF_CRM_...).

Пошагово

1) Найдите в схеме датасетов датасет с данными сделки. В BI‑конструкторе он обычно называется crm_deal (или просто «Сделки / Deals»). В нём должны быть поля ID, TITLE и ваши UF_CRM_* поля (код поля начинается с UF_CRM_…).

2) Сделайте джойн между crm_deal_stage_history и crm_deal:
   - ключ в crm_deal_stage_history обычно называется DEAL_ID или ENTITY_ID — соединяйте его с crm_deal.ID.
   - тип джойна — LEFT (чтобы не потерять строки истории, у которых может не быть связанной сделки по ошибке).

3) Найдите код вашего пользовательского поля:
   - в интерфейсе CRM → Настройки полей/формы (в настройках сделки) посмотрите «Код поля» — он будет выглядеть как UF_CRM_XXXX.
   - или через REST API: вызов crm.deal.fields вернёт список полей и их коды/справочники.

   Пример REST‑запроса (через webhook):
   https://yourdomain.bitrix24.ru/rest/<user_id>/<hook>/crm.deal.fields

4) В фильтре дашборда используйте это поле. Примеры выражений:
   - если поле текстовое/строка:
     crm_deal.UF_CRM_REASON = 'Спам'
   - если поле — список/enum и в базе хранится id варианта, то фильтруйте по id варианта (или по тексту — зависит от реализации поля):
     crm_deal.UF_CRM_REASON = <id_варианта>
   Чтобы узнать, хранится ли значение как id, посмотрите описание поля в crm.deal.fields — там будут элементы списка и их ID/значения.

Замечания и отладка
- Если в вашем датасете crm_deal нет UF_CRM_* поля, посмотрите альтернативные датасеты с «user fields» или выгрузку карточки сделки; иногда кастомные поля попадают в отдельный список. В большинстве стандартных конфигураций они в crm_deal.
- В BI‑конструкторе можно предварительно открыть превью таблицы (schema/preview) и найти нужный столбец по имени.
- Если поле — множественное (мультисписок), то фильтрация может требовать специальных операторов (contains / like), или разворачивания массива значений.

Полезные ссылки
- Общая документация REST API CRM (чтобы посмотреть структуру полей и UF_CRM): https://dev.1c-bitrix.ru/rest_help/
- Метод, который возвращает поля сделки: crm.deal.fields — через него можно увидеть код и структуру поля.

Если пришлёте скрин/название поля из настроек (код поля UF_CRM_...), или скрин схемы датасетов в BI‑конструкторе, дам точный пример джойна и точную запись фильтра для вашего случая.
Вопрос решен. Все кастомные поля сделок хранятся в отдельной таблице crm_deal_uf <br/> Связь со сделкой по полю deal_id
Посмотрите, что возвращает таблица crm_deal. <br/> В ней должно быть это поле. <br/> <br/> Придется делать кастомный запрос, который будет брать данные из crm_deal_stage_history и из crm_deal. <br/> И уже этот кастомный запрос выводить в дашборд. <br/> Битрикс используется этот <a href="http://helpdesk.bitrix24.ru/open/20351750/" rel="nofollow">шаблонизатор</a> , с его помощью можно настроить фильтрацию по нужному полю/полям
Похожие вопросы