Блог Горошко Андрея Bitrix24,PHP Получить пользовательское поле контактов по Id crm.contact.userfield.get

Получить пользовательское поле контактов по Id crm.contact.userfield.get

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Получить пользовательское поле контактов по Id crm.contact.userfield.get». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.

Получить пользовательское поле контактов по Id crm.contact.userfield.get

> Scope: crm
>
> Кто может выполнять метод: администратор

Метод crm.contact.userfield.get возвращает пользовательское поле контактов по идентификатору.

Параметры метода

Название
тип
Описание
id*
[integer][1]
Идентификатор пользовательского поля, привязанного к контакту.

Идентификатор можно получить с помощью методов crm.contact.userfield.add или crm.contact.userfield.list

Примеры кода

Получить пользовательское поле с id = 399

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"id":399}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/crm.contact.userfield.get
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"id":399,"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/crm.contact.userfield.get
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'crm.contact.userfield.get',
    		{
    			id: 399,
    		}
    	);
    	
    	const result = response.getData().result;
    	result.error()
    		? console.error(result.error())
    		: console.info(result)
    	;
    }
    catch( error )
    {
    	console.error('Error:', error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'crm.contact.userfield.get',
                [
                    'id' => 399,
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        if ($result->error()) {
            echo 'Error: ' . $result->error();
        } else {
            echo 'Data: ' . print_r($result->data(), true);
        }
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error getting contact user field: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'crm.contact.userfield.get',
        {
            id: 399,
        },
        (result) => {
            result.error()
                ? console.error(result.error())
                : console.info(result.data())
            ;
        },
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'crm.contact.userfield.get',
        [
            'id' => 399
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Обработка ответа

HTTP-статус: 200

{
    "result": {
        "ID": "399",
        "ENTITY_ID": "CRM_CONTACT",
        "FIELD_NAME": "UF_CRM_HELLO_WORLD",
        "USER_TYPE_ID": "string",
        "XML_ID": null,
        "SORT": "1000",
        "MULTIPLE": "Y",
        "MANDATORY": "Y",
        "SHOW_FILTER": "E",
        "SHOW_IN_LIST": "Y",
        "EDIT_IN_LIST": "Y",
        "IS_SEARCHABLE": "Y",
        "SETTINGS": {
            "SIZE": 20,
            "ROWS": 3,
            "REGEXP": "",
            "MIN_LENGTH": 0,
            "MAX_LENGTH": 0,
            "DEFAULT_VALUE": "Привет, мир! Значение по умолчанию"
        },
        "EDIT_FORM_LABEL": {
            "ar": "Поле \u0027Привет, мир!\u0027",
            "br": "Поле \u0027Привет, мир!\u0027",
            "en": "Hello, World! Edit",
            "fr": "Поле \u0027Привет, мир!\u0027",
            "id": "Поле \u0027Привет, мир!\u0027",
            "it": "Поле \u0027Привет, мир!\u0027",
            "ja": "Поле \u0027Привет, мир!\u0027",
            "la": "Поле \u0027Привет, мир!\u0027",
            "ms": "Поле \u0027Привет, мир!\u0027",
            "pl": "Поле \u0027Привет, мир!\u0027",
            "ru": "Привет, мир! Редактировать",
            "sc": "Поле \u0027Привет, мир!\u0027",
            "tc": "Поле \u0027Привет, мир!\u0027",
            "th": "Поле \u0027Привет, мир!\u0027",
            "tr": "Поле \u0027Привет, мир!\u0027",
            "vn": "Поле \u0027Привет, мир!\u0027"
        },
        "LIST_COLUMN_LABEL": {
            "ar": "Поле \u0027Привет, мир!\u0027",
            "br": "Поле \u0027Привет, мир!\u0027",
            "en": "Hello, World! Column",
            "fr": "Поле \u0027Привет, мир!\u0027",
            "id": "Поле \u0027Привет, мир!\u0027",
            "it": "Поле \u0027Привет, мир!\u0027",
            "ja": "Поле \u0027Привет, мир!\u0027",
            "la": "Поле \u0027Привет, мир!\u0027",
            "ms": "Поле \u0027Привет, мир!\u0027",
            "pl": "Поле \u0027Привет, мир!\u0027",
            "ru": "Привет, мир! Колонка",
            "sc": "Поле \u0027Привет, мир!\u0027",
            "tc": "Поле \u0027Привет, мир!\u0027",
            "th": "Поле \u0027Привет, мир!\u0027",
            "tr": "Поле \u0027Привет, мир!\u0027",
            "vn": "Поле \u0027Привет, мир!\u0027"
        },
        "LIST_FILTER_LABEL": {
            "ar": "Привет, мир! Фильтр",
            "br": "Привет, мир! Фильтр",
            "en": "Привет, мир! Фильтр",
            "fr": "Привет, мир! Фильтр",
            "id": "Привет, мир! Фильтр",
            "it": "Привет, мир! Фильтр",
            "ja": "Привет, мир! Фильтр",
            "la": "Привет, мир! Фильтр",
            "ms": "Привет, мир! Фильтр",
            "pl": "Привет, мир! Фильтр",
            "ru": "Привет, мир! Фильтр",
            "sc": "Привет, мир! Фильтр",
            "tc": "Привет, мир! Фильтр",
            "th": "Привет, мир! Фильтр",
            "tr": "Привет, мир! Фильтр",
            "vn": "Привет, мир! Фильтр"
        },
        "ERROR_MESSAGE": {
            "ar": "Поле \u0027Привет, мир!\u0027",
            "br": "Поле \u0027Привет, мир!\u0027",
            "en": "Hello, World! Error",
            "fr": "Поле \u0027Привет, мир!\u0027",
            "id": "Поле \u0027Привет, мир!\u0027",
            "it": "Поле \u0027Привет, мир!\u0027",
            "ja": "Поле \u0027Привет, мир!\u0027",
            "la": "Поле \u0027Привет, мир!\u0027",
            "ms": "Поле \u0027Привет, мир!\u0027",
            "pl": "Поле \u0027Привет, мир!\u0027",
            "ru": "Привет, мир! Ошибка",
            "sc": "Поле \u0027Привет, мир!\u0027",
            "tc": "Поле \u0027Привет, мир!\u0027",
            "th": "Поле \u0027Привет, мир!\u0027",
            "tr": "Поле \u0027Привет, мир!\u0027",
            "vn": "Поле \u0027Привет, мир!\u0027"
        },
        "HELP_MESSAGE": {
            "ar": "Поле \u0027Привет, мир!\u0027",
            "br": "Поле \u0027Привет, мир!\u0027",
            "en": "Hello, World! Help",
            "fr": "Поле \u0027Привет, мир!\u0027",
            "id": "Поле \u0027Привет, мир!\u0027",
            "it": "Поле \u0027Привет, мир!\u0027",
            "ja": "Поле \u0027Привет, мир!\u0027",
            "la": "Поле \u0027Привет, мир!\u0027",
            "ms": "Поле \u0027Привет, мир!\u0027",
            "pl": "Поле \u0027Привет, мир!\u0027",
            "ru": "Привет, мир! Помощь",
            "sc": "Поле \u0027Привет, мир!\u0027",
            "tc": "Поле \u0027Привет, мир!\u0027",
            "th": "Поле \u0027Привет, мир!\u0027",
            "tr": "Поле \u0027Привет, мир!\u0027",
            "vn": "Поле \u0027Привет, мир!\u0027"
        }
    },
    "time": {
        "start": 1724318753.341079,
        "finish": 1724318753.621247,
        "duration": 0.2801680564880371,
        "processing": 0.023567914962768555,
        "date_start": "2024-08-22T11:25:53+02:00",
        "date_finish": "2024-08-22T11:25:53+02:00",
        "operating": 0
    }
}

Возвращаемые данные

Название
тип
Описание
result
userfield
Корневой элемент ответа, содержит информацию о пользовательском поле
time
time
Информация о времени выполнения запроса

userfield

Параметр
тип
Описание
ID
[integer][1]
Идентификатор пользовательского поля
ENTITY_ID
[string][1]
Строковый идентификатор привязки пользовательского поля к сущности.

В случае методов crm.contact.userfield.* автоматически проставляется значение CRM_CONTACT

FIELD_NAME
[string][1]
Код поля. Уникальное
USER_TYPE_ID
[string][1]
Тип данных пользовательского поля. Возможные значения:
— string — строка
— integer — целое число
— double — число
— boolean — да/нет
— datetime — дата/время
— date — дата
— money — деньги
— url — ссылка
— address — адрес
— enumeration — список
— file — файл
— employee — привязка к сотруднику
— crm_status — привязка к справочнику CRM
— iblock_section — привязка к разделам информационных блоков
— iblock_element — привязка к элементам информационных блоков
— crm — привязка к элементам CRM
— пользовательские типы полей
XML_ID
[string][1]
Внешний код
SORT
[integer][1]
Индекс сортировки
MULTIPLE
[boolean][1]
Является ли поле множественным. Возможные значения:
— Y — да
— N — нет
MANDATORY
[boolean][1]
Является ли поле обязательным. Возможные значения:
— Y — да
— N — нет
SHOW_FILTER
[boolean][1]
Показывать ли поле в фильтре. Возможные значения:
— N — не показывать
— I — точное совпадение
— E — маска
— S — подстрока
SHOW_IN_LIST
[boolean][1]
Показывать ли пользовательское поле в списке.

Данный параметр ни на что не влияет в рамках crm.

Возможные значения:
— Y — да
— N — нет

EDIT_IN_LIST
[boolean][1]
Разрешать редактирование пользователем. Возможные значения:
— Y — да
— N — нет
IS_SEARCHABLE
[boolean][1]
Участвуют ли значения поля в поиске.

Данный параметр ни на что не влияет в рамках crm.

Возможные значения:
— Y — да
— N — нет

SETTINGS
[object][1]
Дополнительные параметры поля. Для каждого типа поля (USER_TYPE_ID) существует свой пул доступных настроек, они описаны ниже
LIST
uf_enum_element[]
Список возможных значений для пользовательского поля типа enumeration. Для пользовательских полей другого типа данный параметр не несет смысла
EDIT_FORM_LABEL
lang_map
Подпись в форме редактирования
LIST_COLUMN_LABEL
lang_map
Заголовок в списке
LIST_FILTER_LABEL
lang_map
Подпись фильтра в списке
ERROR_MESSAGE
lang_map
Сообщение об ошибке
HELP_MESSAGE
lang_map
Помощь
USER_TYPE_OWNER
[string][1]
CLIENT_ID приложения, который обслуживает данный тип поля.

Отдается в случае, когда тип поля является пользовательским

Параметр settings {#settings}

  • double
Название
тип
Описание
PRECISION
[integer][1]
Точность (количество знаков после запятой)
SIZE
[integer][1]
Размер поля ввода для отображения
MIN_VALUE
[double][1]
Минимальное значение (0 — не проверять)
MAX_VALUE
[double][1]
Максимальное значение (0 — не проверять)
DEFAULT_VALUE
[double][1]
Значение по умолчанию
  • boolean
Название
тип
Описание
DEFAULT_VALUE
[integer][1]
Является ли значением по умолчанию. Возможные значения:
— 0 — нет
— 1 — да
DISPLAY
[string][1]
Внешний вид. Возможные значения:
— CHECKBOX — флажок
— RADIO — радиокнопки
— DROPDOWN — выпадающий список
LABEL
[string[]][1]
Подписи для значений, где:
— элемент массива с индексом 0 — подпись для значения Нет
— элемент массива с индексом 1 — подпись для значения Да
LABEL_CHECKBOX
[string][1]
Подпись флажка
  • date
Название
тип
Описание
DEFAULT_VALUE
[object][1]
Значение по умолчанию. Объект формата:

    {
        TYPE: 'NONE'|'FIXED'|'NONE',
        VALUE: date
    }

где:
— TYPE — тип значения по умолчанию:
— NONE — отсутствует
— NOW — текущая дата
— FIXED — дата из значения VALUE
— VALUE имеет тип date

  • integer
Название
тип
Описание
SIZE
[integer][1]
Размер поля ввода для отображения
MIN_VALUE
[integer][1]
Минимальное значение (0 — не проверять)
MAX_VALUE
[integer][1]
Максимальное значение (0 — не проверять)
DEFAULT_VALUE
[integer][1]
Значение по умолчанию
  • datetime
Название
тип
Описание
DEFAULT_VALUE
[object][1]
Значение по умолчанию. Объект формата:

    {
        TYPE: 'NONE'|'FIXED'|'NONE',
        VALUE: datetime
    }

где:
— TYPE — тип значения по умолчанию:
— NONE — отсутствует
— NOW — текущая дата со временем
— FIXED — дата со временем из значения VALUE
— VALUE имеет тип datetime

USE_SECOND
[boolean][1]
Использовать ли секунды. Возможные значения:
— Y — да
— N — нет
USE_TIMEZONE
[boolean][1]
Использовать ли часовые пояса. Возможные значения:
— Y — да
— N — нет
  • string
Название
тип
Описание
SIZE
[integer][1]
Размер поля ввода для отображения
ROWS
[integer][1]
Количество строчек поля ввода
REGEXP
[string][1]
Регулярное выражение для проверки
MIN_LENGTH
[integer][1]
Минимальная длина строки (0 — не проверять)
MAX_LENGTH
[integer][1]
Максимальная длина строки (0 — не проверять)
DEFAULT_VALUE
[string][1]
Значение по умолчанию
  • enumeration
Название
тип
Описание
DISPLAY
[string][1]
Внешний вид. Возможные значения:
— LIST — список
— CHECKBOX — флажки
— UI — набираемый список
— DIALOG — диалог выбора сущностей
LIST_HEIGHT
[integer][1]
Высота списка
CAPTION_NO_VALUE
[string][1]
Подпись при отсутствии значения
SHOW_NO_VALUE
[boolean][1]
Показывать ли пустое значение для обязательного поля. Возможные значения:
— Y — да
— N — нет
  • iblock_section|iblock_element
Название
тип
Описание
DISPLAY
[string][1]
Внешний вид. Возможные значения:
— LIST — список
— CHECKBOX — флажки
— UI — набираемый список
— DIALOG — диалог выбора сущностей
LIST_HEIGHT
[integer][1]
Высота списка
IBLOCK_ID
[integer][1]
Идентификатор инфоблока
DEFAULT_VALUE
[integer][1]
Значение по умолчанию
ACTIVE_FILTER
[boolean][1]
Показывать только активные элементы. Возможные значения:
— Y — да
— N — нет
  • crm_status
Название
тип
Описание
ENTITY_TYPE
[object][1]
Справочник CRM. Структура аналогична возвращаемым элементам метода crm.status.entity.types
  • crm
Название
тип
Описание
LEAD
[boolean][1]
Включена ли привязка к Лидам
CONTACT
[boolean][1]
Включена ли привязка к Контактам
COMPANY
[boolean][1]
Включена ли привязка к Компаниям
DEAL
[boolean][1]
Включена ли привязка к Сделкам
ORDER
[boolean][1]
Включена ли привязка к Заказам
QUOTE
[boolean][1]
Включена ли привязка к Коммерческим предложениям
SMART_INVOICE
[boolean][1]
Включена ли привязка к Новым счетам
DYNAMIC_…
[boolean][1]
Включена ли привязка к определенному Смарт-процессу.

Каждое такое поле имеет вид: DYNAMIC_{entityTypeId}, где entityTypeId — идентификатор типа смарт-процесса, к которому включена привязка

  • money
Название
тип
Описание
DEFAULT_VALUE
[string][1]
Значение по умолчанию.

Значение данного поля имеет формат: {VALUE}\|{CURRENCY}, где:
— VALUE — количество денег по умолчанию
— CURRENCY — строковый идентификатор валюты

Например: 300\|RUB — 300 рублей

  • address
Название
тип
Описание
SHOW_MAP
[boolean][1]
Показывать карту
  • url
Название
тип
Описание
POPUP
[boolean][1]
Открывать в новом окне
SIZE
[integer][1]
Размер поля ввода для отображения
MIN_LENGTH
[integer][1]
Минимальная длина строки (0 — не проверять)
MAX_LENGTH
[integer][1]
Максимальная длина строки (0 — не проверять)
DEFAULT_VALUE
[string][1]
Значение по умолчанию
ROWS
[integer][1]
Количество строчек поля ввода
  • file
Название
тип
Описание
SIZE
[integer][1]
Размер поля ввода для отображения
LIST_WIDTH
[integer][1]
Максимальные ширина для отображения в списке
LIST_HEIGHT
[integer][1]
Максимальные высота для отображения в списке
MAX_SHOW_SIZE
[integer][1]
Максимально допустимый размер для показа в списке (0 — не ограничивать)
MAX_ALLOWED_SIZE
[integer][1]
Максимально допустимый размер файла для загрузки (0 — не проверять)
EXTENSIONS
[string[]][1]
Разрешенные расширения
TARGET_BLANK
[boolean][1]
Открывать файл в новой вкладке

Тип uf_enum_element {#uf_enum_element}

Название
тип
Описание
ID
[integer][1]
Идентификатор элемента списка
VALUE
[string][1]
Значение элемента списка
SORT
[integer][1]
Индекс сортировки
DEF
[boolean][1]
Является ли элемент списка значением по умолчанию. Возможные значения:
— Y — да
— N — нет

Обработка ошибок

HTTP-статус: 400

{
    "error": "",
    "error_description": "ID is not defined or invalid."
}

Возможные коды ошибок

КодОписаниеЗначение
-Access deniedВозникает в случаях, когда:
— у пользователя нет административных прав
— пользователь пытается получить пользовательское поле, не привязанное к контактам
-ID is not defined or invalidПереданный id меньше или равен нулю, либо же не передан вовсе
ERROR_NOT_FOUNDThe entity with ID 'id' is not foundПользовательское поле с переданным id не найдено
  • [](./crm-contact-userfield-add)
  • [](./crm-contact-userfield-update)
  • [](./crm-contact-userfield-list)
  • [](./crm-contact-userfield-delete)

[1]: ../../../data-types.md

💡 Экспертное мнение и рекомендации

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к crm.contact.userfield.get, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Получить пользовательское поле контактов по Id crm.contact.userfield.get».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Как использовать метод SDK catalog.product.get в Битрикс24Как использовать метод SDK catalog.product.get в Битрикс24

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Как использовать метод SDK catalog.product.get в Битрикс24». Вы узнаете экспертные методики работы с

REST API Битрикс24: Работа с задачами (tasks.task)REST API Битрикс24: Работа с задачами (tasks.task)

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

Оповестить об окончании работы инсталлятора BX24.installFinishОповестить об окончании работы инсталлятора BX24.installFinish

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Оповестить об окончании работы инсталлятора BX24.installFinish». Мы подготовили подробный разбор принципов работы и развернутые примеры