Type parameters
Hierarchy
- BaseApplicationItem<Data, Params>
-
ApplicationProjectItemRef<Data, Params>
- ApplicationProjectItem
Properties
Readonly code
Код приложения цели ссылки (код приложения).
Readonly data
Значения полей объекта.
Readonly fields
Описание полей объекта.
Readonly id
Идентификатор цели ссылки.
Readonly namespace
Пространство имен цели ссылки (код раздела приложения).
Methods
createDraft
-
Метод позволяет создать либо новый пустой черновик, либо черновик от плана проекта.
const plan = await project.getCurrentPlan(); const newDraft = await createDraft(plan);
Parameters
-
Optional payload: ProjectPlanStructure
структура плана проекта.
Returns Promise<ProjectDraftStructure>
-
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<BaseApplicationItem<Data, Params>>
getCurrentPlan
-
Метод позволяет получить текущий план проекта.
const plan = await project.getCurrentPlan();
Returns Promise<ProjectPlanStructure | undefined>
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[]>
getDraft
-
Метод позволяет получить черновик проекта.
const draft = await project.getDraft();
Returns Promise<ProjectDraftStructure | undefined>
getFolder
-
Метод позволяет получить папку элемента иерархического справочника.
const item = await Context.data.n1; const folder = await item.getFolder();
Returns Promise<TFolder | undefined>
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>
getPlanByVersion
-
Метод позволяет получить план проекта по его версии.
const plan = await project.getPlanByVersion();
Parameters
-
version: number
версия плана проекта.
Returns Promise<ProjectPlanStructure | undefined>
-
getRegistrations
-
Метод устарел. Получение списка регистраций элемента приложения.
const item = Context.data.d1! await item.getRegistrations();
Returns Promise<ApplicationItemRegistration[]>
getSettings
-
Метод позволяет получить настройки приложения.
const app = Context.data.dokument; if (app === undefined) { return; } const settings = await app.getSettings();
Returns Promise<TSettings>
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
-
Метод проверяет наличие права доступа для пользователя, группы, элемента оргструктуры, роли.
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
-
Метод позволяет восстановить удаленный элемент приложения.
await Context.data.app.restore();
Returns Promise<void>
save
-
Метод сохраняет элемент приложения.
Сохранять элемент необходимо после изменения данных элемента.
const request = await Context.data.service_request.fetch(); request.data.responsible = Context.data.responsible; await request.save();
Returns Promise<void>
sendMessage
-
Метод позволяет отправлять сообщения в ленту элемента приложения.
Parameters
-
title: string
Тема сообщения.
-
message: string
Тело сообщения.
await Context.data.request.sendMessage("Работа по заявке завершена", `Решение: ${Context.data.result}`)
Returns Promise<void>
-
setFolder
-
Метод позволяет изменять папку элемента иерархического справочника.
Parameters
-
id: string
ID папки.
const item = await Context.data.n1; await item.setFolder('00000-00000-00000-00000');
Returns Promise<void>
-
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
-
Метод позволяет изменить статус элемента приложения.
Статус элемента приложения меняется сразу при выполнении этого метода.
Дополнительного вызова не требуется.
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
-
Метод позволяет подписать пользователя на сообщения в ленте элемента приложения.
Parameters
-
user: TUser
Пользователь.
// Подпишем текущего пользователя на ленту элемента приложения const item = await Context.data.app.fetch(); const user = await System.users.getCurrentUser(); await app.subscribe(user);
Returns Promise<void>
-
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
-
Загрузка подписи приложения.
Метод используется для реализации собственного механизма подписания в приложениях. С помощью данного метода можно использовать для приложения подпись, полученную у внешнего провайдера.
Для того чтобы воспользоваться методом, необходимо иметь:
тело подписи, представленное в формате 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>
Элемент приложения «Проекты»