Ошибка «Использование модальных окон в данном режиме запрещено» в 1С 8.3

use modal windows

Данная ошибка на платформе 1С 8.2 практически не встречалась, за некоторыми исключениями. Но фирма «1С» не стоит на месте и разработчики технологической платформы  модернизируют свой интерфейс, который все больше и больше начинает быть похожим на web страницу.

Крупнейшие поисковые системы, такие как Google и Yandex отрицательно относятся к сайтам  с Pop-up баннерами, ранжируя из в самый низ. Так и 1С решила избавляться от всплывающих и модальных окон, продвигая принцип работы с приложением в одном окне. Поэтому пользователи, работающие в интерфейсе ТАКСИ, используя внешние обработки или отчеты постоянно сталкиваются с данной проблемой.

Обычно ошибка, связанная с модальностью встречается у методов: Предупреждение, Вопрос, ОткрытьЗначение.

Как бы разработчики не пытались переучить программистов работать по новому, но сделали маленькую поблажку и включили в платформу возможность изменения режима модальности. Давайте рассмотри один способ быстрый, но не очень корректный и другой, оптимальный с точки зрения хорошего тона написания программного кода.

1.Быстрый способ изменения режима модальности.

В случае, когда нет времени ждать и нужно все было сделать еще «вчера» есть способ, для этого  просто напросто нужно зайти в режим конфигуратора. Правой кнопкой мыши нажать на корень конфигурации и выбрать в появившемся меню «Свойства».

properties

Откроются свойства и немного пролистав вниз, в подпункте «совместимость» вы и можете изменить режим модальности. После чего ошибки будут пропускаться.

modal type

 2.Верный способ изменения режима модальности.

Верный способ заключается в изменении самой конфигурации. Да, да не хочется, а придется. Необходимо использовать в отчетах и обработках немного другие операторы, например:

  • Не Вопрос(), а ПоказатьВопрос()
  • Не Предупреждение(), а ПоказатьПредупреждение()  

На платформе 8.3 необходимо использовать новый объект — ОписаниеОпевещения()

Пример использования:

 &НаКлиенте
Процедура ПравильноеНаписание(Команда)
	Оповещение = Новый ОписаниеОповещения("ВводимаяСтрока", ЭтотОбъект);
	ВопросТекст= "Сегодня пойдем гулять?";
	ПоказатьВопрос(Оповещение, ВопросТекст, РежимДиалогаВопрос.ДаНет);
КонецПроцедуры

&НаКлиенте 
Процедура ВводимаяСтрока(Значение, ДополнительныеПараметры) Экспорт 
     Если Значение = КодВозвратаДиалога.Да Тогда
      Сообщить("Вы ответили положительно");
     КонецЕсли;
КонецПроцедуры  
Поделитесь своим мнением

Свежие записи
Советы и помощь программиста в 1с © 2018 ·   Войти   · Наверх