Основной глобальной константой является объект 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()
Подробнее в статье справки «Скрипты в виджетах».