|
Объясните новичку разницу между процедурами "ПриОткрытии, ПередОткрытием" и модулем формы | ☑ | ||
---|---|---|---|---|
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) а, ок, думал, у клиентских такое же поведение, как и у серверных.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |