Отказ от модальности. Баг в типовых конфигурациях
Не буду расписывать про сам отказ от модальности. Думаю если Вы это читаете, то уже знаете о чем речь.
Дело в том, что при рефакторинге некоторых обработок я столкнулся с багом, который, как мне кажется есть почти во всех типовых конфигурациях.
- Описание
- Подробнее
Описание
Предположим, что во внешней обработке на форме в событии «ПриОткрытии» использовалась комбинация «Ответ = Вопрос(…)», которую в результате рефакторинга заменили на «ПоказатьВопрос(Новый ОписаниеОповещения(…), …)». Если эту обработку открыть через «Файл -> Открыть…», то код нормально отрабатывает, вопрос задается и ответ на вопрос обрабатывается. Если же эту обработку поместить в «Дополнительные отчеты и обработки», то в этом случае при открытии обработки вопрос «моргает» (появляется и тут же исчезает). Я не случайно выделил в тексте название события, так как если использовать «ПоказатьВопрос» уже в открытой форме обработки (например, по кнопке), то он работает нормально.
Решил проблему следующим образом:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключитьОбработчикОжидания("ПроцедураОбработчикаОжидания", 1, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПроцедураОбработчикаОжидания()
ОписаниеОповещения = Новый ОписаниеОповещения("ВопросПриОткрытии", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, "Текст вопроса", РежимДиалогаВопрос.ДаНет);
КонецПроцедуры
&НаКлиенте
Процедура ВопросПриОткрытии(РезультатВопроса, ДополнительныеПараметры) Экспорт
// Текст процедуры
КонецПроцедуры