Описание: Главный метод создания и обновления элементов в системе — универсальный для любых списков и типов контента. Если в объекте элемента передан id — элемент обновляется, если нет — создаётся новый. Метод также используется другими модулями "под капотом" (например, методом Post модуля "Автоматизация" при формировании внутреннего запроса на обновление элемента).
Особенности:
- Тело запроса — не обычный JSON, а
multipart/form-data: одна часть формы (itemListJson) содержит JSON-массив элементов, остальные части — прикреплённые файлы (каждый со своим именем). - Если поле элемента — lookup на список файлов, а значение этого поля в JSON совпадает с именем одного из приложенных в этом же запросе файлов, файл автоматически сохраняется и подставляется в поле как ссылка на созданный файл-вложение — отдельно вызывать методы загрузки файлов не требуется.
- Если элемент принадлежит архиву документов (документному списку) и передано поле
name, для элемента при необходимости выстраивается структура вложенных папок по пути в имени. - Поле
reference_listв элементе позволяет одновременно с созданием/обновлением самого элемента создать связи (references) от него на другие элементы (см. группу ссылок ниже) — без отдельного вызова/api/reference/Create. - Перед сохранением проверяется соответствие лицензионным ограничениям (
ValidateLicense) — при превышении лимита лицензий метод вернёт ошибку.
🌐 HTTP-информация
- Метод:
POST - URL:
/api/item/Update - Headers:
Content-Type: multipart/form-dataAuthorization: <UserSessionToken>
📦 Тело запроса (Request Body)
Форма (multipart/form-data):
| Часть формы | Тип | Обяз. | Описание |
|---|---|---|---|
itemListJson | string | Да | JSON-массив объектов элементов (произвольный набор полей типа контента; id — для обновления существующего элемента, отсутствие id — для создания нового) |
| (файловые части) | файл | Нет | Один или несколько приложенных файлов; имя файловой части используется для сопоставления со значением lookup-поля на список файлов (см. описание выше) |
Пример значения itemListJson:
[
{
"id": "622dddbb-2db2-433d-9d3c-89f31ea22e64",
"content_type_id": "7a1e4b2a-1111-4c2d-9a3f-000000000001",
"list_id": "8b2f5c3b-2222-4d3e-8a4f-000000000002",
"parent_id": "8b2f5c3b-2222-4d3e-8a4f-000000000002",
"name": "Документ.docx"
}
]
📤 Тело ответа (Response Body)
Массив созданных/обновлённых элементов (IItem[]), в том же порядке, что и в itemListJson.