Привет!
Как часто вы сталкиваетесь с такой проблемой - необходимо с формы задачи, при создании нового элемента у поля с типом приложение, передавать какое-то значение?
Такая возможность есть только на формах элементов приложений
Чтобы решить это, приходится все время что-то выдумывать, записывать данные в cache или storage, что не всегда удобно, тк эти данные можно прочитать из разных сессий пользователя или в разных вкладках браузера, что может привести к конфликтам.
Я нашел еще одно решение этой проблемы - объявление переменной в глобальной константе window.
Данные в этих переменных будут доступны только в рамках текущего окна браузера и очищаются после обновления страницы, что как раз предотвращает различные конфликты и еще облегчает жизнь системе, не записывая временные данные на сервер.
Работает все очень просто, вот пример.
Скрипт на форме задачи:
Код:
declare const window: any
//функция инициализации
async function onInit(): Promise<void> {
//объявляем переменную
window.parent_object = Context.data.application!.id
}
//функция уничтожения - срабатывает в момент закрытия формы
async function onDestroy(): Promise<void> {
//очищаем переменную
window.parent_object = null
}
Скрипт на форме создания элемента приложения:
Код:
declare const window: any
async function onInit():Promise<void> {
if(window.parent_object){
Context.data.prilozhenie_1 = await Context.fields.prilozhenie_1.app.search().where(f => f.__id.eq(window.parent_object)).first()
}
}
Еще больше полезной информации в ТГ канале WhatDaELMA365