Прикреплённые файлы — attachments#

Определение#

Компонент используется для работы с прикреплёнными файлами в форме.

Тип компонента в конфигураторе: attachments.

Внешний вид#

JSON-схема для создания компонента в конфигураторе:

"documents": {
    "title": "Документация",
    "type": "attachments",
    "canAddFile": true,
       "viewers": [
            {
              "extensions": ["doc", "docx", "xls", "xlsx", "pdf"]
            }
          ]
}

Как оно выглядит в пользовательском приложении:

Пример компонента

Загрузка приложений из файловой системы устройства с помощью проводника:

Пример компонента

Свойства#

"type": "attachments",
"title": "Название компонента",
"canAddFile": true,
"viewers": [
    {
      "extensions": [ "..." ]
    }
  ],
"hidden": false,
"helperText": "..."
}

Свойство

Определение

Тип данных

type

Тип элемента. Для этого компонента — это всегда attachments.

string

title

Название компонента, которое отображается в форме.

string

canAddFile

Это свойство позволяет отключать возможность загрузки файлов. Если значение этого поля false, то загрузка файлов запрещена. С помощью этого свойства можно прописать хук, который позволит ограничить количество загружаемых файлов.

boolean

viewers

Это свойство отвечает за дополнительные настройки компонента. Дополнительное свойство записывается в квадратных скобках — [], если свойств несколько, то дополнительно пишутся фигурные скобки — {}.

string

extensions

Свойство отвечает за ограничение форматов файлов, которые компонент может загрузить в систему. Если вы не укажите никаких форматов, то компонент не даст загрузить вообще никакой файл.

string

hidden

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

boolean

helperText

Описание поля. Это стандартное свойство и отображается как текст под полем компонента.

string

Модель данных#

Данные сохраняются в FormInstances в поле Data в виде JSON.

Заполненная форма в пользовательском приложении:

Пример компонента

После сохранения данные попадают в FromInstances в конфигураторе. Они сохраняются также в JSON формате:

"documents": [
{
    "id": "63e3378f00209b40be79aa99",
    "url": "documents/b2c7cc4f-76fc-4bbc-a0be-97c433752e25/Invoice-01.2022.pdf",
    "name": "Invoice-01.2022.pdf",
    "size": 21024,
    "type": "document",
    "status": "UPLOADED",
    "createdDate": 1675835279502,
    "originalFileName": "Invoice-01.2022.pdf"
}
]

В FormInstances попадают все данные о документе.

Примеры использования#

В системе предусмотрена возможность передавать значения некоторых свойств с помощью хуков. Также у свойств есть определённые значения по умолчанию, которые позволяют опускать эти свойства.

Поэтому в примере ниже мы можем опустить почти все свойства компонента.

"supDocs": {
      "type": "attachments",
      "title": "Сопроводительная документация *"
    }

Вот так этот компонент будет выглядеть у пользователя:

Пример компонента