userfieldtype.update
Изменить настройки типа пользовательских полей
Описание
Метод userfieldtype.update изменяет настройки типа пользовательских полей, который ранее зарегистрировало приложение. Метод обновляет адрес обработчика, название, описание и высоту поля, но не меняет код типа.
Поле такого типа выводится в карточке элемента CRM. Когда пользователь открывает карточку, Битрикс24 загружает адрес из HANDLER во фрейме внутри поля. Общая схема работы и формат данных обработчика описаны в статье Пользовательские типы полей.
Метод возвращает true, если настройки изменены.
Метод работает только в контексте приложения
Параметры
USER_TYPE_ID
string
обязательный
Короткий код уже зарегистрированного типа пользовательских полей. Получить код можно методом userfieldtype.list
HANDLER
string
необязательный
Новый адрес обработчика пользовательского типа. Битрикс24 загружает этот адрес во фрейме внутри поля
TITLE
string
необязательный
Текстовое название типа. Будет выводиться в административном интерфейсе настройки пользовательских полей
DESCRIPTION
string
необязательный
Текстовое описание типа. Будет выводиться в административном интерфейсе настройки пользовательских полей
OPTIONS
object
необязательный
Дополнительные настройки. На данный момент доступен один ключ: height — указывает высоту пользовательского поля в пикселях. Значение преобразуется в целое число.
По умолчанию — 0. Если указано 0, то будет использована стандартная высота для отображения этого виджета
LANG_ALL
object
необязательный
Название и описание типа для разных языков. Ключ объекта — код языка, значение — объект с полями TITLE и DESCRIPTION
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"USER_TYPE_ID": "test_type",
"HANDLER": "https://www.myapplication.com/handler/",
"TITLE": "Updated test type",
"DESCRIPTION": "Test userfield type for documentation with updated description",
"OPTIONS": {
"height": 60
},
"auth": "**put_access_token_here**"
}' \
https://**put_your_bitrix24_address**/rest/userfieldtype.update
// 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<boolean>({
method: 'userfieldtype.update',
params: {
USER_TYPE_ID: 'test_type',
HANDLER: 'https://www.myapplication.com/handler/',
TITLE: 'Updated test type',
DESCRIPTION: 'Test userfield type for documentation with updated description',
OPTIONS: {
height: 60,
},
},
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('userfieldtype.update result:', 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 updateUserFieldType() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'userfieldtype.update',
params: {
USER_TYPE_ID: 'test_type',
HANDLER: 'https://www.myapplication.com/handler/',
TITLE: 'Updated test type',
DESCRIPTION: 'Test userfield type for documentation with updated description',
OPTIONS: {
height: 60,
},
},
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('userfieldtype.update result:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', updateUserFieldType)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
options = {
"height": 60,
}
try:
bitrix_response = client.userfieldtype.update(
user_type_id="test_type",
handler="https://www.myapplication.com/handler/",
title="Updated test type",
description="Test userfield type for documentation with updated description",
options=options,
).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 {
$result = $serviceBuilder->getPlacementScope()
->userFieldType()
->update(
'custom_user_type', // userTypeId
'https://example.com/handler', // handlerUrl
'Custom User Type', // title
'Description of custom user type' // description
);
if ($result->isSuccess()) {
print("Update successful.");
} else {
print("Update failed.");
}
} catch (Throwable $e) {
print("An error occurred: " . $e->getMessage());
}
BX24.callMethod(
'userfieldtype.update',
{
USER_TYPE_ID: 'test_type',
HANDLER: 'https://www.myapplication.com/handler/',
TITLE: 'Updated test type',
DESCRIPTION: 'Test userfield type for documentation with updated description',
OPTIONS: {
height: 60,
},
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.log(result.data());
}
);
require_once('crest.php');
$result = CRest::call(
'userfieldtype.update',
[
'USER_TYPE_ID' => 'test_type',
'HANDLER' => 'https://www.myapplication.com/handler/',
'TITLE' => 'Updated test type',
'DESCRIPTION' => 'Test userfield type for documentation with updated description',
'OPTIONS' => [
'height' => 60
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "userfieldtype.update", b24.Params{
"USER_TYPE_ID": "test_type",
"HANDLER": "https://www.myapplication.com/handler/",
"TITLE": "Updated test type",
"DESCRIPTION": "Test userfield type for documentation with updated description",
"OPTIONS": b24.Params{
"height": 60,
},
})
if err != nil {
return fmt.Errorf("userfieldtype.update: %w", err)
}
var ok bool
if err := json.Unmarshal(res.Result, &ok); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("выполнено:", ok)
Ответ
HTTP-статус: 200
{
"result":true,
"time":{
"start":1724421710.397825,
"finish":1724421711.040353,
"duration":0.6425280570983887,
"processing":5.888938903808594e-5,
"date_start":"2024-08-23T16:01:50+02:00",
"date_finish":"2024-08-23T16:01:51+02:00",
"operating":0
}
}
Возвращаемые данные
result
boolean
Результат изменения типа пользовательских полей
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error":"ERROR_NOT_FOUND",
"error_description":"User Field Type not found"
}
| Код | Описание | Значение |
|---|---|---|
ERROR_CORE |
Unable to update User Field Type: Handler already binded | HANDLER уже занят другим типом пользовательских полей этого приложения |
ERROR_ARGUMENT |
Argument 'USER_TYPE_ID' is null or empty | Не задан USER_TYPE_ID |
ERROR_ARGUMENT |
Argument 'HANDLER|TITLE|DESCRIPTION' is null or empty | Не переданы настройки для изменения: HANDLER, TITLE, DESCRIPTION, OPTIONS или LANG_ALL |
ERROR_NOT_FOUND |
User Field Type not found | Не найден зарегистрированный тип пользовательских полей с указанным USER_TYPE_ID |
ERROR_UNSUPPORTED_PROTOCOL |
Unsupported handler protocol | В HANDLER указан протокол, отличный от http или https |
ERROR_WRONG_HANDLER_URL |
Wrong handler URL | В HANDLER указан некорректный абсолютный адрес |
WRONG_AUTH_TYPE |
Current authorization type is denied for this method | Метод вызван не в контексте приложения |
ACCESS_DENIED |
Access denied! | Метод вызвал пользователь без прав администратора |

