Платформа 3V/Формы/Действия/Выполнение пользовательского действия/Скачивание файла
Перейти к навигации
Перейти к поиску
Элемент атрибута типа Файл имеет следующий вид:
1 {
2 "$type": "FileLinkDto[]",
3 "$values": [
4 {
5 "fileId": "b94bd200-ab38-4584-b8ac-0d247c83dd91",
6 "fileName": "наименование.jpg",
7 "downloadLink": "/api/file/b94bd200-ab38-4584-b8ac-0d247c83dd91",
8 "signs": [],
9 "uploadDate": "2021-12-20T08:08:05.447Z"
10 }
11 ]
12 }
Для того, чтобы обратиться к значениям внутри атрибута следует использовать следующую структуру:
1 {
2 "attribute": {
3 "property": "FileId",
4 "discriminator": "FileLinkTransitiveAttributeDefinitionDto",
5 "id": 20
6 }
7 }
, где property может быть
property | |||
---|---|---|---|
fileId | GUID файла | ||
fileName | Наименование файла | ||
downloadLink | Ссылка для скачивания | ||
signs | Подписи файла(нельзя вытянуть с помощью FileLinkTransitiveAttributeDefinitionDto) | ||
uploadDate | Дата загрузки |
Для того, чтобы скачать файл из справочника требуется настроить выражение, в котором следует задать путь к методу скачивания файла. В параметр отдаётся вычислимый через FileLinkTransitiveAttributeDefinitionDto идентификатор(fileId) файла или ссылка на его скачивание(downloadLink).
1 {
2 "expression": "'https://api.3v-cloud.com/filestorage'+If(IsNullOrEmpty([1]), throw('Нет данных'), ValueOf([1], 0))",
3 "returnFirstParameterValue": false,
4 "operands": [
5 {
6 "dictionaryId": 1069,
7 "attributeId": null,
8 "filter": {
9 "value": {
10 "$type": "System.Int32[], System.Private.CoreLib",
11 "$values": [
12 1
13 ]
14 },
15 "attributeId": null,
16 "attribute": {
17 "discriminator": "OwnAttributeDefinitionDto",
18 "id": 1
19 },
20 "conditionType": "AttributeInCollection",
21 "discriminator": "ValueConditionalDictionaryCardsFilter",
22 "inversion": false,
23 "conditionId": null,
24 "conditionExpressionId": null
25 },
26 "attribute": {
27 "property": "DownloadLink",
28 "discriminator": "FileLinkTransitiveAttributeDefinitionDto",
29 "id": 20
30 },
31 "discriminator": "EntryExpressionByDictionaryRequest",
32 "id": 1,
33 "allowMultipleValues": false
34 }
35 ],
36 "id": 2,
37 "name": "Выражение",
38 "code": null
39 }
Идентификатор выражения с вычисленным URL в пользовательском действии задаётся в свойстве serviceUrlExpressionId.
1 {
2 "serviceUrl": null,
3 "serviceUrlExpressionId": 2,
4 "parameters": [],
5 "isAsync": false,
6 "httpMethod": "Get",
7 "bodyTemplateExpressionId": null,
8 "bodyTemplate": null,
9 "discriminator": "BusinessLogicApiAction",
10 "comment": null,
11 "enableExpressionId": null,
12 "id": 2,
13 "name": "Файл",
14 "code": null
15 }
Пример настройки можно увидеть здесь