Type parameters
Hierarchy
- BaseItem<Data>
-
ApplicationItemRef<Data, Params>
- ApplicationItem
Properties
Readonly code
Код приложения цели ссылки (код приложения).
Readonly data
Значения полей объекта.
Readonly fields
Описание полей объекта.
Readonly id
Идентификатор цели ссылки.
Readonly namespace
Пространство имен цели ссылки (код раздела приложения).
Methods
delete
-
Метод ApplicationItemRef.delete позволяет удалить элемент приложения.
await Context.data.app.delete();
Returns Promise<void>
docflow
-
Метод получает объект для работы с документооборотом.
const item = await Context.data.n1; const approvalLists = await item.docflow().getApprovalLists();
Returns DocflowApplicationItemRef
fetch
-
Запрос полных данных объекта-ссылки.
Returns Promise<ApplicationItem<Data, Params>>
getDataSigns
-
Метод ApplicationItem.getDataSigns получает внутреннюю подпись данных приложения.
При вычислении внутренних подписей приложения система учитывает пользовательские настройки для подписания данных. В полученных данных содержится набор подписей двух типов: подписи атрибутов и подписи файла.
Каждая такая подпись содержит в себе:
hash
подпись данных приложения;body
данные, для которых вычислен хеш;type
тип подписи.
В указанном примере контекст содержит:
dokument
приложение типа Файл, включающее настройки подписи.
В представленном примере выполняется поиск подписи и использование
hash
,body
для сохранения полученной подписи у приложения.const app = await Context.data.dokument.fetch(); const dataSigns = await app.getDataSigns(); const dataSign = res.find( (res: any) => res.type === SignType.File); const newSign: NewSign = { sign: "aGVsbG8=", codeProvider: "External", body: btoa(app.data.__file!.hash), hash: dataSign.hash } await app.uploadSign(newSign);
Returns Promise<SignData[]>
getFolder
-
Метод ApplicationItemRef.getFolder позволяет получить папку элемента иерархического справочника.
const item = await Context.data.n1; const folder = await item.getFolder();
Returns Promise<TFolder | undefined>
getPermissions
-
Метод ApplicationItem.getPermissions получает права доступа, установленные для данного элемента приложения.
Метод следует использовать, если нужно добавить новые права доступа к существующим.
// Добавим права на элемент инициатору процесса const item = await Context.data.request.fetch(); const user = Context.data.__createdBy; // Получаем текущие права const currPermissions = await item.getPermissions(); currPermissions.values.push(new PermissionValue(user, [PermissionType.READ])); await item.setPermissions(currPermissions);
Returns Promise<TPermissions>
getRegistrations
-
Метод устарел. Получение списка регистраций элемента приложения.
const item = Context.data.d1! await item.getRegistrations();
Returns Promise<ApplicationItemRegistration[]>
getSettings
-
Метод ApplicationItemRef.getSettings позволяет получить настройки приложения.
const app = Context.data.dokument; if (app === undefined) { return; } const settings = await app.getSettings();
Returns Promise<TSettings>
getSignHistory
-
Метод ApplicationItem.getSignHistory получает историю подписей приложения.
// Пример сохранения подписей в контекстные переменные типа Файл const app = await Context.data.dokument!.fetch(); const signHistory = await app.getSignHistory(); Context.data.sign_attributes = await signHistory[0].signs[0].createSignFile(); const attributes = await signHistory[0].signs[0].createAttributesFile(); if (attributes !== undefined) { Context.data.attributes = attributes; }
Returns Promise<EntityVersion[]>
getSubscribers
-
Список пользователей, подписанных на сообщения в ленте элемента приложения.
// Запишем подписчиков элемента приложения в контекст const subscribers = await item.getSubscribers(); Context.data.subscribers = subscribers;
Returns Promise<TUser[]>
hasPermission
-
Метод ApplicationItem.hasPermission проверяет наличие права доступа для пользователя, группы, элемента оргструктуры, роли.
Parameters
-
orgunit: TPermissionOrgunit
Пользователь, группа, элемент оргструктуры или роль, которым выданы права.
-
type: PermissionType
Уровень прав.
const procurement = await Context.data.procurement.fetch(); const user = Context.data.executor; await procurement.hasPermission(user, PermissionType['READ']);
Returns Promise<boolean>
-
manualRegister
-
Метод устарел. Регистрация элемента приложения вручную (если включена регистрация вручную в настройках дела).
Parameters
-
nameReg: string
-
nomenclatureId: string
Returns Promise<boolean>
-
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
register
-
Метод устарел. Автоматическая регистрация элемента приложения.
Parameters
-
nomenclatureId: string
Returns Promise<boolean>
-
restore
-
Метод ApplicationItemRef.restore позволяет восстановить удаленный элемент приложения.
await Context.data.app.restore();
Returns Promise<void>
save
-
Метод ApplicationItem.save сохраняет элемент приложения.
Сохранять элемент необходимо после изменения данных элемента.
const request = await Context.data.service_request.fetch(); request.data.responsible = Context.data.responsible; await request.save();
Returns Promise<void>
sendMessage
-
Метод ApplicationItemRef.sendMessage позволяет отправлять сообщения в ленту элемента приложения.
Parameters
-
title: string
Тема сообщения.
-
message: string
Тело сообщения.
await Context.data.request.sendMessage("Работа по заявке завершена", `Решение: ${Context.data.result}`)
Returns Promise<void>
-
setFolder
-
Метод ApplicationItemRef.setFolder позволяет изменять папку элемента иерархического справочника.
Parameters
-
id: string
ID папки.
const item = await Context.data.n1; await item.setFolder('00000-00000-00000-00000');
Returns Promise<void>
-
setPermissions
-
Метод ApplicationItem.setPermissions устанавливает новые права на элемент приложения.
Метод полностью заменяет существующие права новыми.
Для элементов приложения не имеют смысла права на создание, поэтому недоступно значение
PermissionValue.Create
.Parameters
-
permissions: TPermissions
Права доступа, которые будут установлены в элемент приложения.
const procurement = await Context.data.procurement.fetch(); const user = Context.data.executor; const permissions = new Permissions( [new PermissionValue(user, [PermissionType.DELETE, PermissionType.READ])]); await procurement.setPermissions(permissions);
Returns Promise<void>
-
setStatus
-
Метод ApplicationItem.setStatus позволяет изменить статус элемента приложения.
Статус элемента приложения меняется сразу при выполнении этого метода.
Дополнительного вызова ApplicationItem.save не требуется.
Parameters
-
status: TStatus<any, any>
Статус.
-
Optional comment: undefined | string
Причина смены статуса.
const request = await Context.data.request.fetch(); const finalStatus = request.fields.__status.variants.completed; await request.setStatus(finalStatus, "Закрыт автоматически");
Returns Promise<boolean>
-
subscribe
-
Метод ApplicationItem.subscribe позволяет подписать пользователя на сообщения в ленте элемента приложения.
Parameters
-
user: TUser
Пользователь.
// Подпишем текущего пользователя на ленту элемента приложения const item = await Context.data.app.fetch(); const user = await System.users.getCurrentUser(); await app.subscribe(user);
Returns Promise<void>
-
unsubscribe
-
Метод ApplicationItem.unsubscribe позволяет отписать пользователя от сообщений в ленте элемента приложения.
Parameters
-
user: TUser
Пользователь.
// Отпишем текущего пользователя от ленты элемента приложения const item = await Context.data.app.fetch(); const user = await System.users.getCurrentUser(); await app.unsubscribe(user);
Returns Promise<void>
-
uploadSign
-
Метод ApplicationItem.uploadSign загружает подпись приложения.
Метод используется для реализации собственного механизма подписания в приложениях. С помощью данного метода можно использовать для приложения подпись, полученную у внешнего провайдера.
Для того чтобы воспользоваться данным методом, необходимо иметь:
тело подписи, представленное в формате base64;
тип подписи;
код провайдера (строковая константа, которая его идентифицирует);
хеш данных приложения, которые подписали;
данные, по которым вычислена подпись.
В примере указан сценарий, где:
dokument
— это приложение типа Документ в контексте;Класс
MySignProvider
— несуществующий провайдер для примера.
В результате мы получаем флаг, который говорит о результате загрузки. Если флаг имеет значение
true
— загрузка прошла успешно,false
— подпись не загружена.const app = await Context.data.dokument.fetch(); const provider = new MySignProvider(); const innerSigns = await Conetxt.data.dokument.getDataSigns(); const attributesInnerSign = innerSigns.find(sign => sign.type === SignType.Attributes); const sign = provider.Sign(attributesInnerSign.body); const newSign: NewSign = { sign: sign, codeProvider: "MyProvider", body: attributesInnerSign.body, signType: SignType.Attributes, hash: attributesInnerSign.hash, }; const isUploaded = await app.uploadSign(newSign);
Parameters
-
sign: NewSign
Данные для загрузки подписи.
Returns Promise<boolean>
Элемент приложения