userfieldconfig.list
Получить список настроек пользовательских полей
Описание
Метод userfieldconfig.list возвращает список настроек пользовательских полей по фильтру.
Параметры
moduleId
string
обязательный
Идентификатор модуля, в котором выполняется поиск полей
select
object
необязательный
Набор полей, которые нужно вернуть (подробное описание)
order
object
необязательный
Объект формата:
{
field_1: value_1,
field_2: value_2,
...,
field_n: value_n,
}
field_n- название поля, по которому будет произведена сортировка выборкиvalue_n- значение типаstring, равное:
-ASC- сортировка по возрастанию
-DESC- сортировка по убыванию
Список доступных полей для сортировки:
- id - идентификатор пользовательского поля
- fieldName - код пользовательского поля
- userTypeId - тип пользовательского поля
- xmlId - внешний код
- sort - индекс сортировки
По умолчанию:
{
"sort": "ASC",
"id": "ASC"
}filter
object
необязательный
Объект формата:
{
field_1: value_1,
field_2: value_2,
...,
field_n: value_n,
}
field_n- название поля, по которому будет отфильтрована выборка пользовательских полейvalue_n- значение фильтра
Все условия по отдельным полям соединяются с помощью AND.
Смотрите ниже список доступных полей для фильтрации
start
integer
необязательный
Смещение для постраничной выборки.
Используйте значение параметра next из предыдущего ответа
Параметр select
\
string
обязательный
Вернуть все стандартные поля настройки
language
string
необязательный
Языковой идентификатор для языковых полей, например ru или en
id
string
необязательный
Идентификатор настройки поля
entityId
string
необязательный
Идентификатор объекта
fieldName
string
необязательный
Код поля
userTypeId
string
необязательный
Тип поля
xmlId
string
необязательный
Внешний идентификатор
sort
string
необязательный
Индекс сортировки
multiple
string
необязательный
Является ли пользовательское поле множественным. Возможные значения: Y или N
mandatory
string
необязательный
Является ли пользовательское поле обязательным. Возможные значения: Y или N
showFilter
string
необязательный
Показывать ли поле в фильтре списка. Возможные значения: N, I, E, S
showInList
string
необязательный
Показывать ли поле в списке. Возможные значения: Y или N
editInList
string
необязательный
Разрешать ли редактирование значения в списке. Возможные значения: Y или N
isSearchable
string
необязательный
Участвуют ли значения поля в поиске. Возможные значения: Y или N
settings
string
необязательный
Дополнительные настройки поля
languageId
string
необязательный
Языковой идентификатор. При передаче этого параметра возвращается набор языковых полей на выбранном языке:
- editFormLabel - подпись в форме редактирования
- listColumnLabel - заголовок в списке
- listFilterLabel - подпись фильтра в списке
- errorMessage - сообщение об ошибке
- helpMessage - помощь
Доступные для фильтрации поля
id
integer
необязательный
Идентификатор пользовательского поля
fieldName
string
необязательный
Код пользовательского поля
userTypeId
string
необязательный
Тип пользовательского поля
xmlId
string
необязательный
Внешний код
sort
integer
необязательный
Индекс сортировки
multiple
boolean
необязательный
Является ли пользовательское поле множественным. Возможные значения: Y или N
mandatory
boolean
необязательный
Является ли пользовательское поле обязательным. Возможные значения: Y или N
showFilter
char
необязательный
Показывать ли в фильтре списка. Возможные значения: N, I, E, S
showInList
boolean
необязательный
Показывать ли в списке. Возможные значения: Y или N
editInList
boolean
необязательный
Разрешать ли редактирование пользователем. Возможные значения: Y или N
isSearchable
boolean
необязательный
Участвуют ли значения поля в поиске. Возможные значения: Y или N
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"moduleId":"crm","select":{"0":"*","language":"ru"},"order":{"id":"DESC"},"filter":{"multiple":"Y"},"start":0}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/userfieldconfig.list
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"moduleId":"crm","select":{"0":"*","language":"ru"},"order":{"id":"DESC"},"filter":{"multiple":"Y"},"start":0,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/userfieldconfig.list
// 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
type UserFieldConfig = {
id: string
fieldName: string
userTypeId: string
}
// Shape of the payload returned in result (match the "response handling" section of the page)
type UserFieldConfigListResult = {
fields: UserFieldConfig[]
}
// userfieldconfig.list returns a single page (max 50 records). For the whole result set
// use a list helper: $b24.actions.v2.callList.make() returns every record as one
// array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator).
// NOTE: the list helpers do not accept `order` (it is excluded from their params, so
// passing it is a TS error) — keep this call.make + `start` variant when sort matters.
try {
const response = await $b24.actions.v2.call.make<UserFieldConfigListResult>({
method: 'userfieldconfig.list',
params: {
moduleId: 'crm',
select: ['*'],
order: {
id: 'DESC',
},
filter: {
multiple: 'Y',
},
start: 0,
},
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(`Loaded ${result.fields.length} field config(s) on this page`)
console.info(result.fields)
}
} 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 listUserFieldConfigs() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
// userfieldconfig.list returns a single page (max 50 records). For the whole result set
// use a list helper: $b24.actions.v2.callList.make() returns every record as one
// array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator).
// NOTE: the list helpers do not accept `order` (it is excluded from their params, so
// passing it is a TS error) — keep this call.make + `start` variant when sort matters.
const response = await $b24.actions.v2.call.make({
method: 'userfieldconfig.list',
params: {
moduleId: 'crm',
select: ['*'],
order: {
id: 'DESC',
},
filter: {
multiple: 'Y',
},
start: 0,
},
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(`Loaded ${result.fields.length} field config(s) on this page`)
console.info(result.fields)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', listUserFieldConfigs)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.userfieldconfig.list(
module_id="crm",
select={
0: "*",
"language": "ru",
},
order={
"id": "DESC",
},
filter={
"multiple": "Y",
},
start=0,
).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.list',
[
'moduleId' => 'crm',
'select' => [
0 => '*',
'language' => 'ru',
],
'order' => [
'id' => 'DESC',
],
'filter' => [
'multiple' => 'Y',
],
'start' => 0,
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Result: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error: ' . $e->getMessage();
}
BX24.callMethod(
'userfieldconfig.list',
{
moduleId: 'crm',
select: {
0: '*',
language: 'ru',
},
order: {
id: 'DESC',
},
filter: {
multiple: 'Y',
},
},
(result) => {
if (result.error()) {
console.error(result.error());
return;
}
console.info(result.data());
if (result.more()) {
result.next();
}
},
);
require_once('crest.php');
$result = CRest::call(
'userfieldconfig.list',
[
'moduleId' => 'crm',
'select' => [
0 => '*',
'language' => 'ru',
],
'order' => [
'id' => 'DESC',
],
'filter' => [
'multiple' => 'Y',
],
'start' => 0,
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "userfieldconfig.list", b24.Params{
"moduleId": "crm",
"select": b24.Params{
"0": "*",
"language": "ru",
},
"order": b24.Params{
"id": "DESC",
},
"filter": b24.Params{
"multiple": "Y",
},
"start": 0,
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("userfieldconfig.list: %w", err)
}
// Метод заворачивает ответ в объект с ключом "fields".
raw, ok := b24.Unwrap(res.Result, "fields")
if !ok {
return fmt.Errorf("в ответе нет ключа fields")
}
var items []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, &items); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
for _, it := range items {
fmt.Println(it.ID)
}
Ответ
HTTP-статус: 200
{
"result": {
"fields": [
{
"id": "7095",
"entityId": "CRM_7",
"fieldName": "UF_CRM_7_NEW_REST_LIST_2026",
"userTypeId": "enumeration",
"xmlId": null,
"sort": "100",
"multiple": "Y",
"mandatory": "N",
"showFilter": "N",
"showInList": "Y",
"editInList": "Y",
"isSearchable": "N",
"settings": {
"DISPLAY": "LIST",
"LIST_HEIGHT": 1,
"CAPTION_NO_VALUE": "",
"SHOW_NO_VALUE": "Y"
},
"languageId": {
"ru": "ru"
},
"editFormLabel": {
"ru": "Список характеристик"
},
"listColumnLabel": null,
"listFilterLabel": null,
"errorMessage": null,
"helpMessage": null
}
]
},
"next": 50,
"total": 94,
"time": {
"start": 1724239307.903115,
"finish": 1724239308.567422,
"duration": 0.6643068790435791,
"processing": 0.20090818405151367,
"date_start": "2024-08-21T13:21:47+02:00",
"date_finish": "2024-08-21T13:21:48+02:00",
"operating": 0
}
}
Возвращаемые данные
result
object
Корневой элемент ответа (подробное описание)
total
integer
Общее количество найденных настроек
next
integer
Смещение следующей страницы.
Поле возвращается, если количество найденных элементов больше 50
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "",
"error_description": "Вы не можете просматривать настройки пользовательских полей"
}
| Код | Описание | Значение |
|---|---|---|
| — | Вы не можете просматривать настройки пользовательских полей | Недостаточно прав на чтение полей по переданному фильтру |
| — | The current method required more scopes. (crm) | У приложения нет нужного scope для модуля из moduleId |
| — | No settings for UserFieldAccess | Для переданного moduleId не настроен доступ к пользовательским полям |

