При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Добавить поле crm.lead.userfield.add», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.
Добавить поле crm.lead.userfield.add
Тут может не хватать некоторых данных — дополним в ближайшее время
- не указаны типы параметров
- нужны правки под стандарты написания
- не указана обязательность параметров
- отсутствуют примеры (на других языках)
- отсутствует ответ в случае успеха
- отсутствует ответ в случае ошибки
- не прописана ссылка на ещё не созданную страницу
> Scope: crm
>
> Кто может выполнять метод: любой пользователь
Метод crm.lead.userfield.add создаёт новое пользовательское поле для лидов.
Системное ограничение на название поля – 20 знаков. К названию пользовательского поля всегда добавляется префикс UF_CRM_, то есть реальная длина названия 13 знаков.
| Параметр | Описание |
|---|---|
| fields | Набор полей – массив вида array("поле"=>"значение"[, ...]), содержащий описание пользовательского поля. |
| LIST | Содержит набор значений списка для пользовательских полей типа Список. Указывается при создании/обновлении поля. Каждое значение представляет собой массив с полями: — VALUE — значение элемента списка. Поле является обязательным в случае, когда создаётся новый элемент. — SORT — сортировка. — DEF — если равно Y, то элемент списка является значением по умолчанию. Для множественного поля допустимо несколько DEF=Y. Для не множественного дефолтным будет считаться первое. — XML_ID — внешний код значения. Параметр учитывается только при обновлении уже существующих значений элемента списка. — ID — идентификатор значения. Если он указан, то считается что это обновление существующего значения элемента списка, а не создание нового. Имеет смысл только при вызове методов *.userfield.update. — DEL — если равно Y, то существующий элемент списка будет удален. Применяется, если заполнен параметр ID. |
Полное описание полей можно получить вызовом метода crm.userfield.fields.
Практические примеры использования в коде
- JS
try
{
const response = await $b24.callMethod(
"crm.lead.userfield.add",
{
fields:
{
"FIELD_NAME": "MY_STRING",
"EDIT_FORM_LABEL": "Моя строка",
"LIST_COLUMN_LABEL": "Моя строка",
"USER_TYPE_ID": "string",
"XML_ID": "MY_STRING",
"SETTINGS": { "DEFAULT_VALUE": "Привет, мир!" }
}
}
);
const result = response.getData().result;
if(result.error())
console.error(result.error());
else
console.dir(result);
}
catch(error)
{
console.error('Error:', error);
}- PHP
try {
$response = $b24Service
->core
->call(
'crm.lead.userfield.add',
[
'fields' => [
'FIELD_NAME' => 'MY_STRING',
'EDIT_FORM_LABEL' => 'Моя строка',
'LIST_COLUMN_LABEL' => 'Моя строка',
'USER_TYPE_ID' => 'string',
'XML_ID' => 'MY_STRING',
'SETTINGS' => ['DEFAULT_VALUE' => 'Привет, мир!'],
],
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
error_log($result->error());
} else {
echo 'Success: ' . print_r($result->data(), true);
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding lead user field: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
"crm.lead.userfield.add",
{
fields:
{
"FIELD_NAME": "MY_STRING",
"EDIT_FORM_LABEL": "Моя строка",
"LIST_COLUMN_LABEL": "Моя строка",
"USER_TYPE_ID": "string",
"XML_ID": "MY_STRING",
"SETTINGS": { "DEFAULT_VALUE": "Привет, мир!" }
}
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.dir(result.data());
}
);Пример создания поля типа «список»
- JS
try
{
const response = await $b24.callMethod(
"crm.lead.userfield.add",
{
fields:
{
"FIELD_NAME": "MY_LIST",
"EDIT_FORM_LABEL": "Мой список",
"LIST_COLUMN_LABEL": "Мой список",
"USER_TYPE_ID": "enumeration",
"LIST": [ { "VALUE": "Элемент #1" }, { "VALUE": "Элемент #2" }, { "VALUE": "Элемент #3" }, { "VALUE": "Элемент #4" }, { "VALUE": "Элемент #5" } ],
"XML_ID": "MY_LIST",
"SETTINGS": { "LIST_HEIGHT": 3 }
}
}
);
const result = response.getData().result;
if(result.error())
console.error(result.error());
else
console.dir(result);
}
catch(error)
{
console.error('Error:', error);
}- PHP
try {
$response = $b24Service
->core
->call(
'crm.lead.userfield.add',
[
'fields' => [
'FIELD_NAME' => 'MY_LIST',
'EDIT_FORM_LABEL' => 'Мой список',
'LIST_COLUMN_LABEL' => 'Мой список',
'USER_TYPE_ID' => 'enumeration',
'LIST' => [
['VALUE' => 'Элемент #1'],
['VALUE' => 'Элемент #2'],
['VALUE' => 'Элемент #3'],
['VALUE' => 'Элемент #4'],
['VALUE' => 'Элемент #5'],
],
'XML_ID' => 'MY_LIST',
'SETTINGS' => ['LIST_HEIGHT' => 3],
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding lead user field: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
"crm.lead.userfield.add",
{
fields:
{
"FIELD_NAME": "MY_LIST",
"EDIT_FORM_LABEL": "Мой список",
"LIST_COLUMN_LABEL": "Мой список",
"USER_TYPE_ID": "enumeration",
"LIST": [ { "VALUE": "Элемент #1" }, { "VALUE": "Элемент #2" }, { "VALUE": "Элемент #3" }, { "VALUE": "Элемент #4" }, { "VALUE": "Элемент #5" } ],
"XML_ID": "MY_LIST",
"SETTINGS": { "LIST_HEIGHT": 3 }
}
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.dir(result.data());
}
); 💡 Экспертное мнение и рекомендации
Советы эксперта по интеграции:
- Всегда используйте кэширование при частых запросах к crm.lead.userfield.add, чтобы разгрузить базу данных.
- Соблюдайте стандарты PSR при написании обработчиков для «Добавить поле crm.lead.userfield.add».
- Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru