Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Обновить существующее пользовательское поле компаний crm.company.userfield.up…». Вы узнаете экспертные методики работы с crm.company.userfield.update и научитесь избегать типичных ошибок начинающих разработчиков.
Обновить существующее пользовательское поле компаний crm.company.userfield.update
Тут может не хватать некоторых данных — дополним в ближайшее время
- нужны правки под стандарт написания
- не указаны типы параметров
- не указана обязательность параметров
- отсутствуют примеры
- отсутствует ответ в случае успеха
- отсутствует ответ в случае ошибки
- не прописаны ссылки на несозданные ещё страницы (crm.userfield.fields)
> Scope: crm
>
> Кто может выполнять метод: любой пользователь
Метод crm.company.userfield.update обновляет существующее пользовательское поле компаний.
Входящие параметры и конфигурация метода
| Параметр | Описание |
|---|---|
idunknown | Идентификатор пользовательского поля. |
fieldsunknown | Набор полей — массив вида array(«обновляемое поле»=>»значение»[, …]), где «обновляемое поле» может принимать значения из возвращаемых методом crm.userfield.fields. |
LISTunknown | Содержит набор значений списка для пользовательских полей типа Список. Указывается при создании/обновлении поля. Каждое значение представляет собой массив с полями: — VALUE — значение элемента списка. Поле является обязательным в случае, когда создается новый элемент. — SORT — сортировка. — DEF — если равно Y, то элемент списка является значением по-умолчанию. Для множественного поля допустимо несколько DEF=Y. Для не множественного, дефолтным будет считаться первое.— XML_ID — внешний код значения. Параметр учитывается только при обновлении уже существующих значений элемента списка. — ID — идентификатор значения. Если он указан, то считается что это обновление существующего значения элемента списка, а не создание нового. Имеет смысл только при вызове методов *.userfield.update.— DEL — если равно Y, то существующий элемент списка будет удален. Применяется, если заполнен параметр ID. |
Практический пример и готовый код на PHP
- JS
try
{
const id = prompt("Введите ID");
const label = prompt("Введите новое название");
const response = await $b24.callMethod(
"crm.company.userfield.update",
{
id: id,
fields:
{
"EDIT_FORM_LABEL": label,
"LIST_COLUMN_LABEL": label
}
}
);
const result = response.getData().result;
console.dir(result);
if(response.more())
response.next();
}
catch(error)
{
console.error(error);
}- PHP
$id = $_POST['id'];
$label = $_POST['label'];
try {
$response = $b24Service
->core
->call(
'crm.company.userfield.update',
[
'id' => $id,
'fields' => [
'EDIT_FORM_LABEL' => $label,
'LIST_COLUMN_LABEL' => $label
]
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
if ($result->error()) {
error_log($result->error());
} else {
echo 'Data: ' . print_r($result->data(), true);
if ($result->more()) {
$result->next();
}
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error updating user field: ' . $e->getMessage();
}- BX24.js
var id = prompt("Введите ID");
var label = prompt("Введите новое название");
BX24.callMethod(
"crm.company.userfield.update",
{
id: id,
fields:
{
"EDIT_FORM_LABEL": label,
"LIST_COLUMN_LABEL": label
}
},
function(result)
{
if(result.error())
console.error(result.error());
else
{
console.dir(result.data());
if(result.more())
result.next();
}
}
);💡 Экспертное мнение и рекомендации
Практические рекомендации:
- При написании кастомных компонентов для «Обновить существующее пользовательское поле компаний crm.company.userfield.up…» всегда разделяйте бизнес-логику и представление (шаблон).
- Используйте отладку SQL-запросов через конструкцию
$wpdb->last_queryили стандартный трекер Битрикса, чтобы контролировать нагрузку.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru