0
Steini
18.09.15
✎
14:11
|
Платформа 8.2.19.130 обычные формы.
Есть обработчик ПередСохранениемЗначений(Отказ), в котором программист может настроить сохранение особых пользовательских настроек. В СП сказано, что можно отключить сохранение в каком-нибудь случае, установив Отказ = Истина.
Однако, если форма вызвана модально, то при установке Отказ = Истина в этом обработчике, Отказ устанавливается и во всех последующих обработчиках, и форма не закроется никогда.
Тут как бы СП не наврал, значения действительно не сохраняются, но и работать дальше невозможно =)
Опытные дядьки, подскажите, пожалуйста, это старый баг или в этом какая-то особенная логика (в том, что в модальном случае переменная Отказ - это не локальная переменная обработчика ПередСохранениемЗначений, а глобальная переменная, которая "путешествует" во все последующие обработчики)?
|
|
5
Steini
18.09.15
✎
14:44
|
В немодальном случае, однако, такое поведение тоже повторяется.
С (1) в том, что это логично, не соглашусь.
Остается: либо баг, на который всем пофигу, либо некорректная формулировка в СП (в СП как раз написано так, как должно быть по логике).
Способы обхода этой неприятной вещи - использовать функции СохранитьЗначение() и ВосстановитьЗначение()
Некошерность способа заключается в том, что галочку "Сохранять значения" убирать нельзя, и получается, что форма по своему стандартному механизму сохраняет что-то, а Вы потом поверх этой работы варварски переписываете восстановленные значения в указанных выше обработчиках так, как нужно.
|
|