Как обработать (перехватить) нажатие ESC при вводе данных в форме, не допустить закрытия без сохранения (УФ, 8.3)

1. Serge_ASB 05.11.21 14:31 Сейчас в теме
Есть задача: поставить защиту от случайного нажатия ESC, когда форма закрывается без вопросов, и внесенные в нее сведения не сохраняются.
Как можно реализовать?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. M_A_D 184 05.11.21 14:36 Сейчас в теме
(1)на сколько понимаю речь про Процедуру формы: "ПередЗакрытием".
В ней вызывайте диалоговое окно, "Точно хотите закрыть без созранения?" ну и кнопки "да/нет".
3. KonecEsli 1 05.11.21 18:04 Сейчас в теме
(2) а может ПриЗакрытии ? )
5. M_A_D 184 05.11.21 18:23 Сейчас в теме
(3)
поставить защиту от случайного нажатия ESC, когда форма закрывается без вопросов, и внесенные в нее сведения не сохраняются.

Процедура ПриЗакрытии:
Вызывается при закрытии формы. Отказаться от закрытия нельзя
ПриЗакрытии, OnClose

Получается, что все же ПЕРЕД)
Если нужно отказываться от закрытия, да бы не потерять данные введенные)
4. KonecEsli 1 05.11.21 18:13 Сейчас в теме
(2) Автор обращения не посчитал нужным упомянуть функционал, который отрабатывает процедура Перед ) Таким образом может пострадать логика )
6. Serge_ASB 06.11.21 12:36 Сейчас в теме
В процедуре "Перед закрытием " - пусто.
С другой стороны - выходит, что всегда будет вызываться вопрос на подтверждение. Было бы "совсем хорошо" определять: вызвано ли закрытие нажатием на "Записать и закрыть", на "крестик", или же - кнопкой "ESC".
Пользователи, чаще всего, не любят "лишние" нажатия.
7. accounting_cons 757 06.11.21 15:57 Сейчас в теме
"Для сигнализации пользователю о том, что данные, отображаемые формой, были изменены, у формы существует признак модифицированности. При взведении данного признака в заголовке формы отображается символ *. Данный символ сигнализирует пользователю, что данные были изменены, и их необходимо сохранить."

https://its.1c.ru/db/metod8dev/content/2206/hdoc
8. Serge_ASB 07.11.21 12:08 Сейчас в теме
Увы, не так-то всё просто: 1С:МЕдицина - из формы открывается другая форма в создаваемом первой формой динамическом поле. И, открываемая форма - тоже внешняя обработка со сложной системой оповещений...
Пока что умом дошли до мысли включить автосохранение.
При обработке событий перед закрытием выходит (пока что), что сигнал о закрытии уже передан дальше, и, возможно, придется придумывать параметр, который будет передан от оповещения к оповещению, чтобы стопарить продолжение закрытия формы.
9. Serge_ASB 25.07.22 10:36 Сейчас в теме
Решение было найдено (создано): отдельная, специально созданная dll... Увы, другого ничего действенного не помогало. Если есть вопросы, пишите в личку.
Оставьте свое сообщение

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