Как прервать выполнение процедуры на диалоге

  • Автор темы Автор темы Дайнеко
  • Дата начала Дата начала
Д

Дайнеко

Человек нажал кнопочку и запустился процесс. В моем случае это отправка почты. Пока идет дело программа открыла форму и на ней показывает ход выполнения:
Код:
ФормаCеанса = Справочники.Почта.ПолучитьФорму("Монитор");
ФормаCеанса.Открыть();
ФормаCеанса.ЭлементыФормы.Операция.Значение = "Отправка";
Вот тут цикл
// операции
КонецЦикла
Но на форме "Монитор" я нарисовал кнопку "Прервать". И хочу во внутри цикла сделать что-то вроде:
Код:
Если НажалКнопочку Тогда
Прервать;
КонецЕсли;
Но как организовать взаимодействие. Ведь пока идет процесс форма Монитор не реагирует на клики. Есть механизм "Фоновые задания". Чую, что это мне нужно. Но нигде не встречал примера на использование.
Поделитесь, люди добрые. Простите, что обращаюсь к вам.
 
А к снижению производительности это не повлечет? ведь отлавливая постоянно состояние будут лишние обращения к серверу? может лучше само получение почты сделать регламентным заданием которое будет с определенным интервалом обновляться? Имхо: ловить отработку нажатий кнопок в данном случае приведет к ненужным тормозам.
ЗЫ: http://infostart.ru/public/71407/ пример прогресс бара + исследования на тему производительности
ЗЫ:ЗЫ: http://infostart.ru/public/65665/ - индикация + прервать процесс по CTRL+BREAK
 
Мне кажется, что 1С какбе не очень способна выполнить такую связку. Может как-нибудь так:
откроем модально новую форму, в форме будем выполнять цикл до тех пор, пока пользователь не нажмет Ctrl+break, при нажатии - передаем в основную результат выполнения цикла...
 
Спасибо за ссылки, читаю с упоением.
Может как-нибудь так: откроем модально новую форму, в форме будем выполнять цикл до тех пор, пока пользователь не нажмет Ctrl+break
Циклить... Гм... Ну это ладно. Но дело в том, что основной форме, которая создала индикатор, нужно сделать свою работу.

Почитаю-ка я про фоновые задания. В жизни пригодится.
 
вообще-то любую обработку можно прервать клавишей "Esc". только в 8.1 - нужно выполнить в коде одну встроенную процедуру. а какую - смотрите в справке.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →

Популярный контент

🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab