Difference between revisions of "Студия/OnReopen"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:55, 7 February 2021
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;