← К заметкам

Заметки

Как получить список полей сущности CRM и их enum-значения

Для схемы универсальной CRM-сущности вызовите crm.item.fields с её entityTypeId. Это позволяет увидеть технические имена, типы и ограничения полей.

BX24.callMethod('crm.item.fields', {
    entityTypeId: 128,
    useOriginalUfNames: 'Y'
}, function (result) {
    if (result.error()) {
        console.error(result.error());
        return;
    }
    console.log(result.data().fields);
});

Выполняйте после инициализации BX24.js; 128 замените нужным типом CRM. У поля-списка найдите варианты и сохраняйте их ID вместе с подписями.

Методы legacy-сущностей, например crm.deal.fields, возвращают схему в другом формате. Не переносите путь result.data().fields в любой метод с окончанием .fields.

Схему можно кешировать, но после изменения пользовательских полей кеш нужно обновить.

crm.userfield.enumeration.fields — не запрос вариантов конкретного поля. Он вызывается без параметров и описывает структуру значения списка: ID, SORT, VALUE и другие служебные поля. Передача туда кода UF_CRM_... не вернёт пункты нужного списка.

Для полных настроек конкретного списка, включая подписи и внешние коды, используйте userfieldconfig.get и массив enum.

Документация: crm.item.fields; crm.userfield.enumeration.fields.