...

Передаем входные значения для нового элемента приложения на форме задачи при помощи window

Тема в разделе "Примеры сценариев", создана пользователем ksannikov, 14 авг 2025 в 11:39.

  1. ksannikov

    ksannikov Участник

    Привет!

    Как часто вы сталкиваетесь с такой проблемой - необходимо с формы задачи, при создании нового элемента у поля с типом приложение, передавать какое-то значение?
    Такая возможность есть только на формах элементов приложений

    Чтобы решить это, приходится все время что-то выдумывать, записывать данные в cache или storage, что не всегда удобно, тк эти данные можно прочитать из разных сессий пользователя или в разных вкладках браузера, что может привести к конфликтам.

    Я нашел еще одно решение этой проблемы - объявление переменной в глобальной константе window.
    Данные в этих переменных будут доступны только в рамках текущего окна браузера и очищаются после обновления страницы, что как раз предотвращает различные конфликты и еще облегчает жизнь системе, не записывая временные данные на сервер.

    Работает все очень просто, вот пример.

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