При изменении набора значений пользовательского поля смарт-процесса, нового счета или документа onCrmTypeUserFieldSetEnumValues

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: crm

Кто может подписаться: любой пользователь

Событие ONCRMTYPEUSERFIELDSETENUMVALUES сработает при установке или изменении набора значений пользовательского поля списочного типа enumeration у смарт-процесса, нового счета или документа на подпись.

Событие приходит и при работе со списком значений в интерфейсе, и при вызове методов userfieldconfig.add и userfieldconfig.update.

Одно действие с полем списочного типа отправляет одно или два события:

  • при создании поля со списком значений обработчик получит onCrmTypeUserFieldAdd и onCrmTypeUserFieldSetEnumValues
  • при изменении настроек поля вместе со списком значений — onCrmTypeUserFieldUpdate и onCrmTypeUserFieldSetEnumValues
  • когда меняется только набор значений — одно событие onCrmTypeUserFieldSetEnumValues

Отличить эти случаи по содержимому data нельзя: во всех событиях приходят одни и те же три ключа. Если обработчик подписан и на onCrmTypeUserFieldUpdate, и на onCrmTypeUserFieldSetEnumValues, предусмотрите защиту от повторной обработки одного и того же ID. Разбор всех случаев — в разделе Какие события приходят вместе.

События не будут отправляться в приложение, пока установка не завершена. Проверьте установку приложения

Что получает обработчик

Данные передаются в виде POST-запроса

{
            "event": "ONCRMTYPEUSERFIELDSETENUMVALUES",
            "event_handler_id": "713",
            "data": {
                "FIELDS": {
                    "ID": "6977",
                    "ENTITY_ID": "CRM_13",
                    "FIELD_NAME": "UF_CRM_13_1742999523"
                }
            },
            "ts": "1742999524",
            "auth": {
                "access_token": "s6p6eclrvim6da22ft9ch94ekreb52lv",
                "expires_in": "3600",
                "scope": "crm",
                "domain": "some-domain.bitrix24.com",
                "server_endpoint": "https://oauth.bitrix24.tech/rest/",
                "status": "L",
                "client_endpoint": "https://some-domain.bitrix24.com/rest/",
                "member_id": "a223c6b3710f85df22e9377d6c4f7553",
                "refresh_token": "4s386p3q0tr8dy89xvmt96234v3dljg8",
                "application_token": "51856fefc120afa4b628cc82d3935cce"
            }
        }
        

Параметр
тип

Описание

event
string

Символьный код события.

В данном случае — ONCRMTYPEUSERFIELDSETENUMVALUES

event_handler_id
integer

Идентификатор обработчика события

data
object

Объект, содержащий информацию о пользовательском поле, у которого изменился набор значений.

Содержит единственный ключ FIELDS

data.FIELDS
object

Объект, содержащий идентификаторы пользовательского поля, у которого изменился набор значений.

Структура описана ниже

ts
timestamp

Дата и время отправки события из очереди событий

auth
object

Объект, содержащий параметры авторизации и данные о Битрикс24, на котором произошло событие.

Структура описана ниже

Параметр FIELDS

Параметр
тип

Описание

ID
integer

Идентификатор пользовательского поля, у которого изменился набор значений.

Передайте его вместе с moduleId = crm в метод userfieldconfig.get, чтобы получить новый список значений

ENTITY_ID
string

Идентификатор объекта, к которому относится пользовательское поле: CRM_{id} для смарт-процесса, CRM_SMART_INVOICE для нового счета, CRM_SMART_DOCUMENT для документа на подпись.

В формате CRM_{id} используется ключ id из результата метода crm.type.list, а не entityTypeId.

Значения описаны в разделе Для каких объектов срабатывают события

FIELD_NAME
string

Символьный код пользовательского поля, например UF_CRM_13_1742999523

Сам набор значений событие не передает. Список значений вернет метод userfieldconfig.get в ключе enum. Методу нужен scope userfieldconfig в дополнение к scope crm, с которым приложение подписывается на событие.

Параметр auth

Обязательные параметры отмечены *

Название
тип

Описание

access_token
string

Токен авторизации OAuth 2.0

expires_in
integer

Время в секундах до истечения срока действия токена

scope*
string

Скоуп, в рамках которого произошло событие

domain*
string

Адрес Битрикс24, на котором произошло событие

server_endpoint*
string

Адрес сервера авторизации Битрикс24, необходимый для обновления токенов OAuth 2.0

status*
string

Статус приложения, подписавшегося на это событие:

client_endpoint*
string

Общий путь для вызовов методов REST API для Битрикс24, на котором произошло событие

member_id*
string

Идентификатор Битрикс24, на котором произошло событие

refresh_token
string

Токен продления авторизации OAuth 2.0

application_token*
string

Токен для безопасной обработки событий

Токены авторизации не всегда передаются в обработчик события. Если хит, инициировавший событие, не удалось привязать к конкретному пользователю Битрикс24, токены не передаются. Обязательно проверяйте содержимое ключа auth в коде.

Рекомендуем хранить токены, полученные ранее при установке приложения. Используйте их при работе с интерфейсом приложения в виде встроек, виджетов и так далее.

Продолжите изучение