Объекты системы представляют из себя записи в базе данных. Это могут быть элементы приложений (ApplicationItem) или базовые объекты системы (UserItem, FileItem, ImageItem). Каждый объект описывается набором соответствующих ему полей (ItemData), где коду поля сопоставляется его тип. Также объекты имеют базовый набор полей BaseItemData. Каждый объект содержит описание своих полей (свойство fields), а также объект значений этих полей (свойство data). Описание поля зависит от его типа.

Ссылки на объекты

Для всех объектов существует также объект-ссылка ItemRef, через который можно получить сам объект. Например, в базовом наборе полей любого объекта есть ссылка на автора этого объекта __createdBy, для того, чтобы получить объект автора, необходимо его запросить:

const author = await Context.data.__createdBy.fetch();

У любой ссылки есть метод fetch, с помощью которого можно запросить сам объект.

Пользователи

Пользователь (UserItem) является объектом системы с набором полей UserData. Для ссылки на пользователя используется объект типа UserItemRef. В данный момент пользователей нельзя создавать или изменять из сценариев.

Например, пусть процесс запускается по элементу приложения order и необходимо поставить задачу на автора этого элемента, тогда достаточно сделать динамическую зону ответственности и в связанную с ней переменную author положить автора элемента:

const order = await Context.data.order.fetch();
Context.data.author = order.data.__createdBy;

На объекте пользователя и на ссылке на него доступен метод UserItemRef.getChiefs для получения руководителей пользователя. Например, если нам необходимо получить руководителей автора из предыдущего примера, то его можно получить следующим образом:

Context.data.chiefs = await Context.data.author.getChiefs();

Файлы

Файл (FileItem) это объект системы с набором полей FileData. Для ссылки на пользователя используется объект типа FileItemRef. В данный момент файлы нельзя изменять из сценариев.

Метод FileField.create позволяет создавать файлы в папке экземпляра процесса

const fileRq = await fetch(`https://jpeg.org/images/jpegsystems-home.jpg`)
const buf = await fileRq.arrayBuffer()
const file = await Context.fields.file.create("home.jpg", buf)

Метод FileField.createFromLink позволяет загружать файлы из сторонних источников в папку экземпляра процесса

const file = await Context.fields.file.createFromLink("home.jpg", `https://jpeg.org/images/jpegsystems-home.jpg`)

Метод FileItem.getDownloadUrl и FileItemRef.getDownloadUrl позволяет получить ссылку на скачивание файла

const url = await file.getDownloadUrl();

Элементы приложений

Элемент приложения (ApplicationItem) состоит из полей этого приложения. Если в контексте есть поле типа Приложение, то в этом поле будет лежать одна ссылка (ApplicationItemRef) или массив таких ссылок (если выбрана опция «Несколько»). Получить объекты приложений можно по ссылкам из других объектов, а также из Глобальных констант. Подробнее про работу с приложениями можно прочитать в соответствующем разделе .

Type aliases

Based

Based: T & BaseItemData