Для AI-агентов: markdown этой страницы — /docs-content/entities/catalog-document-elements/fields.md индекс документации — /llms.txt
Поля позиции складского документа
GET /v1/catalog-document-elements/fields
Возвращает схему всех полей позиции складского документа. Помогает собрать тело запроса для добавления и изменения позиции.
Параметры
| Параметр | Тип | По умолч. | Описание |
|---|---|---|---|
refresh (query) |
string | false |
Передайте true, чтобы получить схему без кэша. Пример: ?refresh=true |
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/catalog-document-elements/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/catalog-document-elements/fields" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/catalog-document-elements/fields', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data } = await res.json()
const createOnly = Object.entries(data.fields)
.filter(([, field]) => field.createOnly)
.map(([name]) => name)
console.log('Задаются только при создании:', createOnly)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/catalog-document-elements/fields', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
const createOnly = Object.entries(data.fields)
.filter(([, field]) => field.createOnly)
.map(([name]) => name)
console.log('Задаются только при создании:', createOnly)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data.fields |
object | Карта полей позиции: ключ — имя поля, значение — его описание |
data.fields.<поле>.type |
string | Тип значения |
data.fields.<поле>.readonly |
boolean | true — поле заполняется системой и не принимается при создании и обновлении |
data.fields.<поле>.createOnly |
boolean | Приходит со значением true у полей, которые задаются только при создании. На обновлении такое поле отклоняется с 400 READONLY_FIELD |
data.fields.<поле>.required |
boolean | Приходит со значением true у полей, обязательных при создании |
data.fields.<поле>.label |
string | Подпись поля |
data.fields.<поле>.description |
string | Описание поля |
data.batch |
string[] | Операции, доступные в массовом режиме через Batch: create, update, delete |
meta.warnings |
array | Приходит, только если схему полей не удалось получить от Битрикс24 целиком. Содержит объект с кодом fields_partial и текстом message: в ответе только поля из схемы Вайбкод, часть подписей может отсутствовать. Повторите запрос |
Подписи label и description приходят на русском языке.
Поля позиции:
| Поле | Тип | RO | Описание |
|---|---|---|---|
id |
number | да | Идентификатор позиции |
docId |
number | Складской документ, к которому относится позиция. Обязательно при создании, задаётся только при создании. Список: GET /v1/catalog-documents |
|
elementId |
number | Товар. Обязательно при создании, задаётся только при создании. Список: GET /v1/catalog-products |
|
amount |
number | Количество товара | |
purchasingPrice |
number | Закупочная цена за единицу | |
storeFrom |
number | Склад отправления. null, если не задан. Список: GET /v1/warehouses |
|
storeTo |
number | Склад получения. null, если не задан. Список: GET /v1/warehouses |
Какие склады нужны позиции, зависит от типа документа — см. позиции складских документов.
Пример ответа
{
"success": true,
"data": {
"fields": {
"id": {
"type": "number",
"readonly": true,
"label": "ID позиции",
"description": "ID позиции"
},
"docId": {
"type": "number",
"readonly": false,
"createOnly": true,
"required": true,
"label": "ID документа",
"description": "ID документа"
},
"elementId": {
"type": "number",
"readonly": false,
"createOnly": true,
"required": true,
"label": "ID товара",
"description": "ID товара"
},
"amount": {
"type": "number",
"readonly": false,
"label": "Количество",
"description": "Количество"
},
"purchasingPrice": {
"type": "number",
"readonly": false,
"label": "Закупочная цена",
"description": "Закупочная цена"
},
"storeFrom": {
"type": "number",
"readonly": false,
"label": "Склад отправления",
"description": "Склад отправления"
},
"storeTo": {
"type": "number",
"readonly": false,
"label": "Склад получения",
"description": "Склад получения"
}
},
"batch": [
"create",
"update",
"delete"
]
}
}
Пример ответа при ошибке
401 — не передан API-ключ:
{
"success": false,
"error": {
"code": "MISSING_API_KEY",
"message": "API key required. Pass via X-Api-Key header."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Переданный API-ключ не найден |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа catalog |
| 429 | RATE_LIMITED |
Превышен лимит запросов: 300 в минуту на портал, все API-ключи портала делят один лимит. Действующее значение — в заголовке x-ratelimit-limit. Повторите после срока из заголовка Retry-After |
Полный список общих ошибок API — Ошибки.