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

Тема в разделе "1C и всё что с ней связано", создана пользователем Дайнеко, 23 дек 2010.

  1. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Человек нажал кнопочку и запустился процесс. В моем случае это отправка почты. Пока идет дело программа открыла форму и на ней показывает ход выполнения:
    Код ( (Unknown Language)):
    ФормаCеанса = Справочники.Почта.ПолучитьФорму("Монитор");
    ФормаCеанса.Открыть();
    ФормаCеанса.ЭлементыФормы.Операция.Значение = "Отправка";
    Вот тут цикл
    // операции
    КонецЦикла
    Но на форме "Монитор" я нарисовал кнопку "Прервать". И хочу во внутри цикла сделать что-то вроде:
    Код ( (Unknown Language)):
    Если НажалКнопочку Тогда
    Прервать;
    КонецЕсли;
    Но как организовать взаимодействие. Ведь пока идет процесс форма Монитор не реагирует на клики. Есть механизм "Фоновые задания". Чую, что это мне нужно. Но нигде не встречал примера на использование.
    Поделитесь, люди добрые. Простите, что обращаюсь к вам.
     
  2. TimeDontWait

    TimeDontWait Well-Known Member

    Регистрация:
    4 янв 2010
    Сообщения:
    383
    Симпатии:
    0
  3. Gluk8888

    Gluk8888 Гость

    А к снижению производительности это не повлечет? ведь отлавливая постоянно состояние будут лишние обращения к серверу? может лучше само получение почты сделать регламентным заданием которое будет с определенным интервалом обновляться? Имхо: ловить отработку нажатий кнопок в данном случае приведет к ненужным тормозам.
    ЗЫ: http://infostart.ru/public/71407/ пример прогресс бара + исследования на тему производительности
    ЗЫ:ЗЫ: http://infostart.ru/public/65665/ - индикация + прервать процесс по CTRL+BREAK
     
  4. tanat

    tanat Well-Known Member

    Регистрация:
    2 мар 2007
    Сообщения:
    265
    Симпатии:
    0
    Мне кажется, что 1С какбе не очень способна выполнить такую связку. Может как-нибудь так:
    откроем модально новую форму, в форме будем выполнять цикл до тех пор, пока пользователь не нажмет Ctrl+break, при нажатии - передаем в основную результат выполнения цикла...
     
  5. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Спасибо за ссылки, читаю с упоением.
    Циклить... Гм... Ну это ладно. Но дело в том, что основной форме, которая создала индикатор, нужно сделать свою работу.

    Почитаю-ка я про фоновые задания. В жизни пригодится.
     
  6. evgenyatam

    evgenyatam Well-Known Member

    Регистрация:
    7 сен 2007
    Сообщения:
    175
    Симпатии:
    0
    вообще-то любую обработку можно прервать клавишей "Esc". только в 8.1 - нужно выполнить в коде одну встроенную процедуру. а какую - смотрите в справке.
     
Загрузка...

Поделиться этой страницей