Что такое модальный диалог в 1с и как его закрыть
Есть главное окно программы, на основе диалога.
Есть второй поток, который принимает байты из сокета и шлет сообщения (через SendMessage) главному окну. При закрытии сокета шлется специальное сообщение, при котором весь интерфейс главного окна блокируется.
Есть форма ввода данных на основе модального диалога.
Ситуация: вводим данные через модальный диалог, сеть обрывается, интерфейс главного окна блокируется. Но модальное окно остается открытым. Вопрос: как правильно его закрыть?
Re: Закрытие модального диалога из основного окна
| От: | Carc | https://vk.com/gosha_mazov |
| Дата: | 10.06.10 19:51 | |
| Оценка: | 2 (1) | |
Здравствуйте, licch, Вы писали:
L>Есть главное окно программы, на основе диалога.
L>Есть второй поток, который принимает байты из сокета и шлет сообщения (через SendMessage) главному окну. При закрытии сокета шлется специальное сообщение, при котором весь интерфейс главного окна блокируется.
L>Есть форма ввода данных на основе модального диалога.
L>Ситуация: вводим данные через модальный диалог, сеть обрывается, интерфейс главного окна блокируется. Но модальное окно остается открытым. Вопрос: как правильно его закрыть?
Если диалог модальный, то можно отследить состояние висит он еще или нет.
virtual CFrameWnd::BeginModalState и EndModalState — соответственно вход и выход из модального диалога. Ну а если сеть упала то можно диалогу отослать сообщение WM_CLOSE.
Re: Закрытие модального диалога из основного окна
| От: | PanychY | |
| Дата: | 10.06.10 20:09 | |
| Оценка: | 2 (1) +1 | |
Здравствуйте, licch, Вы писали:
L>Ситуация: вводим данные через модальный диалог, сеть обрывается, интерфейс главного окна блокируется. Но модальное окно остается открытым. Вопрос: как правильно его закрыть?
Послать ему WM_USER+x сообщение, а ещё лучше WM_COMMAND, а тот пусть себя правильно закрывает(со всяким зачистками) стандартным способом — через EndDialog. Только не забудьте предусмотреть реакцию создателя диалога на такое закрытие.
Что такое модальный диалог в 1с и как его закрыть
Надо принудительно завершить работу, использую ЗавершитьРаботуСистемы()
не работает, прикол в том что при запуске 1С появляется собственная общая форма в которой происходит ввод логина и пароля (не та что стандартная в 1С) прикол в том что это окно запускается при начале работы системы и завершить работу системы я пытаюсь уже в этой общей форме которая открыта модально.
ЭтаФорма.Закрыть() ?
ну тогда я попаду в конфигуратор, а мне надо завершить работу системы
тьфу не в конфигуратор а в платфомру
убей процесс
я так подозреваю что тебе мешает завершить работу системы модальное окно. перед завершением его нужно закрыть.
напиши дополнительную обработку из одной процедуры которая закрывает твою форму а потом тушит систему и вызывай ее
(5) я подозреваю, что юзер запускает ярлык, выскакивает окно ввода пароля и юзер уходит курить.
(5) +или просто в общем модуле если не жалко
(0) сделай обработку ожидания в собственной общей форме, открытой модально
(8) обработку ожидания чего? ну дождались и дальше что? у него система не завершается из модальной формы
Что такое модальный диалог в 1с и как его закрыть
Все что вы делаете вы делаете на свой страх и риск. Я могу только рекомендовать и не претендую на 100% решение, многое зависит от вашего окружения и прочих настроек. О которых я могу и не догадываться. Дополнение материалов и исправление ошибок приветствуется.
Закрыть модальное окно в 1С полезные комбинации
К сожалению, часто возникают обращения с вопросом: «1С висит ни на что не реагирует». Кто знает как вызвать «диспетчер задач» спасается тем что просто «убивает процесс 1С«, но таких продвинутых немного. Да и неправильно этой. По этому как-то нашли этот список и теперь он, как и многие мои заметки будет жить здесь.
Сам рецепт «многоходовочка».
Сначала надо вызвать модальное окно:
- Alt + Space вызов системного меню приложения или модального диалога
А вотом уже его закрыть:
- Alt + F4 закрыть активное свободное окно, модальный диалог или приложение
Горячие клавиши глобальных действий
Горячие клавиши общих действий 1С
Сочетания клавиш при работе в окнах приложения:
- Alt+1 переход в панель разделов
- Alt+2 переход в панель навигации
- Alt+3 переход в панель действий
- Alt+4 переход в панель навигации в режиме открытия окон «В закладках»
- Alt+9 переход в панель истории
- Esc переход в окно формы после перехода в панели по
- Alt + Ctrl + Shift скрыть/показать панели разделов, навигации и действий
- Tab (Shift + Tab) переход между панелями и окном формы (при этом из формы по Tab выйти нельзя)
Горячие клавиши работы со справочниками 1С
Горячие клавиши работы с отчетами 1С
Горячие клавиши работы с табличным документом 1С
- F2 переключение режима редактирования/ввода в ячейке
- Home / End перейти в начало / конец строки
- Ctrl + Home (End) перейти в начало (конец) текста
- F4 выбор значения в ячейке
- Shift+F4 очистка значения в ячейке
- Ctrl + Shift + F4 открытие для детального просмотра объект выбираемый в поле ввода Горячие клавиши управление окнами 1С
- Alt + F4 закрыть активное свободное окно, модальный диалог или приложение
- Ctrl + F4 закрыть активное обычное окно
- Shift + Esc закрыть активное окно
- Ctrl + Tab (Ctrl + F6) активировать следующее обычное окно
- Ctrl + Shift + Tab (Ctrl + Shift + F6) активировать предыдущее обычное окно
- Alt + Space вызов системного меню приложения или модального диалога
- F10 активировать главное меню
- Shift + F10 вызов контекстного меню
- Alt + Space вызов системного меню
- Esc вернуть активность обычному окну
- Alt + Shift + R восстановить положение окна
- сочетания клавишь
- 1С:Предприятие
- 1С
- модальное окно
- Назад
- Вперед
Благодарю вас за вашу поддержку и доверие. Нажмите кнопку «Пожертвовать» и помогите мне продолжать делиться ценными знаниями и информацией с миром. Посетите страницу >> Поддержите проект.
- Решено: Не удалось произвести подключение к информационной базе
- Как открыть mxl от 1С без установки 1С
- Консольный редактор nano
Модальные окна в 1С 8.3
Ставшие для пользователей различных интерактивных компьютерных систем привычными диалоговые окна достаточно часто появляются и в процессе работы хорошо известной многим системы 1С, в процессе выполнения самых разнообразных операций и действий. От оператора они требуют ввести носящие определенный характер данные, к которым, например, могут относиться определенные значения, ответ на заданные вопросы, выбор файла и т.п. Кроме того, окно может и просто выдавать оператору предупреждающее сообщение. Такие окна также носят название модальных.
Не ответив на запрос, появившийся в подобном окне, невозможно дальше продолжать работать во всей программе. Она полностью блокирует интерфейс, и в результате работа других окон также перекрывается. Более того, исполнение программных кодов аналогичным образом будет остановлено как раз в той точке, где имел место вызов диалога. И такая нештатная ситуация продолжится вплоть до завершения действия с окном, программа будет находиться в режиме ожидания этого.
Как правило, если запустить тонкий и толстый клиенты, диалоги не становятся причиной проблем, возникающих в процессе работы с системы. Однако, они вполне могут появиться в случаях работы пользователя с интернет-клиентом. Причиной может стать то, что подобные же системные элементы используются в интернете в качестве рекламных носителей. Поэтому очень часто пользователи системы не отключают их показы в настройках установленных на своих компьютерах браузеров. И соответственно, производится блокировка их функционирования в работающей через интернет-браузер программе. Вот почему, в случае работы через 1С посредством веб-клиента либо на платформе одного из совместимых мобильных устройств, не следует забывать о выполнении дополнительной настойки браузера, установленного на своем устройстве. Необходимо также помнить, что в случаях работы с мобильным браузером всплывающие сообщения вообще не поддерживаются.
Устранение ошибки «Использование в данном режиме модальных окон запрещено» в системе 1С
Эта разновидность ошибки стала возникать после того, как 1С была полностью переведена на новый интерфейс, относящийся к платформе 1С 8.3 – «Такси». Связано это с тем, что разработчиками в ней была включена возможность работы с окнами, однако, она была реализована без режима модальности.
После того, как в режиме «Конфигуратор» открывается информационная база системы, нажимаем правую кнопку мышки, а затем выбираем команду «Свойства». Это позволяет увидеть все свойства конфигурации установленной на компьютере системы. После прокрутки линейки вниз, перед пользователем появляется раздел «Совместимость», в пределах поля которого и расположен тот параметр режима, что его в первую очередь интересует. Кроме того, там перечисляются и возможные варианты в плане выбора: их в общей сложности три, и это может быть «Использовать», «Использовать с предупреждением», либо же «Не использовать».

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

Используемые через веб-клиент приложения, как и применяемые в облаке и на iPad (к примеру, «1cfresh.com» и др.), в данном режиме совершенно не функционируют. Все новые разновидности конфигураций использует в процессе своей работы интерфейса только безмодальный режим и ничего другого.
Модальность и отказ от ее использования
Оказывая поддержку нынешним общемировым тенденциям и четко следуя им, разработчики программы 1С стремятся сделать ее пользовательский интерфейс максимально приближенным к веб-образцам с последующим приведением к единому стандарту. Благодаря этому, пользователи уже в не слишком далеком будущем получат возможность работать с привычным им внешним интерфейсом лишь в одном окне.
Именно с целью полного и эффективного снятия описанных выше проблем разработчиками и было принято решение относительно удаления из системы любых всплывающих диалогов, причем, функциональность решений никаким образом не ограничивалась. Следует отметить, что в новом рабочем режиме данной программы сообщения возникают совершенно не так, как раньше (то есть, в модальном окне), а в пределах именно родительского окна. Правда, блокировка интерфейса при этом так и не была преодолена и поэтому продолжает в настоящее время действовать в полном объеме.
Другими словами, данное новшество совершенно освобождает пользователей от неприятной и довольно утомительной необходимости настраивать браузер дополнительно. Кроме этого, оно стабилизирует работу интернет-клиента, одновременно достаточно существенно повышая его производительность. И наконец, поскольку сейчас отсутствует какая-либо необходимость открытия всплывающих окон, возможно использование на любом устройстве соответственно и любой конфигурации, в которую ранее были внесены такого рода изменения.
Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку
