[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Fusers\u002Fupdate":3,"docs-tabs-entities\u002Fusers\u002Fupdate":6},{"content":4,"lastmod":5},"\n## Обновить сотрудника\n\n`PATCH \u002Fv1\u002Fusers\u002F:id`\n\nОбновляет поля существующего сотрудника. Передавайте только изменяемые поля. Требует прав администратора портала на стороне Битрикс24 — без них вызов отклоняется.\n\n## Поля запроса (body)\n\n| Параметр | Тип | Описание |\n|----------|-----|---------|\n| `workPosition` | string | Должность |\n| `departmentId` | number[] | Массив ID отделов. Список: `GET \u002Fv1\u002Fdepartments` |\n| `email` | string | Email — должен оставаться уникальным на портале |\n| `workPhone` \u002F `personalPhone` \u002F `personalMobile` | string | Телефоны |\n| `active` | boolean | Реактивировать (`true`) или деактивировать (`false`) — деактивация эквивалентна [`DELETE \u002Fv1\u002Fusers\u002F:id`](\u002Fdocs\u002Fentities\u002Fusers\u002Fdelete) |\n\nПолный список полей — [Поля сотрудника](\u002Fdocs\u002Fentities\u002Fusers\u002Ffields). Пользовательские (`UF_*`) поля принимаются.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X PATCH \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fusers\u002F29\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"workPosition\": \"Старший менеджер\",\n    \"departmentId\": [1, 47]\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X PATCH \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fusers\u002F29\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"workPosition\": \"Старший менеджер\",\n    \"departmentId\": [1, 47]\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fusers\u002F29', {\n  method: 'PATCH',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    workPosition: 'Старший менеджер',\n    departmentId: [1, 47],\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fusers\u002F29', {\n  method: 'PATCH',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    workPosition: 'Старший менеджер',\n    departmentId: [1, 47],\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | object | Обновлённый объект сотрудника со всеми полями — формат тот же, что у [`GET \u002Fv1\u002Fusers\u002F:id`](\u002Fdocs\u002Fentities\u002Fusers\u002Fget) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 29,\n    \"name\": \"Иван\",\n    \"lastName\": \"Петров\",\n    \"email\": \"ivan.petrov@example.com\",\n    \"active\": true,\n    \"workPosition\": \"Старший менеджер\",\n    \"departmentId\": [1, 47],\n    \"userType\": \"employee\"\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — обновление отклонено Битрикс24:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"UPDATE_FAILED\",\n    \"message\": \"Bitrix24 rejected user.update (result: false)\",\n    \"hint\": \"Bitrix24 returns false when the calling user lacks portal admin rights, when a read-only field was touched (isOnline, lastLogin, dateRegister, isAdmin), or when the target user ID does not exist. Verify the webhook\u002FOAuth identity is a portal admin.\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `INVALID_ID` | `:id` не является положительным целым числом |\n| 400 | `READONLY_FIELD` | В теле запроса передано readonly-поле (`id`, `isOnline`, `isAdmin`, `lastLogin`, `dateRegister`, `lastActivityDate`, `userType`, `timestampX`). Вайбкод отклоняет до вызова Битрикс24 |\n| 400 | `BITRIX_ERROR` | Битрикс24 отклонил поле — например, `wrong_email` при попытке поставить уже занятый email |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `user` |\n| 403 | `UPDATE_FAILED` | Битрикс24 вернул `result: false` для запроса на обновление. Чаще всего — у владельца ключа нет прав администратора портала |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Изменение email.** Если новый email уже занят другим сотрудником портала, Битрикс24 вернёт `BITRIX_ERROR: wrong_email`. Перед PATCH — проверка через `GET \u002Fv1\u002Fusers?filter[EMAIL]=новый@example.com`.\n\n## Смотрите также\n\n- [Получить сотрудника](\u002Fdocs\u002Fentities\u002Fusers\u002Fget) — текущие значения полей\n- [Поля сотрудника](\u002Fdocs\u002Fentities\u002Fusers\u002Ffields) — какие поля можно изменить\n- [Деактивировать сотрудника](\u002Fdocs\u002Fentities\u002Fusers\u002Fdelete) — обратимое деактивирование\n- [Batch](\u002Fdocs\u002Fbatch) — массовое обновление\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","2026-07-07",{}]