Войти
Android, Windows, Apple, Ликбез. Социальные сети. Драйверы
  • Японские телефоны Новый японский смартфон
  • Lenovo G500S: характеристики, основные особенности
  • Определяем серию продукта видеокарт Nvidia Характеристики карты nvidia 9800 gt
  • А конкуренты у смартфона есть
  • Что такое расширение файла TRZ?
  • Не работает динамик в "айфоне"
  • Как в 1с закрыть модальное окно автоматически. Почему возникает ошибка "Использование модальных окон в данном режиме запрещено"? Правильное решение задачи

    Как в 1с закрыть модальное окно автоматически. Почему возникает ошибка

    В Синтаксис-Помощнике для этих команд указано, что в случае, если для конфигурации свойство РежимИспользованияМодальности установлено в НеИспользовать , то следует использовать в программном коде другие команды, такие как ПоказатьВопрос(), ПоказатьПредупреждение() , ПоказатьВводЧисла():

    Для работы с этими ситуациями в программе 1С 8.3 предусмотрен новый системный объект «ОписаниеОповещения», который используется для описания вызова процедуры программного модуля при наступлении какого-либо ожидаемого события, такого как закрытие формы или немодального диалога:

    Это взгляд на проблему «изнутри» для тех, кто хочет разобраться с первопричиной. В первую очередь для программистов 1С. Как в этой ситуации обычным пользователям исправить ошибку без проработки программного кода? Есть очень простой метод.

    Инструкция по исправлению ошибки для обычных пользователей

    Шаг 1. Завершить работу:

    Шаг 2. Возвращаемся в стартовое меню для запуска конфигурации. Выбираем пункт меню «Конфигурация»:

    Шаг 3. Открываем «Конфигуратор»: на верхней панели находим кнопку «Конфигурация», и в предложенном списке выбираем меню «Открыть конфигурацию»:

    Шаг 4. Устанавливаем курсор на Конфигурацию и по правой кнопке мышки вызываем контекстное меню, в котором выбираем пункт «Свойства»:

    Шаг 5. Открываем форму «Свойства»:

    Шаг 6. Находим строчку «Режим использования модальности” (внизу списка):

    По умолчанию в программе 1С 8.3 стоит значение «Не использовать». Переводим значение «Не использовать» в значение « Использовать»:

    Результат:

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

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

    Как работать в интерфейсе “Такси”, как сделать настройку рабочего места “под себя”, настройка панели навигации Избранное, как осуществлять полнотекстовый поиск, приемы работы с журналами, кнопка “выбора” в документах, передача ссылок на документы, верификация и другие возможности в новом интерфейсе – все это можно узнать из нашего видео:

    Более подробно о том, как правильно и быстро организовать навигацию по программе 1С 8.3, используя новый интерфейс ТАКСИ, о новых возможностях в использовании привычных инструментов, таких как встроенный калькулятор, календарь, сравнение файлов, передача ссылок на документы коллегам рассмотрено на нашем курсе ““


    Поставьте вашу оценку этой статье:

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

    Разработчики технологической платформы 1С идут в ногу со временем, стандартизируя своё решение под мировые стандарты разработки программного обеспечения. Все стандарты так или иначе сводятся к единому интерфейсу, близкому к веб-страницам.

    Модальные и всплывающие (pop-up) окна считаются плохим тоном и уже давно перестали быть нормальным при разработке софта. Пользователи привыкли к работе «в одном окне».

    Особенно часто мы видим ошибку модальности у следующих методов 1С:

    • Вопрос;
    • Предупреждение;
    • ОткрытьЗначение.

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

    Быстрое исправление проблемы

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

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

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

    Получите 267 видеоуроков по 1С бесплатно:

    Откроются свойства конфигурации, где в подвале есть интересующее нас свойство — «Режим использования модальности», выберите режим «Использовать»:

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

    Правильное решение задачи

    Правильный способ решения этой проблемы — доработать конфигурацию или внешнюю обработку под новые требования.

    Предупреждение, вопрос, диалоговые окна и другие модальные окна — всё это необходимо переписывать на новый лад.

    Встроенные операторы, которые вызывали модальные окна, необходимо заменить на дублирующие функции.

    Например:

    • Предупреждение — ПоказатьПредупреждение;
    • Вопрос — ПоказатьВопрос (подробно — );
    • — ПоказатьВводЧисла.

    При этом появился специализированный объект — ОписаниеОпевещения.

    Пример замены:

    Строка = "" ; ВвестиСтроку(Строка, "Введите строковое значение" ) Сообщить("Вы ввели " + Строка) ;

    Необходимо заменить на:

    Строка = "" ; ОписаниеОповещения = Новый ОписаниеОповещения("ТестовыйВводСтроки" , ЭтаФорма) ; ПоказатьВводСтроки(ОписаниеОповещения, Строка, "Введите строковое значение" ) ;

    При этом добавить подобную процедуру на клиенте, которая отработает, когда значение будет введено пользователем:

    &НаКлиенте Процедура ТестовыйВводСтроки(ПолученноеЗначение, ПереданныеПараметры) Экспорт Сообщить("Вы ввели " + Строка) ; КонецПроцедуры

    Формы, которые разрабатываются внутри конфигурации, открываются точно так же. Достаточно заменить метод «ОткрытьФормуМодально» на «ОткрытьФорму», прописав описание оповещения и нужную для него новую процедуру.

    Чтобы открывающейся формой закрыть доступ к вызываемой форме, достаточно в свойстве формы указать в свойстве «РежимОткрытияОкна» значение «Блокировать окно владельца»:

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

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

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

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

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

    Рис.1

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



    Рис.2

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

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



    Рис.3

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

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

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

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

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

    Реализовано в версии 8.3.3.641.

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

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

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

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

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

    В такой ситуации вариант работы интерфейса 1С:Предприятия без использования модальных окон снимает все перечисленные выше проблемы.

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

    В новом режиме работы интерфейса окно, которое раньше было бы модальным, рисуется в пределах родительского окна, и точно так же блокирует весь остальной интерфейс веб-клиента:

    В результате:

    • не происходит открытия новых окон браузера, что повышает производительность и стабильность веб-клиента;
    • во многих случаях дополнительная настройка браузера становится ненужной, так как 1С:Предприятие больше не использует всплывающие окна;
    • любая конфигурация, используя веб-клиент, может работать на iPad и других мобильных устройствах.

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

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

    А значит алгоритм, который раньше являлся одним целым, теперь придётся разделить на две части. Одну, которая заканчивается открытием блокирующего окна, и вторую, которая будет выполнена тогда, когда пользователь закроет это окно. Чтобы система знала, с какого места продолжать исполнение программного кода, блокирующему окну передаётся имя процедуры, которая должна быть выполнена тогда, когда пользователь закроет это окно.

    Суть этих изменений проще всего увидеть на примере. Старая процедура, открывавшая модальное окно и обрабатывавшая полученные им данные, могла выглядеть так:

    В новом варианте для формы ФормаВводТекста (которая будет открываться в блокирующем окне) нужно установить свойство РежимОткрытияОкна в значение БлокироватьВесьИнтерфейс . Это обеспечит модальность для пользователя:

    А программный код вместо одной процедуры, как раньше, будет содержать уже две процедуры:

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

    Когда пользователь введёт данные и закроет форму, они будут обработаны в указанной нами второй процедуре, в которую мы просто перенесли "старый" код, обрабатывающий полученные данные.

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

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

    Например, ниже показано использование старого метода ВвестиЗначение() и его нового метода-дублёра ПоказатьВводЗначения() :

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

    Поэтому все такие системные диалоги платформы также переведены на немодальный вариант работы.

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

    Внедрение нового интерфейса платформы 1С 8.3 — "такси" — привело к тому, что пользователи и программисты столкнулись с ошибкой следующего содержания: "Использование модальных окон в данном режиме запрещено".
    Рис. 1

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

    Модальные и всплывающие окна, будучи признаком дурного тона, уже давно были признаны недопустимыми при разработке софта. В сознании пользователей твердо укоренилась потребность работы "в одном окне".

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

    Быстрое исправление проблемы

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

    С этой целью зайдите в систему в режим конфигуратор, откройте конфигурацию:

    После этого нажатием на корень конфигурации правой кнопкой мыши откройте контекстное меню, выберите "Свойства":


    Рис. 3

    В открывшихся свойствах конфигурации во вкладках найдите "Режим использования модальности", в нем выберите "Использовать":


    Рис. 4

    Сохраните и примените совершенные изменения нажатием клавиши "F7".