Студия/OnOpen

From SunFlurry wiki
Revision as of 08:55, 7 February 2021 by Admin (talk | contribs) (1 revision imported)
Jump to: navigation, search
  OnOpen (Визуальные события)
Применимость:Форма, подчиненные формы
Тип события:Прерывающее
Статус разработки: Реализована

Событие, возникающее в момент открытия формы до ее полной инициализации, во время выполнения этого события форма все еще не видна на экране, визуальные элементы на момент исполнения события уже инициализированы, но таблицы и деревья, загружаемые из базы данных еще не загружены. Если во время исполнения события, будут изменены фильтры или сортировка таких табличных элементов, фактическая их загрузка будет отложена до окончания исполнения события. Функция IsFullyInitialized будет отдавать 0 в течение всего времени исполнения события. Если во время события произойдет необработанное исключение или будут вызваны функции, типа Form.Close, Form.Destroy, загрузка формы будет остановлена и будет произведена попытка закрытия модуля.

Аргументы

  • <Param>,<Option> - (необязательный аргумент) (возможен аргумент-переменная (ByRef)) Переменные, передаваемые в тело события, только при загрузке форм в режиме инструментария, с помощью функции LoadToolForm. Переменные передаются из аргументов функции и могут быть изменены в этом событии для передачи назад.
  • <ModalResult> - (необязательный аргумент) (возможен аргумент-переменная (ByRef)) Переменная, передаваемые в тело события, только при загрузке форм в режиме инструментария, с помощью функции LoadToolForm. Переменная возвращается, как результат вызова указанной функции.


Примеры

//Простая проверка прав в визуальном событии OnOpen
aEl:=Form.Object;
If not глПользователь.Бухгалтер Then
  Box("Вам запрещено пользоваться этим документом!",Q_STOP);
  Form.Close(0);
  Exit;
ElseIf aEl.Status()<0 Then
  If aEl.ДокОснование.Selected()=0 Then
    Box("Данный документ нельзя вводить без документа-основания!",Q_STOP);
    Form.Close(0);
    Exit;
  EndIf;
EndIf;