← Назад к заметкам

Заметки

Как через REST найти элемент смарт-процесса по пользовательскому полю

Как через REST найти элемент смарт-процесса по пользовательскому полю: crm.item.list, фильтр, entityTypeId и формат UF.

crm.item.list, фильтр, entityTypeId и формат UF. Главное — не подменять технические сущности похожими названиями: сначала понять, какие ID, права и типы данных участвуют в задаче, а уже потом вызывать REST-метод или писать обработчик.

Задача

Эта заметка про ситуацию «как через rest найти элемент смарт-процесса по пользовательскому полю». В Битрикс24 такие задачи часто выглядят простыми в интерфейсе, но через REST или коробочный код упираются в технические ID, права и связанные сущности.

В интерфейсе это может быть одна кнопка, поле или запись в таймлайне. В коде почти всегда появляются дополнительные слои: REST-метод, права приложения, формат поля, связанная сущность и системные ID.

Поэтому перед автоматизацией лучше сделать маленький тестовый запрос и посмотреть реальный ответ портала, а не опираться только на название поля в карточке.

Рабочий подход

Для полей сначала получите описание через REST и посмотрите точный код, тип, множественность и возможные значения. Потом передавайте значение в формате, который ожидает поле.

Для устойчивой интеграции полезно разделять чтение, нормализацию и запись. Сначала получаем данные, затем приводим их к понятному внутреннему формату, и только после этого вызываем метод изменения.

Если операция может затронуть существующие данные, перед записью сохраните исходное состояние или сделайте снимок. Это особенно важно для товарных строк, мультиполей, пользовательских полей и событий удаления.

Пример

Код ниже — не универсальная готовая интеграция, а опорный пример формата запроса или обработки данных.

BX24.callMethod('crm.item.list', {
    entityTypeId: 128,
    filter: { UF_CRM_10_EXTERNAL_ID: 'EXT-1001' },
    select: ['id','title','UF_CRM_10_EXTERNAL_ID'],
}, function (result) { console.log(result.data()); });

Перед использованием замените ID, названия полей и права под конкретный портал. Для массовых операций сначала проверьте поведение на одном тестовом элементе.

Нюансы

Для списков обычно нужен ID варианта, для множественных полей — массив, для пользователей и CRM-привязок — специальный формат значения. Текст из интерфейса не всегда подходит для записи.

  • Проверяйте scope приложения или вебхука до отладки бизнес-логики.
  • Не храните секреты, входящие вебхуки и access token во frontend-коде.
  • Для повторяемых операций добавляйте логирование и защиту от дублей.
  • Для коробки учитывайте, что часть задач проще решить через D7, но такие решения нужно проверять после обновлений.

Главный ориентир: сначала определить точную сущность и формат данных, потом выбрать метод. Большинство ошибок возникает не из-за REST как такового, а из-за смешения похожих ID и типов значений.