Студия/OnReopen

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

Событие, возникающее в момент попытки открытия уже существующей свободной формы (к примеру, журнала), вызванной с помощью LoadModule со способом вызова равным 1 (форма будет активирована, событие OnOpen повторно вызвано не будет, однако, будет вызвано данное событие). Форма уже имеет флаг полной инициализации (IsFullyInitialized) в момент выполнения этого события. Функция может использоваться, к примеру, в журналах или формах списков справочников, чтобы мгновенно изменить фильтр или позиционироваться на нужном элементе.

Аргументы

  • <NewParam>,<NewOption> - Переменные, передаваемые в тело события, непосредственно из функции LoadModule. Так как в режиме 1 LoadModule не ожидает окончания загрузки формы, данные переменные не будут переданы назад в вызвавшую функцию, если они будут изменены.


Примеры

//Пример события OnReopen, заполняющего фильтры из получаемых параметров
спОтбор:=RestoreValue("ЖурналПоставщиковОтбор");
If isEmpty(спОтбор) Then
  спОтбор:=List.Create();
EndIf;
If not IsEmpty(NewParam) Then
  НачДата:=спОтбор.GetByName("НачДата");
  КонДата:=спОтбор.GetByName("КонДата");
  //Передан новый документ для позиционирования
  If Pos("DB.DOC.",TypeStr(NewParam))=1 Then  
    aDoc:=NewParam.GetJournalObject("ЖурналПоставщиков");
    Стр:=TypeStr(NewParam);
    TearStr(Стр,".");
    TearStr(Стр,".");
    спОтбор:=List.Create();
    спОтбор.SetByName("НачДата",Min(НачДата,BegOfDay(aDoc.DocDate)));
    спОтбор.SetByName("КонДата",Max(КонДата,BegOfDay(aDoc.DocDate)));
    спОтбор.SetByName("Вид",Стр);
    ДокументПозиционирования:=aDoc;
    ПрименитьУстановки();
  EndIf;
EndIf;