В этой статье:

Веб-формы и кластер BI-серверов

Использование веб-форм в регламентных отчётах

Использование веб-форм для обработки операций пользовательских классов

Особенности работы веб-форм

Из-за используемых технологий и имеющихся ограничений разработки возникает ряд особенностей, которые необходимо учитывать при использовании веб-форм. Список особенностей представлен ниже.

Веб-формы и кластер BI-серверов

Если для разрабатываемого веб-приложения формируется инфраструктура, содержащая кластер BI-серверов, то для корректной работы веб-форм в многопользовательском режиме потребуется дополнительная настройка балансировщика HAProxy.

Использование веб-форм в регламентных отчётах

Если по пользовательской кнопке открывается веб-форма, то в системе в рамках пользовательской сессии фиксируется активный регламентный отчёт. Активный отчёт возвращает статическое свойство PrxReport.ActiveReport, доступное в языке Fore. При использовании нескольких веб-форм, вызванных из разных отчётов, в рамках одной сессии активным отчётом будет установлен тот, из которого произошёл последний вызов веб-формы вплоть до её закрытия.

При наличии нескольких одновременно открытых регламентных отчётов и веб-форм свойство PrxReport.ActiveReport может отработать некорректно, так как вернёт последний отчёт, из которого открывалась веб-форма. Изменить активный отчёт можно с помощью операции SetActiveReport.

Для работы с отчётом из веб-формы рекомендуется сохранять активный отчёт в глобальную переменную, объявленную на уровне класса веб-формы. Запись активного отчёта в переменную осуществлять в событии onShow:

Class TESTWebForm: WebForm
    activeRep: IPrxReport;
    activeSheet: IPrxSheet;

    Sub TESTWebFormOnShow;
    Begin
        activeRep := PrxReport.ActiveReport;
        activeSheet := activeRep.ActiveSheet;
        // Дальнейшая работа с отчётом
    End Sub TESTWebFormOnShow;
End Class TESTWebForm;

Использование веб-форм для обработки операций пользовательских классов

В веб-приложении для операций пользовательских классов в качестве обработчиков могут быть назначены веб-формы. Для таких веб-форм в обработчик события OnShow может быть добавлен дополнительный параметр: OnShow(Args: ISortedList). При выполнении операции в аргументах события Args будут доступны элементы со следующими ключами:

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

Пример класса веб-формы, предназначенной для обработки операций пользовательского класса:

Class TESTWebForm: WebForm
    bSave: WebButton;
    bClose: WebButton;
    MDesc: IMetabaseObjectDescriptor;

    Sub TESTWebFormOnShow(Args: ISortedList);
    Var
        Descr: IMetabaseObjectDescriptor;
        ParamVals: IMetabaseObjectParamValues;
        Operation: String;
    Begin
        Descr := Args.Item("Descriptor");
        ParamVals := Args.Item("Values");
        Operation := Args.Item("Operation");
        MDesc := Descr;
    End Sub TESTWebFormOnShow;

    Sub bSaveOnClick;
    Begin
        MDesc.SaveDescriptor;
        Self.Close;
    End Sub bSaveOnClick;

    Sub bCloseOnClick;
    Begin
        Dispose MDesc;
        Self.Close;
    End Sub bCloseOnClick;
End Class TESTWebForm;

См. также:

Создание веб-формы и размещение компонентов