Основной глобальной константой является объект Context, содержимое которого
зависит от местоположения сценария. Например, для сценария процесса
Context будет содержать информацию об экземпляре этого процесса.
Context является объектом со списком полей, определённых пользователем
(подробнее в статье Работа с типами). Например, если на вкладке
«Контекст» добавить поле типа Строка с кодом foo, то с ним можно будет
взаимодействовать следующим образом:
Context.data.foo = 'some string';
Context во многом похож на элемент приложения — за исключением того, что он
не имеет методов сохранения и удаления. Он сохраняется автоматически по завершении
сценария.
Если процесс находится внутри приложения, то в нём всегда доступен объект
Application, предоставляющий методы по работе с текущим приложением.
Например, можно создать новый заказ следующим образом:
const order = Application.create();
order.data.client = Context.data.client;
await order.save();
Если процесс находится внутри раздела, то в нём может быть доступен объект
Namespace, содержащий все приложения этого раздела. Например, описание
конкретного приложения можно получить как Namespace.app.orders:
В сценарии также может быть доступен объект Global, содержащий описание
всех разделов. Использование этого объекта препятствует дальнейшей выгрузке
сценария. Это значит, что если использовать этот объект в сценарии процесса,
лежащего в разделе или приложении, то этот раздел или приложение нельзя
будет экспортировать.
Объект Global содержит все доступные разделы в поле ns, то есть если
создать раздел store, внутри которого расположено приложение orders, то
его описание можно будет получить как Global.ns.store.app.orders:
Подробнее про работу с приложениями можно узнать в статье Работа с приложениями.
Константа Global всегда доступна в процессах, созданных на уровне компании.
В процессах, расположенных в разделах и приложениях, необходимо разрешить доступ к этой константе.
Глобальный контекст и изоляция
Во время исполнения в сценарии доступно несколько глобальных констант.
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()
Подробнее в статье справки Сценарии в виджетах.