Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Создать новое пользовательское поле для компаний crm.company.userfield.add». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.
Создать новое пользовательское поле для компаний crm.company.userfield.add
Тут может не хватать некоторых данных — дополним в ближайшее время
- нужны правки под стандарт написания
- не указаны типы параметров
- не указана обязательность параметров
- отсутствуют примеры
- отсутствует ответ в случае успеха
- отсутствует ответ в случае ошибки
- не прописаны ссылки на несозданные ещё страницы (crm.userfield.fields)
> Scope: crm
>
> Кто может выполнять метод: любой пользователь
Метод crm.company.userfield.add создаёт новое пользовательское поле для компаний.
Системное ограничение на название поля — 20 знаков. К названию пользовательского поля всегда добавляется префикс UF_CRM_, то есть реальная длина названия — 13 знаков.
Входящие параметры и конфигурация метода
| Параметр | Описание |
|---|---|
fieldsarray | Набор полей — массив вида array(«поле»=>»значение»[, …]), содержащий описание пользовательского поля. |
LISTunknown | Содержит набор значений списка для пользовательских полей типа Список. Указывается при создании/обновлении поля. Каждое значение представляет собой массив с полями: — VALUE — значение элемента списка. Поле является обязательным в случае, когда создается новый элемент. — SORT — сортировка. — DEF — если равно Y, то элемент списка является значением по-умолчанию. Для множественного поля допустимо несколько DEF=Y. Для не множественного, дефолтным будет считаться первое. — XML_ID — внешний код значения. Параметр учитывается только при обновлении уже существующих значений элемента списка. — ID — идентификатор значения. Если он указан, то считается что это обновление существующего значения элемента списка, а не создание нового. Имеет смысл только при вызове методов *.userfield.update.— DEL — если равно Y, то существующий элемент списка будет удален. Применяется, если заполнен параметр ID. |
Полное описание полей можно получить вызовом метода crm.userfield.fields.
Практические примеры использования в коде
Пример #1: Создание текстового поля
- JS
try
{
const response = await $b24.callMethod(
"crm.company.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;
console.dir(result);
}
catch( error )
{
console.error(error);
}- PHP
try {
$response = $b24Service
->core
->call(
'crm.company.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 company user field: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
"crm.company.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());
}
);Пример #2: Создание списка
- JS
try
{
const response = await $b24.callMethod(
"crm.company.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;
console.dir(result);
}
catch( error )
{
console.error(error);
}- PHP
try {
$response = $b24Service
->core
->call(
'crm.company.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 company user field: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
"crm.company.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.company.userfield.add»:
Использование современных стандартов D7 при работе с crm.company.userfield.add позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru