Во время исполнения в сценарии доступно несколько глобальных констант.

Context

Основной глобальной константой является объект Context, содержимое которого зависит от местоположения сценария. Для сценариев процессов Context содержит информацию об экземпляре этого процесса.

Context является объектом со списком полей, определённых пользователем (подробнее Типы объектов). Например, если во вкладке Контекст добавить поле с типом строка и кодом foo, то с ним можно будет взаимодействовать следующим образом:

Context.data.foo = 'some string';

Context во многом похож на элемент приложения, кроме того, что не имеет методов сохранения и удаления. Он сохраняется автоматически по завершению сценария.

Application

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

const order = Application.create();
order.data.client = Context.data.client;
await order.save();

Namespace

Если процесс находится внутри раздела, то в нём может быть доступен объект Namespace, содержащий все приложения этого раздела. Таким образом описание конкретного приложения можно получить как Namespace.app.orders

const clientOrders = await Namespace.app.orders.search()
    .where(f => f.client.eq(Context.data.client))
    .all();

Global

В сценарии также может быть доступен объект Global, содержащий описание всех разделов. Использование этого объекта препятствует дальнейшей выгрузке сценария, то есть, если использовать этот объект в сценарии процесса, лежащего в разделе или приложении, то этот раздел или приложение нельзя будет экспортировать.

Объект Global содержит все доступные разделы в поле ns, то есть, если создать раздел store, внутри которого расположено приложение orders, то его описание можно будет получить как Global.ns.store.app.orders.

const clientOrders = await Global.ns.store.app.orders.search()
    .where(f => f.client.eq(Context.data.client))
    .all();

Подробнее про работу с приложениями можно почитать в разделе Работа с приложениями. Константа Global всегда доступна в процессах компании. В процессах, расположенных в разделах и приложениях, необходимо разрешить доступ к этой константе.

Запуск процессов

Из объектов Namespace и Application также есть возможность запускать процессы.

await Application.processes.process_code.run({param: 1});
await Namespace.processes.process_code.run({param: 1});
await Global.ns._clients.app._leads.processes.process_code.run({param: 1});
await Global.ns._clients.processes.process_code.run({param: 1});

Подробнее смотри описание объекта Process.

System

В объекте System доступны такие системные коллекции как пользователи, группы пользователей, организационная структура и другие.

Server

В клиентских сценариях виджета доступна глобальная константа Server. В объекте Server доступны для вызова методы из серверного сценария виджета.

await Server.rpc.doSomething()