Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Получить пользовательское поле контактов по Id crm.contact.userfield.get». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.
Получить пользовательское поле контактов по Id crm.contact.userfield.get
> Scope: crm
>
> Кто может выполнять метод: администратор
Метод crm.contact.userfield.get возвращает пользовательское поле контактов по идентификатору.
Параметры метода
Названиетип | Описание |
|---|---|
| id* [ integer][1] | Идентификатор пользовательского поля, привязанного к контакту. Идентификатор можно получить с помощью методов |
Примеры кода
Получить пользовательское поле с 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
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultuserfield | Корневой элемент ответа, содержит информацию о пользовательском поле |
timetime | Информация о времени выполнения запроса |
userfield
Параметртип | Описание |
|---|---|
| ID [ integer][1] | Идентификатор пользовательского поля |
| ENTITY_ID [ string][1] | Строковый идентификатор привязки пользовательского поля к сущности. В случае методов |
| 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] | Показывать ли пользовательское поле в списке. Данный параметр ни на что не влияет в рамках Возможные значения: |
| EDIT_IN_LIST [ boolean][1] | Разрешать редактирование пользователем. Возможные значения: — Y — да— N — нет |
| IS_SEARCHABLE [ boolean][1] | Участвуют ли значения поля в поиске. Данный параметр ни на что не влияет в рамках Возможные значения: |
| SETTINGS [ object][1] | Дополнительные параметры поля. Для каждого типа поля (USER_TYPE_ID) существует свой пул доступных настроек, они описаны ниже |
LISTuf_enum_element[] | Список возможных значений для пользовательского поля типа enumeration. Для пользовательских полей другого типа данный параметр не несет смысла |
EDIT_FORM_LABELlang_map | Подпись в форме редактирования |
LIST_COLUMN_LABELlang_map | Заголовок в списке |
LIST_FILTER_LABELlang_map | Подпись фильтра в списке |
ERROR_MESSAGElang_map | Сообщение об ошибке |
HELP_MESSAGElang_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] | Значение по умолчанию. Объект формата: где: |
- integer
Названиетип | Описание |
|---|---|
| SIZE [ integer][1] | Размер поля ввода для отображения |
| MIN_VALUE [ integer][1] | Минимальное значение (0 — не проверять) |
| MAX_VALUE [ integer][1] | Максимальное значение (0 — не проверять) |
| DEFAULT_VALUE [ integer][1] | Значение по умолчанию |
- datetime
Названиетип | Описание |
|---|---|
| DEFAULT_VALUE [ object][1] | Значение по умолчанию. Объект формата: где: |
| 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] | Включена ли привязка к определенному Смарт-процессу. Каждое такое поле имеет вид: |
- money
Названиетип | Описание |
|---|---|
| DEFAULT_VALUE [ string][1] | Значение по умолчанию. Значение данного поля имеет формат: Например: |
- 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_FOUND | The 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 и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru