Ошибка модального окна 1с

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

Без ответа на запрос такого окна продолжать работу в программе невозможно. Окно блокирует интерфейс, перекрывает работу других окон, и при этом исполнение кодов программы тоже застопорится на том месте, где произошел вызов диалога – программа ждет завершения действия с ним.

Планшет

Приглашаем на
бесплатный вебинар!

06 июня в 11:00 мск

1 час

Диалоги, обычно, не вызывают проблем в режиме запуска тонкого и толстого клиента, но проблемы могут возникнуть при работе с веб-клиентом. Это связано с тем, что такие же системные элементы в Интернете используются как рекламные носители, и зачастую в настройках браузера пользователи показ их отключают. Соответственно, их работа блокируется и в программе, работающей через веб-браузер. Поэтому работая с 1С через веб-клиент или на мобильной платформе, надо не забывать выполнять дополнительную настройку браузера и помнить, что мобильный браузер вообще не поддерживает всплывающие сообщения. Сразу уточним, что работа с ошибками требует некоторых знаний в предметной области. И если вы в себе не уверены, обратитесь к нашим специалистам по сопровождению и доработке программ 1С. Мы с радостью вам поможем!

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

Такая ошибка начала появляться после перехода 1С на новый интерфейс платформы 1С 8.3 – «Такси». Это связано с тем, что в ней разработчиками была включена работа с окнами, но без режима модальности.

Рис.1 Предупреждение
Рис.1 Предупреждение

Откроем информационную базу в режиме «Конфигуратор» и посмотрим свойства нашей конфигурации, нажав правой кнопкой мышки и выбрав команду «Свойства». Прокрутив линейку ниже, мы видим раздел «Совместимость», где находится интересующий нас параметр режима и перечислены варианты – «Использовать/Использовать с предупреждением/Не использовать».

Рис.2 Выбор режима
Рис.2 Выбор режима

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

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

Рис.3 Служебное сообщение
Рис.3 Служебное сообщение

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

Отказ от модальности

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

Поэтому (и чтобы снять проблемы, описанные выше) было принято решение о ликвидации всплывающих диалогов без ограничения функциональности решений. При этом сообщения в новом режиме работы программы появляются в пределах родительского окна, а не как раньше – в модальном. Хотя оно по-прежнему блокирует весь интерфейс.

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

Содержание:

1.       Где можно увидеть такой текст сообщения о том, что использование модальных окон запрещено и что это значит?

2.       Изменение настройки использования модального режима окна в конфигураторе

3.       Изменение программного кода для открытия модального окна

1.      Где можно увидеть текст сообщения о том, что использование модальных окон запрещено и что это значит?

Обычно, текст «Использование модальных окон в данном режиме запрещено» можно увидеть в составе программной ошибки при работе в пользовательском интерфейсе на последних версиях платформы 1С.

1С высокими темпами двигается в WEB. А WEB, в свою очередь, имеет свои ограничения и прикладные моменты, требующие уважения. Так в интернет при работе в браузере назойливая реклама плотно засела во всплывающих окнах. Разработчикам браузеров этот метод работы с пользователями известен, поэтому, в подавляющем большинстве в настройках браузеров всплывающие окна по умолчанию отключены. Помимо этого, часть браузеров вообще не поддерживают всплывающие окна.

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

И этот факт мог бы легко остаться незамеченным, вызывая некорректную работу 1С в WEB, если бы не забота разработчиков 1С и назидательное напоминание о том, что при разработке программных интерфейсов необходимо учитывать среду использования создаваемых программ.

Начиная с версии 8.3.3.721 (06.09.2013) появилась настройка, доступная через конфигуратор, «Режим использования модальности». По умолчанию значение этой настройки «Не использовать». Подобный шаг информирует разработчиков прикладных решений 1С:Предприятие о том, что не везде программа будет вести себя корректно, и что необходимо обеспечить ее корректное поведение не только для работы в интерфейсе 1С, но и в других местах их потенциального использования для открытия модальных окон.

То есть программная ошибка в данном случае – это предупреждение. А предупреждения всегда оставляют право выбора. Поэтому варианты реагирования на контекст «Использование модальных окон в данном режиме запрещено» могут быть следующими:

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

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

2. Изменение настройки использования модального режима окна в конфигураторе

Для того чтобы исключить появление ошибки программы 1С про модальный режим окна, если написанная программа не планируется к использованию в WEB, достаточно установить значение «Использовать» или «Использовать с предупреждениями» у настройки «Режим использования модальности».

Найти эту настройку можно в свойствах конфигурации в разделе «Совместимость» (правая кнопка на «Корне» конфигурации -> Свойства -> Последний раздел свойств.

Путь настройки для разрешения открытия модальных окон

Путь настройки для разрешения открытия модальных окон

Режим использования модальности

Режим использования модальности — Использовать с предупреждениями  

3.      Изменение программного кода для открытия модального окна

Есть несколько способов избавления от модальности в разрабатываемой конфигурации. Среди них:

1. Проверка конфигурации -> Логическая проверка -> Расширенная проверка -> Поиск использования модальности (для ручного исправления);

2. Рефакторинг -> Модальные вызовы -> Найти модальные вызовы модуля (проверка одного конкретного модуля для ручного исправления);

3. Конфигурация -> Рефакторинг -> Анализ модальных вызовов конфигурации (проверка всей конфигурации с анализом возможности автоматического исправления).

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

 модальные методы и их немодальные аналоги

Специалист компании «Кодерлайн»

Сергей Пушкин

Использование модальных окон в данном режиме запрещено (1С 8.3)

«Использование модальных окон в данном режиме запрещено» — такая ошибка беспокоит пользователей 1С с приходом нового интерфейса платформы 1С 8.3 — “такси”.

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

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

В открытой конфигурации вызовите контекстное меню, нажав на корень конфигурации правой кнопкой, выбрав «Свойства»:

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

После этого сохраните и примените изменения, нажав клавишу «F7».

Уже более 10 000 компаний работают
в облачной 1С от 42Clouds

— Консультация по 1С Бесплатно!

— Поддержка 24/7 по техническим вопросам: в чате, по телефону, по почте

— Все типовые конфигурации онлайн, доступ через RDP, Remote App, Web

 +4 

   

Распечатать

1С 8.3 : Использование модальных окон в данном режиме запрещено! Модальные окна не работают, как быть?

В конфигураторе в свойства конфигурации, есть параметр «Режим использования модальности»

Режим использования модальности

Если установить Не использовать, то — принципе весь код, который после ОткрытьФормуМодально() Вопрос(), Предупреждение(), Выборов и диалогов открытия-сохранения станет работать с ошибками!


Рассмотрим пример с Использовать:

Код 1C v 8.3

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

В режиме Предприятие получаем

Тест модального окна Вопрос

Если мы поставим Режим использования модальности = Не использовать то получим ошибку: Использование модальных окон в данном режиме запрещено

получим ошибку: Использование модальных окон в данном режиме запрещено

Теперь код нужно писать по новому:

Код 1C v 8.3

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

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

в результате

Почему 1С решила отказаться от использования модальных окон ?

В наш век развития мобильных технологий все идет к тому — что скоро все будут работать на планшетах и телефонах. 1С сделала для этого «Web Клиент» и «Мобильное приложение».  И чтобы успешно двигаться вперед нужно решать такие проблемы как, блокировка всплывающих окон. Ведь даже обычные браузеры по умолчанию блокируют модальные (всплывающие) окна!

Почему возникает ошибка «Использование модальных окон в данном режиме запрещено»?

Если в процессе выполнения уроков у вас появилась такая ошибка — исправить её очень легко.

Вернитесь в конфигуратор и выберите пункт меню «Конфигурация» -> «Открыть конфигурацию»:

В открывшемся окне нажмите правой кнопкой на пункте «Конфигурация» и выберите из раскрывшегося меню пункт «Свойства»:

Откроется окно со свойствами конфигурации (справа):

Пролистайте его в самый низ и найдите там пункт «Режим использования модальности»:

Установите его значение в «Использовать»:

Внимание! Обратите внимание, что если вы используете платформу 1С, отличную от той, что мы скачивали в первом уроке (более поздней версии), то у вас также будет присутствовать поле «Режим использования синхронных вызовов…». Его также нужно установить в «Использовать».

Наконец, выберите пункт меню «Конфигурация» -> «Сохранить конфигурацию»:

Готово! Теперь ошибки больше не возникнет.

Пояснения ниже — для тех кому интересно, что мы сделали.

Мы включили режим использования модальности в нашей конфигурации. По умолчанию этот режим выключен и это не позволяет нам использовать такие команды как ВвестиЧисло, ВвестиСтроку, ВвестиДату, ОткрытьЗначение.

Дело в том, что эти команды относятся к модальным. Их вызов приводит к тому, что перед пользователем появляется окно (например, для ввода информации), которое блокирует возможность работы с программой, пока окно не закроется.

А так как наличие таких окон крайне нежелательно при работе с 1С через веб-браузер, то при разработке новых конфигураций режим модальности по умолчанию выключен.

Мы же можем смело включать его, так как пишем учебные примеры, не рассчитанные на работу в интернете.

С уважением,
Владимир Милькин

Понравилась статья? Поделить с друзьями:
  • Ошибка модуля wifi атол 91ф
  • Ошибка мода пипл плейграунд
  • Ошибка модуля wifi атол 30ф
  • Ошибка мода викед вимс
  • Ошибка модуля sam