Платформа 3V/Формы/Действия/Выполнение пользовательского действия/Скачивание файла

Материал из 3v-wiki
Перейти к навигации Перейти к поиску

Элемент атрибута типа Файл имеет следующий вид:

 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 Подписи файла
uploadDate Дата загрузки

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

 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 }

Пример настройки можно увидеть здесь