Добавить пользовательское поле userfieldconfig.add
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Scope:
userfieldconfig, scope модуля изmoduleId(например,crm)Кто может выполнять метод: пользователь с правом изменения настроек объекта в модуле
moduleId(дляcrm— право «Разрешить изменять настройки»)
Метод userfieldconfig.add добавляет новое пользовательское поле.
Параметры метода
Обязательные параметры отмечены *
|
Название |
Описание |
|
moduleId* |
Идентификатор модуля, в котором создается поле |
|
field* |
Объект с настройками пользовательского поля (подробное описание) |
Параметр field
|
Название |
Описание |
|
entityId* |
Идентификатор объекта, для которого создается поле. Формат зависит от модуля, например |
|
fieldName* |
Код поля в формате |
|
userTypeId* |
Идентификатор типа поля. Список доступных типов возвращает метод userfieldconfig.getTypes |
|
xmlId |
Внешний идентификатор поля |
|
sort |
Индекс сортировки. По умолчанию |
|
multiple |
Является ли поле множественным. Возможные значения: |
|
mandatory |
Является ли поле обязательным. Возможные значения: |
|
showFilter |
Показывать ли поле в фильтре. Возможные значения: |
|
editInList |
Разрешать ли редактирование значения в списке. Возможные значения: |
|
isSearchable |
Участвуют ли значения поля в поиске. Возможные значения: |
|
settings |
Дополнительные настройки поля. Набор ключей зависит от |
|
Подпись в форме редактирования. При передаче строки используется как общее значение, при передаче |
|
|
Текст подсказки. При передаче строки используется как общее значение, при передаче |
|
|
enum |
Варианты значений для поля типа |
Метод использует фиксированный набор ключей в field (см. таблицу выше).
Некорректные и неподдерживаемые ключи в field игнорируются.
Ключи showInList, listColumnLabel, listFilterLabel, errorMessage, label не обрабатываются методом userfieldconfig.add, даже если переданы в field.
Параметр settings
У каждого типа поля существует свой набор ключей в settings.
|
Название |
Описание |
|
DEFAULT_VALUE |
Значение по умолчанию |
|
ROWS |
Количество строк в поле ввода, должно быть больше 0 |
|
SIZE |
Ширина поля ввода |
|
REGEXP |
Регулярное выражение для валидации |
|
MIN_LENGTH |
Минимальная длина строки |
|
MAX_LENGTH |
Максимальная длина строки |
|
Название |
Описание |
|
DEFAULT_VALUE |
Значение по умолчанию |
|
SIZE |
Ширина поля ввода |
|
MIN_VALUE |
Минимальное значение |
|
MAX_VALUE |
Максимальное значение |
|
Название |
Описание |
|
DEFAULT_VALUE |
Значение по умолчанию |
|
PRECISION |
Точность числа, должна быть больше или равна 0 |
|
SIZE |
Ширина поля ввода |
|
MIN_VALUE |
Минимальное значение |
|
MAX_VALUE |
Максимальное значение |
|
Название |
Описание |
|
DEFAULT_VALUE |
Значение по умолчанию, где |
|
DISPLAY |
Внешний вид, возможные значения: |
|
LABEL |
Подпись значения Да |
|
LABEL_CHECKBOX |
Подпись для режима |
|
Название |
Описание |
|
DEFAULT_VALUE |
Значение по умолчанию в формате |
|
USE_SECOND |
Использовать секунды в поле |
|
USE_TIMEZONE |
Использовать часовой пояс в поле |
|
Название |
Описание |
|
|
DEFAULT_VALUE |
Значение по умолчанию в формате ` |
{CURRENCY}` |
|
Название |
Описание |
|
POPUP |
Открывать ссылку в новом окне |
|
SIZE |
Ширина поля ввода |
|
MIN_LENGTH |
Минимальная длина значения |
|
MAX_LENGTH |
Максимальная длина значения |
|
DEFAULT_VALUE |
Значение по умолчанию |
|
ROWS |
Количество строк в поле ввода |
|
Название |
Описание |
|
SHOW_MAP |
Показывать карту для адреса |
|
Название |
Описание |
|
SIZE |
Ширина поля ввода |
|
LIST_WIDTH |
Ширина превью в списке |
|
LIST_HEIGHT |
Высота превью в списке |
|
MAX_SHOW_SIZE |
Максимальный размер файла для показа |
|
MAX_ALLOWED_SIZE |
Максимально допустимый размер файла |
|
EXTENSIONS |
Список разрешенных расширений |
|
TARGET_BLANK |
Открывать файл в новой вкладке |
|
Название |
Описание |
|
DISPLAY |
Внешний вид, возможные значения: |
|
LIST_HEIGHT |
Высота списка, должна быть больше 0 |
|
CAPTION_NO_VALUE |
Подпись пустого значения |
|
SHOW_NO_VALUE |
Показывать пустое значение |
|
Название |
Описание |
|
DISPLAY |
Внешний вид, возможные значения: |
|
LIST_HEIGHT |
Высота списка, должна быть больше 0 |
|
IBLOCK_ID |
Идентификатор инфоблока |
|
DEFAULT_VALUE |
Значение по умолчанию |
|
ACTIVE_FILTER |
Использовать только активные элементы |
|
Название |
Описание |
|
Название |
Описание |
|
LEAD |
Включить привязку к лидам |
|
CONTACT |
Включить привязку к контактам |
|
COMPANY |
Включить привязку к компаниям |
|
DEAL |
Включить привязку к сделкам |
|
QUOTE |
Включить привязку к предложениям |
|
ORDER |
Включить привязку к заказам |
|
SMART_INVOICE |
Включить привязку к счетам |
|
DYNAMIC_* |
Включить привязку к смарт-процессу с конкретным |
Отдельные настройки в settings для типа employee не используются
Настройки определяются обработчиком пользовательского типа поля
Тип uf_enum_element
|
Название |
Описание |
|
value* |
Значение варианта списка |
|
def |
Флаг значения по умолчанию ( |
|
sort |
Индекс сортировки варианта |
|
xmlId |
Внешний идентификатор варианта |
Примеры кода
Как использовать примеры в документации
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"moduleId": "crm",
"field": {
"entityId": "CRM_7",
"fieldName": "UF_CRM_7_NEW_REST_LIST_2026",
"userTypeId": "enumeration",
"multiple": "Y",
"editFormLabel": {
"ru": "Список характеристик",
"en": "List of characteristics"
},
"enum": [
{ "value": "Характеристика 1", "def": "N", "sort": 100 },
{ "value": "Характеристика 2", "def": "Y", "sort": 200 }
]
}
}' \
"https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/userfieldconfig.add"
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"moduleId": "crm",
"field": {
"entityId": "CRM_7",
"fieldName": "UF_CRM_7_NEW_REST_LIST_2026",
"userTypeId": "enumeration",
"multiple": "Y",
"editFormLabel": {
"ru": "Список характеристик",
"en": "List of characteristics"
},
"enum": [
{ "value": "Характеристика 1", "def": "N", "sort": 100 },
{ "value": "Характеристика 2", "def": "Y", "sort": 200 }
]
},
"auth": "**put_access_token_here**"
}' \
"https://**put_your_bitrix24_address**/rest/userfieldconfig.add"
const endpoint = "https://**put_your_bitrix24_address**/rest/userfieldconfig.add.json";
fetch(endpoint, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
auth: "**put_access_token_here**",
moduleId: "crm",
field: {
entityId: "CRM_7",
fieldName: "UF_CRM_7_NEW_REST_LIST_2026",
userTypeId: "enumeration",
multiple: "Y",
editFormLabel: {
ru: "Список характеристик",
en: "List of characteristics",
},
enum: [
{ value: "Характеристика 1", def: "N", sort: 100 },
{ value: "Характеристика 2", def: "Y", sort: 200 },
],
},
}),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error(error));
$payload = [
'auth' => '**put_access_token_here**',
'moduleId' => 'crm',
'field' => [
'entityId' => 'CRM_7',
'fieldName' => 'UF_CRM_7_NEW_REST_LIST_2026',
'userTypeId' => 'enumeration',
'multiple' => 'Y',
'editFormLabel' => [
'ru' => 'Список характеристик',
'en' => 'List of characteristics',
],
'enum' => [
['value' => 'Характеристика 1', 'def' => 'N', 'sort' => 100],
['value' => 'Характеристика 2', 'def' => 'Y', 'sort' => 200],
],
],
];
$curl = curl_init('https://**put_your_bitrix24_address**/rest/userfieldconfig.add.json');
curl_setopt_array($curl, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$result = curl_exec($curl);
curl_close($curl);
print_r($result);
BX24.callMethod(
"userfieldconfig.add",
{
moduleId: "crm",
field: {
entityId: "CRM_7",
fieldName: "UF_CRM_7_NEW_REST_LIST_2026",
userTypeId: "enumeration",
multiple: "Y",
editFormLabel: {
ru: "Список характеристик",
en: "List of characteristics",
},
enum: [
{ value: "Характеристика 1", def: "N", sort: 100 },
{ value: "Характеристика 2", def: "Y", sort: 200 },
],
},
},
(result) => {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'userfieldconfig.add',
[
'moduleId' => 'crm',
'field' => [
'entityId' => 'CRM_7',
'fieldName' => 'UF_CRM_7_NEW_REST_LIST_2026',
'userTypeId' => 'enumeration',
'multiple' => 'Y',
'editFormLabel' => [
'ru' => 'Список характеристик',
'en' => 'List of characteristics',
],
'enum' => [
['value' => 'Характеристика 1', 'def' => 'N', 'sort' => 100],
['value' => 'Характеристика 2', 'def' => 'Y', 'sort' => 200],
],
],
]
);
echo '<pre>';
print_r($result);
echo '</pre>';
Обработка ответа
HTTP-статус: 200
{
"result": {
"field": {
"id": "6953",
"entityId": "CRM_7",
"fieldName": "UF_CRM_7_NEW_REST_LIST_2026",
"userTypeId": "enumeration",
"xmlId": null,
"sort": "100",
"multiple": "Y",
"mandatory": "N",
"showFilter": "N",
"showInList": "Y",
"editInList": "Y",
"isSearchable": "N",
"settings": {
"DISPLAY": "LIST",
"LIST_HEIGHT": 1,
"CAPTION_NO_VALUE": "",
"SHOW_NO_VALUE": "Y"
},
"languageId": {
"en": "en",
"ru": "ru"
},
"editFormLabel": {
"en": "List of characteristics",
"ru": "Список характеристик"
},
"listColumnLabel": {
"en": null,
"ru": null
},
"listFilterLabel": {
"en": null,
"ru": null
},
"errorMessage": {
"en": null,
"ru": null
},
"helpMessage": {
"en": null,
"ru": null
},
"enum": [
{
"id": "3363",
"userFieldId": "6953",
"value": "Характеристика 1",
"def": "N",
"sort": "100",
"xmlId": "56dff18efcfe25f3bae0117a6b372567"
},
{
"id": "3365",
"userFieldId": "6953",
"value": "Характеристика 2",
"def": "Y",
"sort": "200",
"xmlId": "42e3ebcf5506a65283bf3bf510d8f05a"
}
]
}
},
"time": {
"start": 1724239307.903115,
"finish": 1724239308.567422,
"duration": 0.6643068790435791,
"processing": 0.20090818405151367,
"date_start": "2024-08-21T13:21:47+02:00",
"date_finish": "2024-08-21T13:21:48+02:00",
"operating": 0
}
}
Возвращаемые данные
|
Название |
Описание |
|
result |
Корневой элемент ответа (подробное описание) |
|
time |
Информация о времени выполнения запроса |
Объект result
|
Название |
Описание |
|
field |
Настройки созданного пользовательского поля (подробное описание) |
Объект field
|
Название |
Описание |
|
id |
Идентификатор настроек поля |
|
entityId |
Идентификатор объекта |
|
fieldName |
Код поля |
|
userTypeId |
Идентификатор типа поля |
|
xmlId |
Внешний идентификатор поля |
|
sort |
Индекс сортировки |
|
multiple |
Флаг множественного значения ( |
|
mandatory |
Флаг обязательного поля ( |
|
showFilter |
Флаг показа поля в фильтре |
|
showInList |
Флаг показа поля в списке |
|
editInList |
Флаг редактирования в списке |
|
isSearchable |
Флаг участия в поиске |
|
settings |
Дополнительные настройки поля(подробное описание). Состав ключей зависит от |
|
languageId |
Языки, для которых заданы подписи поля |
|
editFormLabel |
Подписи в форме редактирования |
|
listColumnLabel |
Подписи колонки в списке |
|
listFilterLabel |
Подписи в фильтре |
|
errorMessage |
Текст сообщения об ошибке |
|
helpMessage |
Подсказка по полю |
|
enum |
Варианты значений. Поле возвращается только для |
Обработка ошибок
HTTP-статус: 400
{
"error": "",
"error_description": "The 'FIELD_NAME' field is not found."
}
|
Название |
Описание |
|
error |
Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания |
|
error_description |
Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде |
Возможные коды ошибок
|
Код |
Описание |
Значение |
|
|
Access denied |
Недостаточно прав для создания пользовательского поля |
|
|
Вы не можете создавать пользовательские поля |
Ошибка может возвращаться, если |
|
|
The 'USER_TYPE_ID' field is not found |
Не передан обязательный |
|
|
The 'FIELD_NAME' field is not found |
Не передан обязательный |
|
|
Поле ... уже существует |
Переданный |
|
|
Fail to create new user field |
Ошибка создания поля на стороне сервера |
|
|
Fail to save enumeration field values |
Ошибка сохранения значений списка для типа |
Статусы и коды системных ошибок
HTTP-статус: 20x, 40x, 50x
Описанные ниже ошибки могут возникнуть при вызове любого метода
|
Статус |
Код |
Описание |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Превышен лимит на интенсивность запросов |
|
|
|
Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически через 10 минут |
|
|
|
Текущий метод не разрешен для вызова с помощью batch |
|
|
|
Превышена максимальная длина параметров, переданных в метод batch |
|
|
|
Неверный access-токен или код вебхука |
|
|
|
Для вызовов методов требуется использовать протокол HTTPS |
|
|
|
REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24 |
|
|
|
REST API доступен только на коммерческих планах |
|
|
|
У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав |
|
|
|
Манифест недоступен |
|
|
|
Запрос требует более высоких привилегий, чем предоставляет токен вебхука |
|
|
|
Предоставленный access-токен доступа истек |
|
|
|
Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям |
|
|
|
Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта |
Продолжите изучение
- Обновить пользовательское поле userfieldconfig.update
- Получить настройки пользовательского поля userfieldconfig.get
- Получить список настроек пользовательских полей userfieldconfig.list
- Удалить пользовательское поле userfieldconfig.delete
- Получить доступные типы пользовательских полей userfieldconfig.getTypes