- Главная [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
- Начало работы
- Как решить вашу задачу
-
API
-
Типы объектов
- DispositionType
- ProcessInstanceState
- ProcessTaskState
- ApplicationItemRegistration
- ApplicationProjectItem
- ApplicationProjectItemRef
- ApplicationProjectPlanElementItem
- ApplicationProjectPlanElementItemRef
- BaseApplicationItem
- BaseApplicationItemRef
- BaseItem
- BaseItemData
- CurrentUserItem
- DirectoryData
- DirectoryItem
- EmployeeItemData
- EmployeeItemParams
- EmployeeItemProcesses
- FileData
- FileItem
- FileItemRef
- FileVersionData
- FileVersionItem
- ImageData
- ImageItem
- ImageItemRef
- InstanceAddr
- Item
- ItemData
- ItemRef
- MailMessageData
- MailMessageItem
- MailMessageItemRef
- OrganisationStructureData
- OrganisationStructureItem
- OrganisationStructureItemRef
- ParamsItem
- ProcessInstanceData
- ProcessInstanceItem
- ProcessInstanceItemRef
- ProcessTaskData
- ProcessTaskItem
- ProcessTaskItemRef
- ProcessTemplate
- ProcessTimer
- ReminderData
- ReminderItem
- ReplacementData
- ReplacementItem
- StatusHistoryData
- StatusHistoryItem
- StatusHistoryItemRef
- TaskItemExit
- UserData
- UserGroupData
- UserGroupItem
- UserGroupItemRef
- UserItem
- UserItemRef
- ApplicationItem
- ApplicationItemRef
- Типы данных
- Глобальные константы
- Работа с приложениями
- Веб-запросы
- Права доступа
- Документооборот
- Линии
- Виджет «Код»
- Подписи
- Рабочие календари
- Интеграция с IP-телефонией
- Интеграция с сервисами рассылок
-
Типы объектов
Файл
Объект предназначен для работы с файлами, позволяет выполнять операции над файлами, хранимыми на диске: получать ссылки для загрузки, сохранять и получать права доступа, подписываться на изменения и др.
Type parameters
I: Item<ItemData>
Hierarchy
Properties
Readonly code
Код приложения цели ссылки (код приложения).
Readonly data
Значения полей объекта.
Readonly fields
Описание полей объекта.
Readonly id
Идентификатор цели ссылки.
Readonly namespace
Пространство имен цели ссылки (код раздела приложения).
Methods
addVersion
Метод создает новую версию файла.
Метод позволяет обновить содержимое файла на диске, не создавая новый файл. Созданная версия попадает в историю файла. Метод необходимо использовать, когда тело файла может быть получено из разных источников или сгенерировано при выполнении скрипта. Поле
comment
служит описанием добавляемой версии.В примере показано, как можно добавить версию файла после загрузки с внешнего ресурса. В качестве коментария можно указать, что файл получен с внешнего ресурса. Контекст содержит:
downloadUrl
— строка, хранящая URL для загрузки файла;newName
— новое название файла;file
— файл, хранящийся на диске.const fileResponse = await fetch(Context.data.downloadUrl); const fileContent = await fileResponse.arrayBuffer(); const newName = Context.data.fileName; await Context.data.file.addVersion(newName, fileContent, 'Файл загружен с внешнего ресурса');
Parameters
name: string
body: ArrayBuffer
Optional comment: undefined | string
Returns Promise<void>
addVersionFromLink
Метод создает версию, загружая файл по ссылке.
Сокращенная версия метода FileItem.addVersion использует ссылку загрузки для создания новой версии файла. С помощью ссылки загружается содержимое файла. Оно используется для создания новой версии. При использовании метода можно указать комментарий к добавляемой версии файла.
В примере показано, как можно добавить версию файла, используя ссылку для загрузки. Контекст содержит:
downloadUrl
— строка, хранящая URL для загрузки файла;newName
— новое название файла;file
— файл, хранящийся на диске.const newName = Context.data.fileName; await Context.data.file.addVersionFromLink(newName, Context.data.downloadUrl);
Parameters
name: string
url: string
Optional comment: undefined | string
Returns Promise<void>
delete
Удаление файла.
Метод позволяет переместить текущий файл в корзину для удаления.
// Пример удаления всех файлов, созданных пользователем (some user_id); const userID = '1a8286d3-a222-4b8b-a860-84f6505a708a'; const searchFiles = await System.files.search(). where(file => file.__createdBy.eq(userID)). all(); for (let i = 0; i < searchFiles.length; i += 1) { await searchFiles[i].delete(); }
Returns Promise<void>
fetch
Запрос полных данных объекта-ссылки.
Returns Promise<FileItem>
getDownloadUrl
Метод получает ссылку на загрузку содержимого файла.
Полученная ссылка возвращает содержимое файла. По такой ссылке загрузку могут выполнить все пользователи, в том числе и анонимные. Ссылка на загрузку доступна в течение одного часа. Тип вложения может быть
attachment
илиinline
. По умолчанию параметрdispositionType
имеет значениеattachment
.const url = await file.getDownloadUrl();
Parameters
Optional dispositionType: DispositionType
Returns Promise<string>
getFileMD5Hash
Метод получает md5-хеш файла.
В примере контекст содержит
file
— файл из системы.const hash = await file.getFileMD5Hash();
Returns Promise<string>
getPermissions
Метод получает права доступа к файлу.
После удачного выполнения запроса прав в ответе будет получен объект TPermissions. Полученный объект можно модифицировать или анализировать для различных проверок доступа.
const perm = await file.getPermissions();
Returns Promise<TPermissions>
getStaticDownloadUrl
Метод получает постоянную ссылку на загрузку содержимого файла.
Полученная ссылка возвращает редирект на ссылку с содержимым файла. По такой ссылке загрузку могут выполнить только авторизованные пользователи при наличии соответствующих прав. Тип вложения может быть
attachment
илиinline
. По умолчанию параметрdispositionType
имеет значениеattachment
. Данные ссылки бессрочные и существуют, пока файл не удалён в системе.// Получаем ID файла const fileUUID = Context.data.fileID; if(!fileUUID) { return; } // Ищем файл const file = await System.files.search().where(x => x.__id.eq(fileUUID)).first(); if(!file) { return; } // Получаем постоянную ссылку на файл const url = file.getStaticDownloadUrl();
Parameters
Optional dispositionType: DispositionType
Returns string
getVersions
Метод получает список версий файла.
В примере показан поиск первой версии файла. Идентификатор файла необходимо получить из контекста. Для получения всех версий используется параметр
offset
. Версии выбираются в порядке убывания порядкового номера, то есть от самой свежей к более старым. Первая версия имеет порядковый номер 1.// Получаем ID файла const fileUUID = Context.data.fileID; if(!fileUUID) { return; } // Ищем файл const file = await System.files.search().where(x => x.__id.eq(fileUUID)).first(); if(!file) { return; } // Получаем все версии файлов. Если версий нет, то возвращаем ошибку let allFileVersions: FileVersionItem[] = []; let verCount = 0; let offset = 0; const limit = 20; do { const versions = await file.getVersions(offset, limit); verCount = versions.length; offset = offset + verCount; allFileVersions.push(...versions); } while (verCount === limit) if(allFileVersions.length === 0) { throw new Error("У файла нет версий"); } const firstVersion = allFileVersions.find(ver => ver.version === 1); // Получаем тело файла const url = await firstVersion.getDownloadUrl(); const content = fetch(url);
Parameters
Optional offset: undefined | number
Optional limit: undefined | number
Returns Promise<FileVersionItem[]>
hasPermission
Метод проверяет наличие права доступа PermissionType.
Метод позволяет легко проверить наличие возможности на выполнение операции PermissionType с файлом. После использования метод вернет флаг о результате. Если значение флага
true
, то пользователь может выполнять запрошенную операцию с файлом. Также можно проверять доступ для элементов оргструктуры.const user = Context.data.__createdBy; const canUpdate = await file.hasPermission(user, PermissionType.UPDATE);
Parameters
group: TPermissionOrgunit
type: PermissionType
Returns Promise<boolean>
move
Перемещение файла.
Метод позволяет переместить файл в указанную директорию.
// Пример поиска всех файлов форматов .doc и .docx в директории и перенесения их в новую директорию const directoryID = "0520723d-5e32-4d37-8eca-175853a2ec88"; const searchFiles = await System.files.search(). where(file => file.directory.eq(directoryID)). all(); // Создадим новую директорию const newDirectory = await System.directories.create("Документы", directoryID); searchFiles!.forEach(async file => { let format = file.data.__name.split('.').reverse()[0]; if (format=='doc' || format=='docx') { await file.move(newDirectory.data.__id); }; });
Parameters
directoryID: string
Returns Promise<void>
normalize
Удаление дублирующихся данных в массивах.
Выполнить удаление дубликатов в полях, в которых хранятся массивы ссылок на объекты системы (пользователи, файлы, элементы приложений, документы).
Этот метод, например, можно вызвать после массового изменения данных в объекте.
const app1 = await Context.data.app1.fetch(); const app2 = await Context.data.app2.fetch(); app1.data.executors.push(app2.data.executors); app1.normalize(); // Далее перебираем элементы нового массива app1.data.executors.forEach( ... );
Returns void
rename
Переименование файла.
Метод позволяет изменить имя текущего файла.
// Пример переименования файла, используемого в контексте const fileUUID = Context.data.fileID; if(!fileUUID) { return; } // Поиск файла const file = await System.files.search().where(x => x.__id.eq(fileUUID)).first(); if(!file) { return; } await file.rename('Новое имя.txt');
Parameters
newName: string
Returns Promise<void>
setPermissions
Метод устанавливает список прав на файл.
Метод требуется использовать, когда необходимо изменить права на доступ к файлу, добавив или удалив права доступа для пользователя, группы, элемента оргструктуры. Для добавления новых прав доступа необходимо использовать объект TPermissionValue, а для выдачи прав на конкретные операции — PermissionType. После создания нового объекта TPermissions необходимо использовать данный метод для сохранения новых прав доступа.
const user = Context.data.__createdBy; const permissions = new Permissions([ new PermissionValue(user, [PermissionType.DELETE, PermissionType.READ]), ]); await file.setPermissions(perms);
Parameters
perms: TPermissions
Returns Promise<void>
subscribe
Метод подписывает пользователей на файл.
Создание подписки на файл позволит пользователям получать оповещения об изменении данных файла созданиях его версий и других событиях.
Parameters
Rest ...users: TUser[]
Пользователи для подписки.
Returns Promise<void>
unsubscribe
Метод отписывает пользователей от файла.
Удаление подписки на файл позволяет прекратить получение оповещений об изменении файла.
Parameters
Rest ...users: TUser[]
Пользователи для отписки.
Returns Promise<void>
Properties
Methods