crm.requisite.userfield.add
Создать новое пользовательское поле реквизита
Описание
Метод создает новое пользовательское поле для реквизита.
Ограничения для символьного кода пользовательского поля
Системное ограничение на название поля — 20 знаков. К названию пользовательского поля всегда добавляется префикс UF_CRM_, то есть реальная длина названия — 13 знаков.
Параметры
fields
object
обязательный
Набор полей — объект вида {"поле": "значение"[, ...]} для добавления пользовательского поля реквизита
Параметр fields
ENTITY_ID
string
обязательный
Идентификатор сущности, к которой относится пользовательское поле. Для реквизитов это всегда CRM_REQUISITE
FIELD_NAME
string
обязательный
Символьный код. Для реквизитов всегда начинается с префикса UF_CRM_
XML_ID
string
необязательный
Внешний ключ. Используется для операций обмена. Идентификатор объекта внешней информационной базы.
Назначение поля может меняться конечным разработчиком
SORT
integer
необязательный
Сортировка
MULTIPLE
char
необязательный
Признак множественности. Возможные значения:
- Y — да
- N — нет
По умолчанию устанавливается N
MANDATORY
char
необязательный
Признак обязательности. Возможные значения:
- Y — да
- N — нет
По умолчанию устанавливается N
SHOW_FILTER
char
необязательный
Показывать ли в фильтре списка. Возможные значения:
- N — не показывать
- I — точное совпадение
- E — маска
- S — подстрока
По умолчанию устанавливается N
SHOW_IN_LIST
char
необязательный
Показывать ли в списке. Возможные значения:
- Y — да
- N — нет
По умолчанию устанавливается Y
EDIT_IN_LIST
char
необязательный
Разрешать ли редактирование пользователем. Возможные значения:
- Y — да
- N — нет
По умолчанию устанавливается Y
IS_SEARCHABLE
char
необязательный
Участвуют ли значения поля в поиске. Возможные значения:
- Y — да
- N — нет
По умолчанию устанавливается N
EDIT_FORM_LABEL
string
необязательный
Подпись в форме редактирования
LIST_COLUMN_LABEL
string
необязательный
Заголовок в списке
LIST_FILTER_LABEL
string
необязательный
Подпись фильтра в списке
ERROR_MESSAGE
string
необязательный
Сообщение об ошибке
HELP_MESSAGE
string
необязательный
Помощь
LIST
uf_enum_element
необязательный
Элементы списка. Для получения подробной информации смотрите раздел crm.userfield.enumeration.fields
SETTINGS
object
необязательный
Дополнительные настройки (зависят от типа). Для получения подробной информации смотрите раздел crm.userfield.settings.fields
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"USER_TYPE_ID":"string","ENTITY_ID":"CRM_REQUISITE","SORT":100,"MULTIPLE":"N","MANDATORY":"N","SHOW_FILTER":"E","SHOW_IN_LIST":"Y","EDIT_FORM_LABEL":"ПП - Строка","LIST_COLUMN_LABEL":"ПП - Строка","LIST_FILTER_LABEL":"ПП - Строка","FIELD_NAME":"NEWTECH_v1_STRING"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.requisite.userfield.add
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"USER_TYPE_ID":"string","ENTITY_ID":"CRM_REQUISITE","SORT":100,"MULTIPLE":"N","MANDATORY":"N","SHOW_FILTER":"E","SHOW_IN_LIST":"Y","EDIT_FORM_LABEL":"ПП - Строка","LIST_COLUMN_LABEL":"ПП - Строка","LIST_FILTER_LABEL":"ПП - Строка","FIELD_NAME":"NEWTECH_v1_STRING"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.requisite.userfield.add
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
try {
const response = await $b24.actions.v2.call.make<number>({
method: 'crm.requisite.userfield.add',
params: {
fields: {
USER_TYPE_ID: 'string',
ENTITY_ID: 'CRM_REQUISITE',
SORT: 100,
MULTIPLE: 'N',
MANDATORY: 'N',
SHOW_FILTER: 'E',
SHOW_IN_LIST: 'Y',
EDIT_FORM_LABEL: 'PP - String',
LIST_COLUMN_LABEL: 'PP - String',
LIST_FILTER_LABEL: 'PP - String',
FIELD_NAME: 'NEWTECH_v1_STRING',
},
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Created user field ID:', result)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function addRequisiteUserField() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'crm.requisite.userfield.add',
params: {
fields: {
USER_TYPE_ID: 'string',
ENTITY_ID: 'CRM_REQUISITE',
SORT: 100,
MULTIPLE: 'N',
MANDATORY: 'N',
SHOW_FILTER: 'E',
SHOW_IN_LIST: 'Y',
EDIT_FORM_LABEL: 'PP - String',
LIST_COLUMN_LABEL: 'PP - String',
LIST_FILTER_LABEL: 'PP - String',
FIELD_NAME: 'NEWTECH_v1_STRING',
},
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Created user field ID:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', addRequisiteUserField)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.crm.requisite.userfield.add(
fields={
"USER_TYPE_ID": "string",
"ENTITY_ID": "CRM_REQUISITE",
"SORT": 100,
"MULTIPLE": "N",
"MANDATORY": "N",
"SHOW_FILTER": "E",
"SHOW_IN_LIST": "Y",
"EDIT_FORM_LABEL": "ПП - Строка",
"LIST_COLUMN_LABEL": "ПП - Строка",
"LIST_FILTER_LABEL": "ПП - Строка",
"FIELD_NAME": "NEWTECH_v1_STRING",
},
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'crm.requisite.userfield.add',
[
'fields' => [
'USER_TYPE_ID' => 'string',
'ENTITY_ID' => 'CRM_REQUISITE',
'SORT' => 100,
'MULTIPLE' => 'N',
'MANDATORY' => 'N',
'SHOW_FILTER' => 'E',
'SHOW_IN_LIST' => 'Y',
'EDIT_FORM_LABEL' => 'ПП - Строка',
'LIST_COLUMN_LABEL' => 'ПП - Строка',
'LIST_FILTER_LABEL' => 'ПП - Строка',
'FIELD_NAME' => 'NEWTECH_v1_STRING',
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding user field: ' . $e->getMessage();
}
BX24.callMethod(
"crm.requisite.userfield.add",
{
fields:
{
"USER_TYPE_ID": "string",
"ENTITY_ID": "CRM_REQUISITE",
"SORT": 100,
"MULTIPLE": "N",
"MANDATORY": "N",
"SHOW_FILTER": "E",
"SHOW_IN_LIST": "Y",
"EDIT_FORM_LABEL": "ПП - Строка",
"LIST_COLUMN_LABEL": "ПП - Строка",
"LIST_FILTER_LABEL": "ПП - Строка",
"FIELD_NAME": "NEWTECH_v1_STRING"
}
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.dir(result.data());
}
);
require_once('crest.php');
$result = CRest::call(
'crm.requisite.userfield.add',
[
'fields' => [
'USER_TYPE_ID' => 'string',
'ENTITY_ID' => 'CRM_REQUISITE',
'SORT' => 100,
'MULTIPLE' => 'N',
'MANDATORY' => 'N',
'SHOW_FILTER' => 'E',
'SHOW_IN_LIST' => 'Y',
'EDIT_FORM_LABEL' => 'ПП - Строка',
'LIST_COLUMN_LABEL' => 'ПП - Строка',
'LIST_FILTER_LABEL' => 'ПП - Строка',
'FIELD_NAME' => 'NEWTECH_v1_STRING'
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "crm.requisite.userfield.add", b24.Params{
"fields": b24.Params{
"USER_TYPE_ID": "string",
"ENTITY_ID": "CRM_REQUISITE",
"SORT": 100,
"MULTIPLE": "N",
"MANDATORY": "N",
"SHOW_FILTER": "E",
"SHOW_IN_LIST": "Y",
"EDIT_FORM_LABEL": "ПП - Строка",
"LIST_COLUMN_LABEL": "ПП - Строка",
"LIST_FILTER_LABEL": "ПП - Строка",
"FIELD_NAME": "NEWTECH_v1_STRING",
},
})
if err != nil {
return fmt.Errorf("crm.requisite.userfield.add: %w", err)
}
var newID b24.ID
if err := json.Unmarshal(res.Result, &newID); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("идентификатор:", newID)
Ответ
HTTP-статус: 200
{
"result": 235,
"time": {
"start": 1717681176.885836,
"finish": 1717681177.353738,
"duration": 0.46790218353271484,
"processing": 0.084564208984375,
"date_start": "2024-06-06T15:39:36+02:00",
"date_finish": "2024-06-06T15:39:37+02:00",
"operating": 0
}
}
Возвращаемые данные
result
integer
Идентификатор созданного пользовательского поля
time
time
Информация о времени выполнения запроса
Обработка ошибок
{
"error": "ERROR_CORE",
"error_description": "Поле UF_CRM_NEWTECH_V1_STRING для объекта CRM_REQUISITE уже существует."
}
| Код | Описание | Значение |
|---|---|---|
ERROR_CORE |
Поле UF_CRM_NEWTECH_V1_STRING для объекта CRM_REQUISITE уже существует |
Попытка повторно создать пользовательское поле с таким же символьным кодом |
Пустая строка |
The 'USER_TYPE_ID' field is not found |
Не задан тип данных пользовательского поля |
Пустая строка |
The 'FIELD_NAME' field is not found |
Не задан символьный код пользовательского поля |
Пустая строка |
Access denied |
Недостаточно прав доступа для добавления пользовательского поля |
ERROR_CORE |
Fail to create new user field |
Не удалось создать пользовательское поле |
ERROR_CORE |
Fail to save enumeration field values |
Не удалось сохранить значения пользовательского поля списочного типа (например, когда произошло дублирование внешнего ключа одного из значений) |

