[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Fitems\u002Ffields":3,"docs-tabs-entities\u002Fitems\u002Ffields":6},{"content":4,"lastmod":5},"\n## Поля элемента смарт-процесса\n\n`GET \u002Fv1\u002Fitems\u002F:entityTypeId\u002Ffields`\n\nВозвращает описание всех полей для указанного типа смарт-процесса, включая пользовательские (`ufCrmN_*`) и родительские ссылки (`parentIdN`).\n\nНабор полей зависит от `entityTypeId` — каждый тип смарт-процесса имеет собственные пользовательские поля.\n\n## Примеры\n\nВ примерах `entityTypeId = 156` — замените на ID вашего смарт-процесса.\n\n### curl — личный ключ\n\n```bash\ncurl -X GET https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fitems\u002F156\u002Ffields \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X GET https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fitems\u002F156\u002Ffields \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fitems\u002F156\u002Ffields', {\n  headers: { 'X-Api-Key': 'YOUR_API_KEY' },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Полей:', Object.keys(data).length)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fitems\u002F156\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Только чтение | Описание |\n|------|-----|:---:|---------|\n| `id` | number | да | ID элемента |\n| `title` | string | | Название |\n| `xmlId` | string | | Внешний код |\n| `stageId` | string | | Стадия. Формат: `DT{typeId}_{catId}:{stage}` |\n| `categoryId` | number | | ID воронки. Список: `GET \u002Fv1\u002Fcategories\u002F:entityTypeId` |\n| `assignedById` | number | | Ответственный. Список: `GET \u002Fv1\u002Fusers` |\n| `companyId` | number | | ID компании. Поиск: `GET \u002Fv1\u002Fcompanies` |\n| `contactId` | number | | ID контакта. Поиск: `GET \u002Fv1\u002Fcontacts` |\n| `contactIds` | array | да | Привязанные контакты |\n| `opportunity` | number | | Сумма |\n| `currencyId` | string | | Валюта. Список: `GET \u002Fv1\u002Fcurrencies` |\n| `opened` | boolean | | Доступен для всех |\n| `begindate` | datetime | | Дата начала. Хранится без времени — переданное время отбрасывается |\n| `closedate` | datetime | | Дата завершения. Хранится без времени — переданное время отбрасывается |\n| `sourceId` | string | | Источник |\n| `observers` | array | | Наблюдатели |\n| `mycompanyId` | number | | ID своей компании |\n| `createdBy` | number | да | Создатель |\n| `updatedBy` | number | да | Последний редактор |\n| `movedBy` | number | да | Переместил стадию |\n| `createdTime` | datetime | да | Дата создания |\n| `updatedTime` | datetime | да | Дата изменения |\n| `movedTime` | datetime | да | Дата смены стадии |\n| `isManualOpportunity` | boolean | | Сумма задана вручную (`Y`\u002F`N` → `true`\u002F`false`) |\n| `isRecurring` | boolean | да | Признак регулярного элемента |\n| `lastActivityTime` | datetime | да | Время последней активности |\n\n`isManualOpportunity` и `isRecurring` приходят от Битрикс24 строкой `\"Y\"`\u002F`\"N\"` — платформа нормализует их в JSON-`boolean` на чтении (и принимает `true`\u002F`false` на запись для `isManualOpportunity`), как и `opened`.\n\nПользовательские поля (`ufCrmN_*`) и родительские ссылки (`parentIdN`) зависят от конкретного смарт-процесса. Для полей типа `enumeration` ответ содержит массив `items` с доступными значениями.\n\n> **Нульность.** Многие поля приходят `null`, когда не заполнены — в частности `xmlId`, `sourceDescription`, `lastActivityTime` и UTM-поля (`utmSource`\u002F`utmMedium`\u002F`utmCampaign`\u002F`utmContent`\u002F`utmTerm`, если включены на портале). Типобезопасным клиентам (TS) объявляйте такие поля как `T | null`.\n\n> ⚠ **`\u002Ffields` отражает живой контракт Битрикс24, а не форму платформенных доков.** Это сквозной проброс схемы полей Битрикс24 как есть: типы приходят в нотации Битрикс24 (`number`, `string`, `boolean`, `datetime`, `double`, `enumeration`, `crm_contact`, `crm_status`, `user` и другие), флаг — `readonly` (а не `isReadOnly`), у части полей есть `label`, отдельного `isRequired` или `title` нет. Схема также объявляет поля-привязки вроде `contacts` (тип `crm_contact`) — это **входной** формат для create\u002Fupdate. В данных list\u002Fget таких ключей нет, привязки читаются через `contactId` \u002F `contactIds`. Системные поля, которые Битрикс24 отдаёт в list\u002Fget, но не описаны выше (`taxValue`, `webformId`, `previousStageId`, `lastActivityBy`, `lastCommunication*`, `utm*`), проходят сквозным проксированием.\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"fields\": {\n      \"id\": { \"type\": \"number\", \"readonly\": true },\n      \"title\": { \"type\": \"string\", \"readonly\": false },\n      \"stageId\": { \"type\": \"string\", \"readonly\": false },\n      \"begindate\": { \"type\": \"datetime\", \"readonly\": false },\n      \"contacts\": { \"type\": \"crm_contact\", \"readonly\": false, \"label\": \"Контакты\" },\n      \"ufCrm156_custom\": { \"type\": \"string\", \"readonly\": false },\n      \"parentId156\": { \"type\": \"number\", \"readonly\": false }\n    }\n  }\n}\n```\n\nПоля приходят внутри `data.fields`. Объект ответа также содержит `data.products` (схема товарных строк), `data.aggregatable` (поля, доступные в [агрегации](\u002Fdocs\u002Fentities\u002Fitems\u002Faggregate)) и `data.batch`.\n\n\n## Пример ответа при ошибке\n\n404 — не найден:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"ENTITY_NOT_FOUND\",\n    \"message\": \"Элемент не найден\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n| 400 | `INVALID_DYNAMIC_PARAM` | `entityTypeId` не является положительным целым или является зарезервированным (1, 2, 3, 4, 7, 31) |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Создать элемент](\u002Fdocs\u002Fentities\u002Fitems\u002Fcreate)\n- [Список элементов](\u002Fdocs\u002Fentities\u002Fitems\u002Flist)\n- [Смарт-процессы](\u002Fdocs\u002Fentities\u002Fsmart-processes)\n- [Entity API](\u002Fdocs\u002Fentity-api)\n","2026-06-29",{}]