Значения полей библиотек: чтение и обновление
Кастомные поля библиотек документов используют тот же контракт, что и поля списков: те же типы, те же форматы JSON, ключи UUID в ответах и UUID/internal_name при записи.
Библиотека не становится списком: системные колонки (name, item_type, file_size, …) живут в таблице файлов, кастомные — в library_files.field_values.
GET /libraries/{id}—fields[]GET /libraries/{id}/fields— то же- CRUD полей: portal admin + edit. См. API библиотек.
Значения на файлах и папках
Заголовок раздела «Значения на файлах и папках»Ответы GET /files, GET /files/{fileRef}, upload и create folder включают field_values с ключами UUID.
| Операция | Обязательные поля |
|---|---|
| Upload / create folder | Не блокируют загрузку: файл сначала, свойства потом |
PATCH /files/{fileRef} с fieldValues | Merge + проверка required после merge |
PATCH только name / parentId | field_values не трогает, required не проверяет |
Версии файлов (library_file_versions) — только бинарник. Restore версии не откатывает поля. Корзина сохраняет field_values и схему library_fields.
var file = await ctx.Libraries.GetLibraryFileAsync(libraryId, fileRef, ct);var status = file.GetString("status");file["status"] = "Готово";await file.UpdateAsync(ct);Event Receiver: var file = await context.GetLibraryFileAsync(api, ct);
Timer Job: api.Libraries.GetLibraryFileAsync(libraryId, fileRef, ct).
Фильтр: LibraryFileQueryBuilder.ForLibrary(id).WhereField("status", b => b.Eq("Готово")).