> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yume.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Вложения: Файлы и документы

> Прикрепление произвольных файлов-документов к любому объекту системы с хранением в облачном хранилище, определением расширения, поштучным и массовым добавлением.

К любому объекту можно прикрепить произвольные файлы-документы (договоры, акты, PDF, изображения, любые форматы). Каждый
файл сохраняется в облачном хранилище в отдельной папке для файлов и связывается с родительским объектом через ту
же пару «тип объекта + идентификатор», что и остальные [вложения](/ru/logic/attachments). Все выборки жёстко
ограничены компанией текущего запроса. Записи упорядочены от новых к старым.

Для крупных файлов есть отдельный сценарий — [прямая загрузка](/ru/logic/attachments/direct-upload). Полный перечень
полей — в [глоссарии файлов](/ru/logic/attachments/files-glossary).

## Логика

**Поштучное прикрепление.** Клиент передаёт сам файл, тип родительского объекта (по имени вида объекта), идентификатор
объекта и, при необходимости, категорию. Система автоматически проставляет компанию, автора и дату создания. Поля с
собственным идентификатором записи, расширением, датой создания и автором доступны только для чтения. Приём файлов идёт
только через загрузку формой. Список в поштучном режиме отдаётся без постраничного разбиения.

<Note>
  В поштучном режиме поле «Название» не входит в набор принимаемых полей — задать имя файла при одиночной загрузке нельзя.
  Указать название можно только при массовой загрузке.
</Note>

**Массовое прикрепление.** Для загрузки нескольких файлов к одному объекту есть отдельный режим. Клиент передаёт список
файлов и общие для всех параметры: тип и идентификатор родительского объекта, а также необязательные название и категорию.

* Все файлы прикрепляются к **одному и тому же** родительскому объекту.
* Название и категория **общие** для всех файлов пакета — разные имена или категории для отдельных файлов задать нельзя.
* Расширение определяется автоматически для каждого файла из его собственного имени (приводится к нижнему регистру) — здесь именно фактическое расширение, а не значение по умолчанию.
* Создание идёт одной пакетной операцией внутри единой транзакции: либо создаются все записи, либо (при ошибке) ни одной.

**Фильтрация списка.** Список файлов можно отфильтровать по нескольким параметрам:

| Фильтр                | Как работает                                                     |
| --------------------- | ---------------------------------------------------------------- |
| Дата создания         | по календарной дате: не раньше и не позже указанного дня         |
| Кем создан            | точное совпадение или список значений                            |
| Идентификатор объекта | точное совпадение или список значений                            |
| Категория             | точное совпадение или список значений                            |
| Тип объекта           | по имени вида объекта, с возможностью указать несколько значений |

Так операционист может получить, например, все документы конкретной заявки или все файлы определённой категории,
загруженные конкретным сотрудником за период. При изменении отдельного файла служебные поля (расширение, дата создания,
автор) остаются защищёнными от прямой правки; при удалении вместе с записью удаляется и сам файл в облачном хранилище.

## Особенности поведения

<Note>
  Расширение в массовом режиме сохраняется вместе с ведущей точкой (например, «.pdf»), а в поштучном режиме по умолчанию —
  без точки. Это разное поведение двух режимов.
</Note>
