Как получить пользовательские поля в списке складов через REST API Битрикс24
Пошаговое руководство по получению пользовательских полей (включая 'Ответственный') в списке складов через REST API Битрикс24. Правильный синтаксис запроса catalog.store.list и практические примеры.
Как получить пользовательские поля (в частности поле ‘Ответственный’) в списке складов через REST API Битрикс 24? При использовании метода catalog.store.list с параметром select, включающим различные варианты пользовательских полей (uf_, UF_, UF_CAT_STORE_, uf_cat_store_, UF_CAT_STORE_1771252726, uf_cat_store_1771252726), в ответе не возвращаются эти поля, хотя они существуют в карточках складов. Как правильно настроить запрос для получения пользовательских полей в списке складов?
Для получения пользовательских полей, в частности поля ‘Ответственный’, в списке складов через REST API Битрикс24 необходимо использовать правильный синтаксис параметра select. Проблема заключается в том, что стандартные маски типа uf_*, UF_* или UF_CAT_STORE_* не работают для получения всех пользовательских полей одновременно. Вместо этого нужно указывать конкретные имена полей, например UF_CAT_STORE_1771252726 для поля ‘Ответственный’.
Содержание
- Как получить пользовательские поля в списке складов через REST API Битрикс24
- Правильный синтаксис запроса catalog.store.list с пользовательскими полями
- Методы для работы с пользовательскими полями в Bitrix24
- Практические примеры запросов для получения полей складов
- Инструменты для тестирования REST API запросов Bitrix24
Как получить пользовательские поля в списке складов через REST API Битрикс24
При работе с битрикс24 складской учет через REST API часто возникает необходимость получить не только стандартные поля складов, но и пользовательские поля, такие как ‘Ответственный’. Однако стандартные подходы с использованием масок в параметре select не всегда работают должным образом.
Основная проблема заключается в том, что пользовательские поля в системе Битрикс24 имеют специфическую структуру именования, и простые маски, такие как UF_* или UF_CAT_STORE_*, не могут быть использованы для получения всех пользовательских полей одновременно. Это особенность работы REST API Битрикс24, которая требует более точного подхода к формированию запросов.
Для получения информации о пользовательских полях модуля складов необходимо использовать метод userfieldconfig.list с параметром moduleId => ‘catalog’. Этот метод вернет список всех пользовательских полей, их идентификаторы и правильные имена, которые можно затем использовать в запросах к методу catalog.store.list.
Интересно, что пользовательские поля могут не отображаться в интерфейсе списков складов, но при этом существовать в карточках конкретных складов. Это особенность реализации, которая не влияет на работу API, но может вызывать путаницу при разработке интеграций.
Правильный синтаксис запроса catalog.store.list с пользовательскими полями
Чтобы получить пользовательские поля в списке складов, необходимо использовать правильный синтаксис параметра select. Вот основные правила:
Основной синтаксис для пользовательских полей
Для указания конкретных пользовательских полей используйте формат SELECT[]=UF_НазваниеПоля. Например:
{
"select": ["ID", "TITLE", "UF_CAT_STORE_1771252726"]
}
В этом случае UF_CAT_STORE_1771252726 - это точное имя поля ‘Ответственный’ для складов. Это значение можно получить через метод userfieldconfig.list.
Комбинирование полей
Если вам нужны как стандартные, так и пользовательские поля, укажите их все в массиве select:
{
"select": ["ID", "TITLE", "ACTIVE", "UF_CAT_STORE_1771252726", "UF_CAT_STORE_1771252727"]
}
Ограничения масок
Важно понимать, что следующие маски не работают для получения всех пользовательских полей:
uf_*UF_*UF_CAT_STORE_*uf_cat_store_*
Эти маски игнорируются API, и в ответе не будет содержать пользовательских полей, даже если они существуют в системе.
Почему маски не работают
Согласно информации с Stack Overflow, это особенность реализации REST API Битрикс24. Система требует явного указания каждого пользовательского поля по его точному имени.
Методы для работы с пользовательскими полями в Bitrix24
Получение информации о пользовательских полях
Для получения списка всех пользовательских полей модуля складов используйте метод userfieldconfig.list:
{
"filter": {
"moduleId": "catalog"
}
}
Этот метод вернет массив пользовательских полей с их идентификаторами, названиями и техническими именами. В ответе вы найдете записи вида:
{
"result": [
{
"ID": "1771252726",
"ENTITY_ID": "CAT_STORE",
"FIELD_NAME": "UF_CAT_STORE_1771252726",
"USER_TYPE_ID": "user",
"XML_ID": "UF_RESPONSIBLE",
"MULTIPLE": "N",
"MANDATORY": "N",
"SHOW_FILTER": "N",
"SHOW_IN_LIST": "N",
"EDIT_IN_LIST": "N",
"IS_SEARCHABLE": "N"
}
]
}
Из этого ответа можно понять, что поле ‘Ответственный’ имеет техническое имя UF_CAT_STORE_1771252726 и не отображается в списках (SHOW_IN_LIST: “N”), что объясняет, почему оно не появляется в стандартных запросах.
Методы складского учета
Как отмечено в источнике Инфо-Эксперт, методы складского учета работают в рамках scope catalog и включают:
catalog.store.add- добавление складаcatalog.store.update- обновление складаcatalog.store.delete- удаление складаcatalog.store.list- получение списка складов
При добавлении или обновлении складов можно указывать поле RESPONSIBLE_ID для установки ответственного.
Практические примеры запросов для получения полей складов
Пример 1: Получение списка складов с полем ‘Ответственный’
{
"method": "catalog.store.list",
"params": {
"select": ["ID", "TITLE", "ACTIVE", "UF_CAT_STORE_1771252726"],
"filter": {
"ACTIVE": "Y"
}
}
}
Пример 2: Получение всех пользовательских полей для конкретного склада
Сначала получаем список пользовательских полей:
{
"method": "userfieldconfig.list",
"params": {
"filter": {
"moduleId": "catalog"
}
}
}
Затем формируем запрос к складам с найденными полями:
{
"method": "catalog.store.list",
"params": {
"select": ["ID", "TITLE", "ACTIVE", "UF_CAT_STORE_1771252726", "UF_CAT_STORE_1771252727"],
"filter": {
"ID": 123
}
}
}
Пример 3: Пакетное получение данных складов
Если вам нужно получить данные по множеству складов с пользовательскими полями:
{
"method": "catalog.store.list",
"params": {
"select": [
"ID",
"TITLE",
"ACTIVE",
"UF_CAT_STORE_1771252726",
"UF_CAT_STORE_1771252727",
"UF_CAT_STORE_1771252728"
],
"filter": {
"ID": [1, 2, 3, 4, 5]
}
}
}
Пример 4: Использование в PHP с библиотекой CRest
CRest::call('catalog.store.list', [
'select' => ['ID', 'TITLE', 'UF_CAT_STORE_1771252726'],
'filter' => ['ACTIVE' => 'Y']
]);
Пример 5: Использование в JavaScript с BX24
BX24.callMethod(
'catalog.store.list',
{
select: ['ID', 'TITLE', 'UF_CAT_STORE_1771252726'],
filter: {ACTIVE: 'Y'}
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.log(result.data());
}
);
Инструменты для тестирования REST API запросов Bitrix24
Request Builder
Как упоминается в ответах, для проверки правильности запросов удобно использовать “Request builder” в разделе DevOps → Import & Export → Export. Этот инструмент позволяет визуально строить запросы и сразу видеть результат.
Тестирование через консоль разработчика
Вы можете тестировать запросы напрямую в консоли разработчика браузера:
BX24.callMethod(
'catalog.store.list',
{
select: ['ID', 'TITLE', 'UF_CAT_STORE_1771252726'],
filter: {}
},
function(result)
{
console.log(result);
}
);
Использование Postman или аналогов
Для более сложных запросов используйте Postman или аналогичные инструменты:
- Установите метод:
POST - URL:
httpsваш-битрикс24/rest/catalog.store.list - Headers:
Content-Type: application/json - Body (raw JSON):
{
"select": ["ID", "TITLE", "UF_CAT_STORE_1771252726"],
"filter": {}
}
Логирование запросов
Для отладки включите логирование запросов в настройках Битрикс24. Это поможет понять, какие именно запросы отправляются и какие ответы приходят.
Источники
- Stack Overflow - Bitrix REST API Parameters — Объяснение правильного синтаксиса для пользовательских полей: https://stackoverflow.com/questions/76265997/how-can-i-use-the-bitrix-rest-api-parameters-in-a-way-that-works
- Хабр Q&A - Пользовательские поля в Bitrix24 — Подробное описание работы с пользовательскими полями и их особенностями: https://qna.habr.com/q/1408894
- Инфо-Эксперт - Методы складского учета через REST API — Список методов для работы со складами в Bitrix24: https://www.info-expert.ru/blog/metody-po-rabote-so-skladami-cherez-rest-api-bitriks24-/
Заключение
Для получения пользовательских полей, в частности поля ‘Ответственный’, в списке складов через bitrix24 rest api необходимо использовать точные имена полей, такие как UF_CAT_STORE_1771252726, вместо масок. Основная проблема заключается в том, что стандартные маски типа UF_* или UF_CAT_STORE_* не работают для получения всех пользовательских полей одновременно.
Правильный подход включает два этапа:
- Сначала получить информацию о пользовательских полях через метод
userfieldconfig.list - Затем использовать полученные имена полей в запросе к методу
catalog.store.list
Это позволяет получить необходимые данные, даже если поля не отображаются в интерфейсе списков складов. Для удобства тестирования запросов можно использовать встроенные инструменты Bitrix24 или внешние утилиты вроде Postman.
Для получения пользовательских полей в списке складов через REST API Битрикс24 необходимо использовать параметр select с правильным форматированием. Правильный синтаксис для указания пользовательских полей - SELECT[]=UF_НазваниеПоля или SELECT[]=UF_* для всех полей.
Например, для получения поля “Ответственный” используйте SELECT[]=UF_CAT_STORE_1771252726. Для получения всех пользовательских полей используйте комбинацию SELECT[]=*&SELECT[]=UF_*.
Для проверки правильности запроса удобно использовать “Request builder” в разделе DevOps → Import & Export → Export. Если вы используете библиотеки, как CRest для PHP или BX24 JS для JavaScript, синтаксис может немного отличаться, но принцип остается тем же - явное указание нужных полей в параметре select.
При запросе пользовательских полей в методе catalog.store.list важно понимать, что маски типа uf_*, UF_* или UF_CAT_STORE_* не работают для получения всех пользовательских полей одновременно. Необходимо указывать конкретные имена полей.
В случае с полем “Ответственный” для складов, его точное имя - UF_CAT_STORE_1771252726. Для получения информации о всех пользовательских полях модуля catalog используйте метод userfieldconfig.list с параметром moduleId => ‘catalog’.
Также стоит отметить, что в интерфейсе Битрикс24 пользовательские поля могут не отображаться в списке складов, но при этом существовать в карточках конкретных складов. Это особенность реализации, не влияющая на работу API.
Методы складского учета в Битрикс24 работают в рамках scope catalog и включают catalog.store.* методы. При добавлении или обновлении складов можно указывать поле RESPONSIBLE_ID для установки ответственного.
Полный список методов для работы со складами включает:
catalog.store.add- добавление складаcatalog.store.update- обновление складаcatalog.store.delete- удаление складаcatalog.store.list- получение списка складов
При работе с пользовательскими полями в этих методах важно использовать правильное имя поля, которое можно получить через метод userfieldconfig.list.

