Закрыть модальное окно программно

1. n_mezentsev 91 04.12.24 13:54 Сейчас в теме
Всем здравствуйте! Хочу программно закрыть модальное окно (в обычных формах - оповещение пользователя) и никак не найду решения, уже небольшой комод собрал, вот:
//1. только управляйки
//Для Каждого Запись Из АктивноеОкно().Содержимое Цикл
//	Сообщить(Запись.Заголовок);
//	Запись.Закрыть();
//КонецЦикла;
//2. Не работает
//Оповестить("ИзменениеОповещенияПользователей");
//3. Не работает
//ФормаОповещения = ПолучитьОбщуюФорму("ДиалогОшибкаВопрос");
//ФормаОповещения.Закрыть();
//4. не работает с модальным также 
//Попытка
//	Shell= Новый COMОбъект("Wscript.Shell");
//	Shell.SendKeys("{ESC}");
//Исключение
//КонецПопытки;
Показать

Кто-нибудь знает решение? Отказаться от модальности здесь не реально
По теме из базы знаний
Найденные решения
8. Sashares 33 04.12.24 14:51 Сейчас в теме
(6) Отправляй оповещение с определенным именем.
Оповестить("ЗакрытьЭтоМодальноеОкно");
В форме в обработчике оповещения проверяй имя события, и если имя совпадает - закрывай.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. MissionOnly 19 04.12.24 14:02 Сейчас в теме
(1) ОткрытьМодально(<Таймаут>), Таймаут = 10 сек. Закроется через 10 секунд.
3. n_mezentsev 91 04.12.24 14:03 Сейчас в теме
(2) Спасибо, но таймер не подходит - нужно закрывать только при смене основного сообщения, а это может произойти или нет
4. MissionOnly 19 04.12.24 14:07 Сейчас в теме
(3) Боюсь, тут проблема в точной формулировке задачи. Верно сформулированная задача на 50% и есть решение.
6. n_mezentsev 91 04.12.24 14:44 Сейчас в теме
(2)
(4) В модуле обычного приложения раз в минуту (обработчик ожидания) запускается проверка оповещений пользователям. Поскольку имеем дело с обработчиком ожидания, то для запуска процедуры заново необязательно завершение предыдущего запуска, а при этом в ходе него может модально открыться окно формы. Я могу определить, закончилось ли выполнение предыдущей процедуры путем Сохранения значений в хранилище, однако, среагировать и закрыть открытое в предыдущей процедуре модальное окно я не в силах, оно не реагирует на мои попытки! Сохранять в хранилище дескриптор формы я даже не пытался, да, это не УФ, но думаю и здесь нелепо. Тысячу лет назад нам рассказывали об объектах Приложение или как-то так, может и в 8.3 есть подобный объект, от которого можно добраться даже до модального окна?
8. Sashares 33 04.12.24 14:51 Сейчас в теме
(6) Отправляй оповещение с определенным именем.
Оповестить("ЗакрытьЭтоМодальноеОкно");
В форме в обработчике оповещения проверяй имя события, и если имя совпадает - закрывай.
9. n_mezentsev 91 04.12.24 14:52 Сейчас в теме
(8) не работает в модальном окне, проверял же (в теме есть)
10. Sashares 33 04.12.24 14:54 Сейчас в теме
(9) Что именно не работает? В какой момент?
Оповещения не приходят, или что именно?
11. n_mezentsev 91 04.12.24 14:56 Сейчас в теме
(10) Оповещения не приходят, да - соответственно, команда закрытия не срабатывает
15. Sashares 33 04.12.24 15:02 Сейчас в теме
(11) Оповещения должны отправляться в том же сеансе, где открыто окно.
Во вложении обработка - из одного окна по кнопке Выполнить открывается другое модальное, и по оповещению через 20 секунд закрывается.
Прикрепленные файлы:
ТестМодальногоОкна.epf
20. n_mezentsev 91 04.12.24 19:36 Сейчас в теме
(15) Здесь работает, вижу, но видимо, модуль обычного приложения не совсем клиент, проверял - ОбработкаОповещения не срабатывает в принципе - такие дела8|
21. Sashares 33 04.12.24 19:44 Сейчас в теме
(20) Приведите пример с кодом на пустой базе.
17. Sashares 33 04.12.24 15:07 Сейчас в теме
(11) Стоит понимать, что когда вы открываете модально, код останавливается на этой строке, и далее выполнится только после того как окно будет закрыто.
24. n_mezentsev 91 05.12.24 10:27 Сейчас в теме
(17) Да, действительно - оповещения работают и в модуле обычного приложения, просто мой код в другом месте повлиял и оповещение не вызывалось. Так что извините!
Sashares; +1 Ответить
5. RustamZz 04.12.24 14:42 Сейчас в теме
(1) best practice, от вендора: не использовать модальность. Тем более, что все современные конфигурации выпускаются уже с отключенной возможностью модальных окон.
7. n_mezentsev 91 04.12.24 14:46 Сейчас в теме
(5) Знаете другой способ показать окно поверх всех окон пользователя и затребовать (!) ответ, то есть, чтобы нельзя было переключиться, не отреагировав? При этом окно должно быть репрезентабельным, не мелким вопросом, который все равно читать никто не будет...
12. MissionOnly 19 04.12.24 14:56 Сейчас в теме
(7) Вы можете определить некий признак завершения процесса. Осталось программно в модальной форме создать функцию. И закрывать модальное окно при условии, что эта функция вернет ИСТИНА (по обработчику ожидания).
n_mezentsev; +1 Ответить
13. n_mezentsev 91 04.12.24 14:57 Сейчас в теме
(12) Точняк! Так и сделаю! Класс!
14. RustamZz 04.12.24 15:01 Сейчас в теме
(7) У пользователя всегда должна быть возможность переключиться на другую задачу, а на вопрос ответить позже. А уже после его ответа пусть продолжит работать ваш код. Хотите вы того или нет, но ваш подход перестанет работать, поэтому его надо менять.
16. n_mezentsev 91 04.12.24 15:05 Сейчас в теме
(14) Не парьтесь, вы, видимо, с такими задачами не сталкивались, на УФ тоже старался отходить от них, но здесь -
1. пользователь не вернется - забудет, а оповещение важное (тех работы)
2. пользователь в списке окон может не найти окно, чтобы вернуться
3. если окно не модальное, может просто быстро ткнуть и даже не заметить, что что-то выскочило
4. не обдуманные мной случаи...
18. RustamZz 04.12.24 15:10 Сейчас в теме
(16) Конечно же не парюсь. А на вопросы вы сами себе должны ответить как это будет работать у вас в будущем.
19. independ 1536 04.12.24 15:53 Сейчас в теме
(1) использовать модальное окно(приложение) не от 1c, hta vbs
https://forum.script-coding.com/viewtopic.php?id=5835
22. Desere799 1111 05.12.24 09:31 Сейчас в теме
Попробуй вызывать не модальное окно а обычное, с присоединением, и выводить там информацию... Как вариант...

Пример:
Прикрепленные файлы:
ВнешняяОбработка1.epf
n_mezentsev; VyacheslavShilov; +2 Ответить
23. n_mezentsev 91 05.12.24 10:24 Сейчас в теме
(22) Ух-ты! Даже и не подумал об этом, а ведь для этого сценария прям ластится) Спасибо! Попробую
Для отправки сообщения требуется регистрация/авторизация

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот