|
Опять и опять про видимость переменных в управляемом приложении... |
☑ |
0
Eastert
07.10.18
✎
11:16
|
Есть обработка, в модуле объекта обработки хочу, чтобы была переменная, которую будут видеть все процедуры и функции этого модуля. То есть разные процедуры модуля объекта вызываются из обработчиков нажатия разных кнопок формы обработки. Делаю, например, так (Начать() вызывается из процедуры ПриОткрытии формы, а Продолжить() по кнопке на форме):
Перем МойМассив Экспорт;
Процедура Начать() Экспорт
МойМассив = Новый Массив();
КонецПроцедуры
Процедура Продолжить() Экспорт
МойМассив.Добавить(1); // вот здесь отладка говорит, что МойМассив - Неопределено!
КонецПроцедуры
|
|
1
palsergeich
07.10.18
✎
12:04
|
Потому что надо директивы компиляции указывать!!
Без директивы - по умолчанию - на сервере
&НаКлиенте Перем МойМассив Экспорт;
&НаКлиенте
Процедура Начать() Экспорт
КонецПроцедуры
&НаКлиенте
Процедура Продолжить() Экспорт
МойМассив.Добавить(1);
КонецПроцедуры
И все будет работать
|
|
2
Eastert
07.10.18
✎
13:10
|
(1) И как же из модуля формы вызвать, допустим, процедуру Начать(), которая на клиенте
|
|
3
Сияющий в темноте
07.10.18
✎
13:17
|
Я этот вопрос разбирал,модуль обработки существует только на сервере и при каждом клиентском вызове он заново компиляется,чтобы это увидеть в конец модуля можно вписать крб записи в журнал или текстовый файл.
когда мы выполняем РеквизитФормыВЗначение с обработкаобьект,модуль заново компиляется.
если из обработки открыты две формы,то каждая будет видеть свой модуль,т.к.их серверные вызовы идут независимо.
|
|
4
Eastert
07.10.18
✎
13:18
|
(3) понятно
|
|
5
palsergeich
07.10.18
✎
13:25
|
(2) В данной трактовке вопроса - никак.
|
|