Для AI-агентов: markdown этой страницы — /docs-content/onec/call.md индекс документации — /llms.txt
Запросить данные из 1С
POST /v1/onec/tools/{method}/call
Ставит в очередь чтение данных инструментом из каталога 1С. Ответ приходит сразу и несёт идентификатор операции, а сами данные забираются отдельным запросом, когда 1С выполнит чтение.
Учётную запись 1С, от имени которой пойдёт чтение, выбирает платформа по сопоставлению вызывающего. Передать или подменить её в запросе нельзя.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
method (path) |
string | да | Метод инструмента из каталога. Буквы, знаки, цифры и ._-, до 100 символов. В URL кодируется, само значение сохраняется посимвольно |
Поля запроса (body)
| Поле | Тип | Обяз. | По умолч. | Описание |
|---|---|---|---|---|
columns |
array | нет | — | Колонки из inputSchema.properties.columns.items.enum инструмента, до 200 без повторов. Опущено — вернутся все колонки, доступные учётной записи 1С |
filters |
object | нет | — | Фильтры из inputSchema.properties.filters.properties инструмента. До 50 ключей на объект, до 200 элементов в массиве, до 1024 символов в строке, вложенность до 6 уровней и до 2000 значений суммарно |
limit |
integer | нет | 1000 |
Сколько строк прочитать за операцию, от 1 до 10 000 |
offset |
integer | нет | 0 |
Сколько строк пропустить. Для следующей страницы берите nextOffset из результата операции |
Примеры
curl — личный ключ
curl -X POST https://vibecode.bitrix24.tech/v1/onec/tools/bank.list/call \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"columns": ["Код", "Наименование"],
"filters": { "Наименование": "Банк" },
"limit": 100,
"offset": 0
}'
curl — OAuth-приложение
curl -X POST https://vibecode.bitrix24.tech/v1/onec/tools/bank.list/call \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"columns": ["Код", "Наименование"],
"filters": { "Наименование": "Банк" },
"limit": 100,
"offset": 0
}'
JavaScript — личный ключ
const method = encodeURIComponent('bank.list')
const res = await fetch(`https://vibecode.bitrix24.tech/v1/onec/tools/${method}/call`, {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
columns: ['Код', 'Наименование'],
filters: { Наименование: 'Банк' },
limit: 100,
offset: 0,
}),
})
const { data } = await res.json()
console.log(data.operationId, res.headers.get('Location'))
JavaScript — OAuth-приложение
const method = encodeURIComponent('bank.list')
const res = await fetch(`https://vibecode.bitrix24.tech/v1/onec/tools/${method}/call`, {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
columns: ['Код', 'Наименование'],
filters: { Наименование: 'Банк' },
limit: 100,
offset: 0,
}),
})
const { data } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data.operationId |
string | Идентификатор операции для GET /v1/onec/operations/{operationId} |
data.status |
string | Состояние операции сразу после постановки — pending |
data.expiresAt |
string | До какого момента операция ждёт выполнения, ISO 8601. После него операция читается со статусом expired |
Заголовок ответа Location несёт адрес чтения этой же операции — то же значение, что data.operationId в пути.
Пример ответа
Статус ответа — 202 Accepted:
{
"success": true,
"data": {
"operationId": "cl9x2k4t70000qz8h3m1vb7ry",
"status": "pending",
"expiresAt": "2026-09-14T12:15:00.000Z"
}
}
Пример ответа при ошибке
403 — у вызывающего нет активного сопоставления с учётной записью 1С:
{
"success": false,
"error": {
"code": "ONEC_USER_NOT_MAPPED",
"message": "The caller has no active 1C user mapping."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | ONEC_VALIDATION |
Метод содержит символы вне букв, знаков, цифр и ._- |
| 400 | ONEC_VALIDATION |
В теле есть поле вне columns, filters, limit, offset |
| 400 | ONEC_VALIDATION |
limit вне диапазона 1–10 000 или offset отрицательный |
| 400 | ONEC_VALIDATION |
columns не массив строк, содержит повторы или длиннее 200 элементов |
| 400 | ONEC_VALIDATION |
filters превышает ограничение по числу ключей, длине строки, вложенности или числу значений |
| 403 | ONEC_USER_NOT_MAPPED |
У вызывающего нет действующего сопоставления с учётной записью 1С |
| 403 | ONEC_ACCOUNT_UNAVAILABLE |
Выбранная учётная запись 1С или её назначение неактивны |
| 404 | ONEC_NOT_CONNECTED |
На портале нет активного подключения 1С либо оно отключено |
| 409 | ONEC_SETTINGS_MISSING |
Модуль Вайбкод в 1С ещё не передал свои настройки |
| 409 | ONEC_CAPABILITY_MISSING |
Модуль не объявил чтение данных среди своих возможностей |
| 409 | ONEC_MAPPING_CONFLICT |
Назначения по подразделениям выбирают разные учётные записи 1С |
| 409 | ONEC_MAPPING_VERSION_CONFLICT |
Назначения изменились во время проверки доступа — повторите вызов |
| 503 | ONEC_DIRECTORY_UNAVAILABLE |
Состав подразделений Битрикс24 проверить не удалось. Операция не создана, повторите позже — это не отказ в доступе |
| 503 | ONEC_ASSIGNMENTS_DISABLED |
Назначения пользователей 1С на портале временно выключены. Операция не создана |
| 404 | ROUTE_NOT_FOUND |
Интеграция 1С на портале недоступна — ответ совпадает с ответом на неизвестный путь |
| 404 | ROUTE_NOT_FOUND |
Метод в URL длиннее 100 символов |
| 403 | SCOPE_DENIED |
Ключу не хватает скоупа vibe:onec |
| 403 | WRITE_BLOCKED_READONLY_KEY |
Ключ в режиме «только чтение» операции не создаёт |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 429 | RATE_LIMITED |
Превышен лимит запросов — повторите после времени из заголовка Retry-After |
| 503 | user_self_deletion_pending |
Владелец ключа удаляет свою учётную запись на портале. Заголовок Retry-After равен 604800 — столько длится отсрочка удаления |
Полный список общих ошибок API — Ошибки.
Известные особенности
Вызов только ставит задачу. 202 означает, что операция принята, а не что данные прочитаны — результат забирается через GET /v1/onec/operations/{operationId}.
Каждый вызов создаёт новую операцию. Повтор с тем же телом не возвращает прежнюю операцию и не отменяет её, а ставит ещё одну. Для повторного чтения той же выборки храните operationId из первого ответа.
Учётная запись 1С выбирается на стороне платформы. Когда на портале включены назначения по подразделениям, личное назначение имеет приоритет над назначениями подразделений вместе со всеми вложенными. Приостановленное назначение не даёт запасного варианта, а уже поставленная операция не переводится на другую учётную запись.
Значение фильтра интерпретирует 1С. Платформа проверяет только ограничения и передаёт объект как есть, а равенство это или вхождение части строки — решает модуль в 1С.
Фильтр, которого инструмент не объявлял, роняет операцию. Такой вызов принимается с 202, а 1С завершает операцию статусом failed и присылает в поле error код UNKNOWN_FILTER.