- Главная [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
- Типы объектов
- Типы данных
- Глобальные константы
- Работа с приложениями
- Веб-запросы
- Права доступа
- Документооборот
- Линии
- Виджет «Код»
- Подписи
- Рабочие календари
- Интеграция с IP-телефонией
- Интеграция с сервисами рассылок
В этой статье
Глобальный контекст и изоляция
Во время исполнения в сценарии доступно несколько глобальных констант.
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()
Подробнее в статье справки «Сценарии в виджетах».