Внедрение нового интерфейса платформы 1С 8.3 — "такси" — привело к тому, что пользователи и программисты столкнулись с ошибкой следующего содержания: "Использование модальных окон в данном режиме запрещено".
Рис. 1
Разработчики технологической платформы 1С стремятся преуспеть за мировыми тенденциями путем приведения программного обеспечения в соответствие с мировыми стандартами. Последнее же неминуемо приводит к единому интерфейсу, близкому к веб-страницам.
Модальные и всплывающие окна, будучи признаком дурного тона, уже давно были признаны недопустимыми при разработке софта. В сознании пользователей твердо укоренилась потребность работы "в одном окне".
Разработчики платформы 1С предприняли попытку приобщить разработчиков прикладных решений к работе "по-новому". С внедрением нового интерфейса "такси", они дополнили новую платформу новой функцией — "режим использование модальности".
С этой целью зайдите в систему в режим конфигуратор, откройте конфигурацию:
После этого нажатием на корень конфигурации правой кнопкой мыши откройте контекстное меню, выберите "Свойства":
Рис. 3
В открывшихся свойствах конфигурации во вкладках найдите "Режим использования модальности", в нем выберите "Использовать":
Рис. 4
Сохраните и примените совершенные изменения нажатием клавиши "F7".
Если в процессе выполнения уроков у вас появилась такая ошибка - исправить её очень легко.
Вернитесь в конфигуратор и выберите пункт меню "Конфигурация" -> "Открыть конфигурацию":
В открывшемся окне нажмите правой кнопкой на пункте "Конфигурация" и выберите из раскрывшегося меню пункт "Свойства":
Откроется окно со свойствами конфигурации (справа):
Пролистайте его в самый низ и найдите там пункт "Режим использования модальности":
Установите его значение в "Использовать" :
Внимание! Обратите внимание, что если вы используете платформу 1С, отличную от той, что мы скачивали в первом уроке (более поздней версии), то у вас также будет присутствовать поле "Режим использования синхронных вызовов...". Его также нужно установить в "Использовать".
Наконец, выберите пункт меню "Конфигурация" -> "Сохранить конфигурацию":
Готово! Теперь ошибки больше не возникнет.
Пояснения ниже - для тех кому интересно, что мы сделали.
Мы включили режим использования модальности в нашей конфигурации. По умолчанию этот режим выключен и это не позволяет нам использовать такие команды как ВвестиЧисло, ВвестиСтроку, ВвестиДату, ОткрытьЗначение.
Дело в том, что эти команды относятся к модальным. Их вызов приводит к тому, что перед пользователем появляется окно (например, для ввода информации), которое блокирует возможность работы с программой, пока окно не закроется.
А так как наличие таких окон крайне нежелательно при работе с 1С через веб-браузер, то при разработке новых конфигураций режим модальности по умолчанию выключен.
Мы же можем смело включать его, так как пишем учебные примеры, не рассчитанные на работу в интернете.
В Синтаксис-Помощнике для этих команд указано, что в случае, если для конфигурации свойство РежимИспользованияМодальности установлено в НеИспользовать , то следует использовать в программном коде другие команды, такие как ПоказатьВопрос(), ПоказатьПредупреждение() , ПоказатьВводЧисла():
Для работы с этими ситуациями в программе 1С 8.3 предусмотрен новый системный объект «ОписаниеОповещения», который используется для описания вызова процедуры программного модуля при наступлении какого-либо ожидаемого события, такого как закрытие формы или немодального диалога:
Это взгляд на проблему «изнутри» для тех, кто хочет разобраться с первопричиной. В первую очередь для программистов 1С. Как в этой ситуации обычным пользователям исправить ошибку без проработки программного кода? Есть очень простой метод.
Шаг 1. Завершить работу:
Шаг 2. Возвращаемся в стартовое меню для запуска конфигурации. Выбираем пункт меню «Конфигурация»:
Шаг 3. Открываем «Конфигуратор»: на верхней панели находим кнопку «Конфигурация», и в предложенном списке выбираем меню «Открыть конфигурацию»:
Шаг 4. Устанавливаем курсор на Конфигурацию и по правой кнопке мышки вызываем контекстное меню, в котором выбираем пункт «Свойства»:
Шаг 5. Открываем форму «Свойства»:
Шаг 6. Находим строчку «Режим использования модальности” (внизу списка):
По умолчанию в программе 1С 8.3 стоит значение «Не использовать». Переводим значение «Не использовать» в значение « Использовать»:
Результат:
Если ошибка «Использование модальных окон в данном режиме запрещено» в 1С 8.3 ушла, то можно работать дальше. Обычно, так и происходит.
Но если ошибка модальности в 1С осталась после выполнения всех этих действий, то следует обратиться к программистам, обслуживающим и поддерживающим вашу программу 1С.
Как работать в интерфейсе “Такси”, как сделать настройку рабочего места “под себя”, настройка панели навигации Избранное, как осуществлять полнотекстовый поиск, приемы работы с журналами, кнопка “выбора” в документах, передача ссылок на документы, верификация и другие возможности в новом интерфейсе – все это можно узнать из нашего видео:
Более подробно о том, как правильно и быстро организовать навигацию по программе 1С 8.3, используя новый интерфейс ТАКСИ, о новых возможностях в использовании привычных инструментов, таких как встроенный калькулятор, календарь, сравнение файлов, передача ссылок на документы коллегам рассмотрено на нашем курсе ““
14
Для принудительного запуска предприятия в Обычном или Управляемом приложении используются следующие ключи: /RunModeOrdinaryApplication запуск толстого клиента в обычном режиме, несмотря на настройки конфигурации и...
3
Нужно чтобы пользователи не могли менять настроенный для них интерфейс! Решение: Для отключения нужно в правах доступа у корневого элемента конфигурации убрать право " Сохранение данных пользователя ". ...
2
В текущей работе пользователь обычно открывает несколько объектов. Это может быть документ, справочник, отчет и т.д. В предыдущем интерфейсе не было проблем быстро найти открытый объект и актуализировать его для...
2
В прошлой статье: Установка адресного классификатора (KLADR) в 1С я рассказал Вам что такое Кладр и как его загрузить в 1С обычные формы (8.0-8.2). В данной статье я расскажу как загрузить Адресный классификатор (KLADR) в...
2
Часто разрабатывая некую конфигурацию, пользователи хотят прикреплять к элементу справочника фото и чтобы они хранились в базе данных. В этой статье я расскажу как к справочнику объекты строительства подключить...
«Использование модальных окон в данном режиме запрещено» — такая ошибка сейчас начинает беспокоить пользователей и программистов 1С с приходом нового интерфейса платформы 1С 8.3 — « «.
Разработчики технологической платформы 1С идут в ногу со временем, стандартизируя своё решение под мировые стандарты разработки программного обеспечения. Все стандарты так или иначе сводятся к единому интерфейсу, близкому к веб-страницам.
Модальные и всплывающие (pop-up) окна считаются плохим тоном и уже давно перестали быть нормальным при разработке софта. Пользователи привыкли к работе «в одном окне».
Особенно часто мы видим ошибку модальности у следующих методов 1С:
Разработчики платформы 1С 8 с выходом нового интерфейса «такси» приняли верное решение — попытаться переучить разработчиков прикладных решений на новый лад. Они включили в новую платформу возможность — «режим использования модальности».
Если нет времени разбираться и нужно быстро решить задачу, предлагаем простое, но не совсем правильное решение. Для быстрого исправления ошибки достаточно сменить режим модальности в свойствах конфигурации.
Для этого зайдите в систему в режиме , откройте конфигурацию:
В открытой конфигурации вызовите контекстное меню, нажав на корень конфигурации правой кнопкой, выбрав «Свойства»:
Получите 267 видеоуроков по 1С бесплатно:
Откроются свойства конфигурации, где в подвале есть интересующее нас свойство — «Режим использования модальности», выберите режим «Использовать»:
После этого сохраните и примените изменения, нажав клавишу «F7».
Правильный способ решения этой проблемы — доработать конфигурацию или внешнюю обработку под новые требования.
Предупреждение, вопрос, диалоговые окна и другие модальные окна — всё это необходимо переписывать на новый лад.
Встроенные операторы, которые вызывали модальные окна, необходимо заменить на дублирующие функции.
Например:
При этом появился специализированный объект — ОписаниеОпевещения.
Пример замены:
Строка = "" ; ВвестиСтроку(Строка, "Введите строковое значение" ) Сообщить("Вы ввели " + Строка) ;
Необходимо заменить на:
Строка = "" ; ОписаниеОповещения = Новый ОписаниеОповещения("ТестовыйВводСтроки" , ЭтаФорма) ; ПоказатьВводСтроки(ОписаниеОповещения, Строка, "Введите строковое значение" ) ;
При этом добавить подобную процедуру на клиенте, которая отработает, когда значение будет введено пользователем:
&НаКлиенте Процедура ТестовыйВводСтроки(ПолученноеЗначение, ПереданныеПараметры) Экспорт Сообщить("Вы ввели " + Строка) ; КонецПроцедурыФормы, которые разрабатываются внутри конфигурации, открываются точно так же. Достаточно заменить метод «ОткрытьФормуМодально» на «ОткрытьФорму», прописав описание оповещения и нужную для него новую процедуру.
Чтобы открывающейся формой закрыть доступ к вызываемой форме, достаточно в свойстве формы указать в свойстве «РежимОткрытияОкна» значение «Блокировать окно владельца»: