Была ли статья полезной?
- Введение [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
- Работа с типами
- Глобальный контекст и изоляция
- Работа с приложениями
- Массовые действия с элементами приложения
- Работа с внешними сервисами
- Скрипты в виджетах
- Веб компоненты
- Права доступа
- Начало работы с процессами
- Начало работы с подписями
- Начало работы с предпросмотром файлов
- Начало работы с организационной структурой
- Начало работы с пользователями и группами
- Начало работы с типом данных Таблица
- Начало работы с типом данных Категория
- Динамическое вычисление типа события
- Решение типовых задач
- API
В этой статье
Глобальный контекст и изоляция
Во время исполнения в скрипте доступно несколько глобальных констант.
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()Подробнее в статье справки «Скрипты в виджетах».