Приложение не может быть закрыто потому что активен модальный диалог 1с
Перейти к содержимому

Приложение не может быть закрыто потому что активен модальный диалог 1с

  • автор:

БП 3.0 приложение не может быть закрыто потому что активен модальный диалог

Быть любимым — это больше, чем быть богатым, потому что быть любимым означает быть счастливым?
Vourhey Melodie, "Быть любимым — это больше, чем быть богатым, потому что быть любимым означает .

Замечательно быть мужчиной. Потому что…
1. Твой телефонный разговор длится 30 сек. 2. В фильмах голыми гораздо чаще показывают женщин. 3.

Модальный диалог
Есть код: import tkinter as tk import tkinter.ttk as ttk class ButtonsFrame(tk.Frame): .

MFC модальный диалог
Здравствуйте. Собственно, такая проблема возникла — MFC приложение, диалоговое, есть главный.

Модальный диалог да/нет
Как вызвать ShowMessage (или как еще) что бы появилось модальное окно с вопросом и кнопками да/нет.

Заменить немодальный диалог на модальный
Всем привет. У меня появилась некоторая проблема, при изучении языка С++Bilder 6.0 Так как я.

Модальный диалог используя ASP либо VBScript
Как, используя ASP, либо VBScript сделать модальный диалог. Если это делать на JavaScript, то в.

Модальность в 1С

Клиентские приложения все чаще используются при помощи веб-клиента, что предъявляет определенные требования к коду. В этой статье я постараюсь рассказать о модальности в 1С — когда и почему следует от нее отказаться и как это сделать.

Общая информация

В начале рассмотрим общие вопросы связанные с модальными окнами в 1С.

Что не так с модальными окнами?

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

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

Когда следует отказаться от модальности?

Разумеется отказ от модальности необходим далеко не всегда.

Во-первых, режим работы интерфейса без использования модальности появился в версии технологической платформы 8.3.3.721 (от 06.09.2013) — следовательно, при использовании предыдущих версий технологической платформы, не нужно задумываться об отказе от модальности.

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

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

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

  • на iPad;
  • через веб-клиент;
  • в режиме сервиса (например, размещенные на 1cfresh.com).

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

Как все поправить?

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

Каждый раз, перед тем как начать переделывать модальный диалог, стоит очень серьезно подумать — не проще ли будет избавиться от этого диалога совсем.

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

Непосредственно при отказе от модальности очень поможет механизм рефакторинга о котором подробно написано в отдельной статье.

Соответствие синхронных методов асинхронным аналогам (на момент написания статьи) можно посмотреть тут.

Практические примеры

В качестве практических примеров рассмотрим основные приемы работы с блокирующими окнами.

Модальные окна в 1С 8.3

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

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

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

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

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

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

Затем, в обязательном порядке потребуется сохранить произведенные в конфигурации изменения, после чего и обновить их. Та ошибка, о которой шла речь ранее, возникает, если установлена отметка о недопустимости использования режима модальности. Эта возможность возникла, начиная с платформы версии 8.3.3.721, релиз которой состоялся еще в сентябре 2013-го года. Другими словами, те пользователи системы, которые до настоящего момента по каким-либо причинам все еще продолжают работать с более старыми версиями платформы, могут не отказываться от использования модальности. Что же касается других версий, что бы устранить всякую возможность появления окна с ошибкой, допускается простая установка посредством использования вкладки «Использовать».

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

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

Модальность и отказ от ее использования

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

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

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

Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку

Периодическая ошибка модального диалога

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

Добрый день, Евгений!

Мы ждем результата проверки и если проблема не повторится в теч. недели — будем разбираться с окном вывода оповещений. возможно с ним есть проблемы..

Добрый день, Евгений!

Спасибо, передала разработчикам.

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

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

Добрый вечер, Наталья!

1. Тонкий клиент.
2. Измененная конфигурация. В механизме оповещений доработок нет.
Подозрения есть на доработки в документе «Событие», а конкретно в модуле формы документа в процедуре «Подключаемый_КомандаОбработкаАтрибутаСобытияОбщая». Чуть позже опишу их смысл, если кратко то они связаны с установкой признака недоступности некоторых полей формы при переводе статуса события в «Завершено». Возможно потребуется их оптимизация, хотя в среде разработки ошибка указанная никогда не проявлялась, жалуются только пользователи из группы доступа «Менеджеры по продажам».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *