userfieldconfig.update
Обновить пользовательское поле
Описание
Метод userfieldconfig.update обновляет настройки существующего пользовательского поля.
Параметры
moduleId
string
обязательный
Идентификатор модуля, в котором находится поле
id
integer
обязательный
Идентификатор настроек пользовательского поля
field
object
обязательный
Объект с новыми настройками поля (подробное описание)
Параметр field
xmlId
string
необязательный
Внешний идентификатор поля
sort
integer
необязательный
Индекс сортировки
mandatory
boolean
необязательный
Флаг обязательного поля (Y/N)
showFilter
boolean
необязательный
Флаг показа поля в фильтре (Y/N)
isSearchable
boolean
необязательный
Флаг участия поля в поиске (Y/N)
editFormLabel
lang_map
необязательный
Подписи в форме редактирования по языкам
helpMessage
lang_map
необязательный
Текст подсказки по языкам
settings
object
необязательный
Дополнительные настройки поля. Набор ключей зависит от типа поля (подробное описание)
enum
uf_enum_element[]
необязательный
Список вариантов значений для поля типа enumeration.
Чтобы изменения enum применились, в field.userTypeId нужно передать enumeration
userTypeId
string
необязательный
Тип поля.
Используется при обновлении enum, в этом случае передайте enumeration
Тип uf_enum_element
id
integer
необязательный
Идентификатор существующего варианта. Используется для обновления или удаления
value
string
необязательный
Значение варианта
def
boolean
необязательный
Флаг значения по умолчанию (Y/N)
sort
integer
необязательный
Индекс сортировки
xmlId
string
необязательный
Внешний идентификатор варианта
del
boolean
необязательный
Флаг удаления существующего варианта (Y/N)
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"moduleId":"crm","id":7095,"field":{"mandatory":"Y","editFormLabel":{"ru":"Список характеристик (обновлено)","en":"List of characteristics (updated)"}}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/userfieldconfig.update
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"moduleId":"crm","id":7095,"field":{"mandatory":"Y","editFormLabel":{"ru":"Список характеристик (обновлено)","en":"List of characteristics (updated)"}},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/userfieldconfig.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
// Shape of the payload returned in result (match the "response handling" section of the page)
type UserfieldconfigUpdateResult = {
field: {
id: string
entityId: string
fieldName: string
userTypeId: string
xmlId: string | null
sort: string
multiple: string
mandatory: string
showFilter: string
showInList: string
editInList: string
isSearchable: string
settings: Record<string, unknown>
languageId: Record<string, string>
editFormLabel: Record<string, string | null>
listColumnLabel: Record<string, string | null>
listFilterLabel: Record<string, string | null>
errorMessage: Record<string, string | null>
helpMessage: Record<string, string | null>
enum?: Array<{
id: string
userFieldId: string
value: string
def: string
sort: string
xmlId: string
}>
}
}
try {
const response = await $b24.actions.v2.call.make<UserfieldconfigUpdateResult>({
method: 'userfieldconfig.update',
params: {
moduleId: 'crm',
id: 7095,
field: {
mandatory: 'Y',
editFormLabel: {
ru: 'Список характеристик (обновлено)',
en: 'List of characteristics (updated)',
},
},
},
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('Updated field:', result.field.id, result.field.fieldName, result.field.mandatory)
}
} 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 updateUserfieldconfig() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'userfieldconfig.update',
params: {
moduleId: 'crm',
id: 7095,
field: {
mandatory: 'Y',
editFormLabel: {
ru: 'Список характеристик (обновлено)',
en: 'List of characteristics (updated)',
},
},
},
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('Updated field:', result.field.id, result.field.fieldName, result.field.mandatory)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', updateUserfieldconfig)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.userfieldconfig.update(
module_id="crm",
bitrix_id=7095,
field={
"mandatory": "Y",
"editFormLabel": {
"ru": "Список характеристик (обновлено)",
"en": "List of characteristics (updated)",
},
},
).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(
'userfieldconfig.update',
[
'moduleId' => 'crm',
'id' => 7095,
'field' => [
'mandatory' => 'Y',
'editFormLabel' => [
'ru' => 'Список характеристик (обновлено)',
'en' => 'List of characteristics (updated)',
],
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Result: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error: ' . $e->getMessage();
}
BX24.callMethod(
'userfieldconfig.update',
{
moduleId: 'crm',
id: 7095,
field: {
mandatory: 'Y',
editFormLabel: {
ru: 'Список характеристик (обновлено)',
en: 'List of characteristics (updated)',
},
},
},
(result) => {
result.error()
? console.error(result.error())
: console.info(result.data())
;
},
);
require_once('crest.php');
$result = CRest::call(
'userfieldconfig.update',
[
'moduleId' => 'crm',
'id' => 7095,
'field' => [
'mandatory' => 'Y',
'editFormLabel' => [
'ru' => 'Список характеристик (обновлено)',
'en' => 'List of characteristics (updated)',
],
],
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "userfieldconfig.update", b24.Params{
"moduleId": "crm",
"id": 7095,
"field": b24.Params{
"mandatory": "Y",
"editFormLabel": b24.Params{
"ru": "Список характеристик (обновлено)",
"en": "List of characteristics (updated)",
},
},
})
if err != nil {
return fmt.Errorf("userfieldconfig.update: %w", err)
}
// Метод заворачивает ответ в объект с ключом "field".
raw, ok := b24.Unwrap(res.Result, "field")
if !ok {
return fmt.Errorf("в ответе нет ключа field")
}
var item struct {
ID b24.ID `json:"id"`
EntityID string `json:"entityId"`
FieldName string `json:"fieldName"`
UserTypeID string `json:"userTypeId"`
Sort string `json:"sort"`
Multiple string `json:"multiple"`
}
if err := json.Unmarshal(raw, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.ID, item.EntityID)
Ответ
HTTP-статус: 200
{
"result": {
"field": {
"id": "7095",
"entityId": "CRM_7",
"fieldName": "UF_CRM_7_NEW_REST_LIST_2026",
"userTypeId": "enumeration",
"xmlId": null,
"sort": "100",
"multiple": "Y",
"mandatory": "Y",
"showFilter": "N",
"showInList": "Y",
"editInList": "Y",
"isSearchable": "N",
"settings": {
"DISPLAY": "LIST",
"LIST_HEIGHT": 1,
"CAPTION_NO_VALUE": "",
"SHOW_NO_VALUE": "Y"
},
"languageId": {
"en": "en",
"ru": "ru"
},
"editFormLabel": {
"en": "List of characteristics (updated)",
"ru": "Список характеристик (обновлено)"
},
"listColumnLabel": {
"en": null,
"ru": null
},
"listFilterLabel": {
"en": null,
"ru": null
},
"errorMessage": {
"en": null,
"ru": null
},
"helpMessage": {
"en": null,
"ru": null
},
"enum": [
{
"id": "3671",
"userFieldId": "7095",
"value": "Характеристика 1",
"def": "N",
"sort": "100",
"xmlId": "38a8c98a5de02f8ccdca2244e5065ecd"
},
{
"id": "3673",
"userFieldId": "7095",
"value": "Характеристика 2",
"def": "Y",
"sort": "200",
"xmlId": "9520e17b39f3525b820b809914b52207"
}
]
}
},
"time": {
"start": 1774356026,
"finish": 1774356026.949068,
"duration": 0.9490680694580078,
"processing": 0,
"date_start": "2026-03-24T15:40:26+03:00",
"date_finish": "2026-03-24T15:40:26+03:00",
"operating_reset_at": 1774356626,
"operating": 0
}
}
Возвращаемые данные
result
object
Корневой элемент ответа (подробное описание)
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "",
"error_description": "Вы не можете изменить настройки пользьовательского поля"
}
| Код | Описание | Значение |
|---|---|---|
| — | Вы не можете изменить настройки пользовательского поля | Недостаточно прав на изменение поля. Эта же ошибка возвращается, если поле с переданным id уже удалено или недоступно в контексте moduleId |
| — | The current method required more scopes. (crm) | У приложения нет нужного scope для модуля из moduleId |
| — | No settings for UserFieldAccess | Для переданного moduleId не настроен доступ к пользовательским полям |
| — | Ошибка при попытке изменения настроек пользовательских полей | Общая ошибка изменения поля |

