Заметки
Где получить XML_ID значений списка CRM через REST
crm.item.fields удобен для описания полей элемента, но для сопоставления списка с внешней системой часто нужен ещё и XML_ID каждого варианта. Полные настройки пользовательского поля возвращает userfieldconfig.get.
Сначала найдите ID настройки поля через userfieldconfig.list с moduleId: "crm". Фильтровать можно по реальному fieldName. Этот ID не равен ни ID элемента CRM, ни ID выбранного пункта списка.
Пример для браузерного приложения после инициализации BX24.js:
const fieldConfigId = 123;
BX24.callMethod('userfieldconfig.get', {
moduleId: 'crm',
id: fieldConfigId
}, function (result) {
if (result.error()) {
console.error(result.error());
return;
}
const field = result.data().field;
if (!field) {
console.warn('Настройки поля не найдены');
return;
}
console.table((field.enum || []).map(function (option) {
return { id: option.id, title: option.value, xmlId: option.xmlId };
}));
}); В ответе настроек result.field.enum содержит варианты списка. У каждого есть собственные id, value и xmlId. В callback BX24.js внешняя обёртка result уже снята вызовом data().
Для записи выбранного значения в карточку обычно нужен ID варианта. Внешний код пригоден для сопоставления между системами, но не заменяет этот ID в запросе обновления.
Для общей схемы сущности есть пример с crm.item.fields. Метод crm.userfield.enumeration.fields описывает структуру значения списка. Он не возвращает варианты конкретного поля. Если нужен только выбранный пункт, смотрите также разницу между подписью и ID списка в БП.
Документация: userfieldconfig.get; userfieldconfig.list.