|
Объясните новичку разницу между процедурами "ПриОткрытии, ПередОткрытием" и модулем формы |
☑ |
0
new_hope
11.07.19
✎
13:35
|
Постараюсь правильно сформулировать свой вопрос, итак:
К примеру, мы создали новую форму. Инициализировали в ней глобальную переменную:
Перем МояПеременнаяСписок
Затем в (например) в процедуре "ПриОткрытии" инициализируем эту переменную:
Процедура ПриОткрытии()
//....
МояПеременнаяСписок = Новый СписокЗначений;
//....
КонецПроцедуры
И тут вопрос:
Если я инициализирую эту переменную ВНЕ любих процедур и функций... Просто в модуле формы добавлю эту строку (в самом низу кода, как обычно):
МояПеременнаяСписок = Новый СписокЗначений;
Вопрос - какое отличие в инициализации этой переменной (да и любого другого кода, если его писать в процедуре "ПриОткрытии" или просто в модуле (ВНЕ любых процедур и функций?
|
|
1
shuhard
11.07.19
✎
13:41
|
(0) ответ очевидный, переменная будет дотступна более "поздним" обработчикам
|
|
2
new_hope
11.07.19
✎
13:43
|
(1) Если честно - не понял
|
|
3
hhhh
11.07.19
✎
13:44
|
(0) если не открывать форму, а просто создать, то есть разница. Если внимательно проанализировать название процедуры, ПриОткрытии - это значит только при открытии формы появится ваша переменная.
|
|
4
new_hope
11.07.19
✎
13:51
|
(3) То-есть - при создании формы я буду иметь инициализированную переменную у этого объекта(формы) (если переменная будет инициализироваться просто в модуле).... - то-есть моя переменная уже будет некий СписокЗначений (пустой, если этот пример рассматривать)
Но в случае с процедурой (ПриОткрытии) - пока я не сделаю "МояФорма.Открыть()" - моя пернеменная - Неопределено..
Если так - то теперь все ясно! Спасибо.
|
|
5
Ник080808
11.07.19
✎
13:52
|
(0)
Если в При открытии
Форма = ПолучитьФорму("ТвояФорма");
Форма.МояПеременнаяСписок будет равна Неопределено;
Форма.Открыть();
Форма.МояПеременнаяСписок будет равна Список значений
Если в основном разделе (не в процедуре)
Форма = ПолучитьФорму("ТвояФорма");
Форма.МояПеременнаяСписок будет равна Список значений
Форма.Открыть();
Форма.МояПеременнаяСписок будет равна Список значений
|
|
6
ptiz
11.07.19
✎
13:55
|
(0) Первое, что ты должен указывать в вопросе: работаешь с обычными формами или управляемыми?
|
|
7
Aleksandr N
11.07.19
✎
13:58
|
(6) перед открытием есть только в ОФ.
|
|
8
Eiffil123
11.07.19
✎
14:00
|
В Управляемых формах лучше не использовать переменные модуля формы, т.к. они уничтожаются при передаче управления на сервер и обратно.
|
|
9
Aleksandr N
11.07.19
✎
14:00
|
(8) Нет.
|
|
10
Aleksandr N
11.07.19
✎
14:00
|
(8) Те, что на клиенте, не уничтожаются.
|
|
11
Eiffil123
11.07.19
✎
14:01
|
(9) каким образом нет? Если это просто переменная, объявленная со словом Перем в модуле формы?
|
|
12
new_hope
11.07.19
✎
14:01
|
(6) Да... пардон. Обычные формы. В Управляемых поведение в данном случае совсем другое?
|
|
13
Eiffil123
11.07.19
✎
14:02
|
(10) а, ок, думал, у клиентских такое же поведение, как и у серверных.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший