Имя: Пароль:
1C
1С v8
Выход из цикла по нажатию клавиши
,
0 Den_B12
 
04.10.16
14:09
Всем привет.
В цикле крутятся презентации:
Пока 1 < 2 Цикл
...
ЗапуститьПриложение(ЭлементМассива.Имя,,Истина);
...
КонецЦикла

Как обработать нажатие на клавиатуре например ESC и завершить цикл?
1 Любопытная
 
04.10.16
14:10
ОбработкаПрерыванияПользователя() Обрывает по Ctrl+Breack
2 Den_B12
 
04.10.16
14:23
Ctrl+Breack не срабатывает, может не успевает из-за цикла. Пробую вот так
    Пока 1<2 Цикл
        Сообщить("1");
    КонецЦикла
3 butterbean
 
04.10.16
14:24
(2) вставь ОбработкаПрерыванияПользователя()
оно не может не успевать, оно просто ждет следующего шага
4 Den_B12
 
04.10.16
14:24
Видимо надо как-то отловить средствами винды нажата ли клавиша или нет
5 Рэйв
 
04.10.16
14:24
(2)А ты попробуй вот так:

  Пока 1<2 Цикл
      ОбработкаПрерыванияПользователя() ;
      Сообщить("1");
  КонецЦикла
6 Волшебник
 
модератор
04.10.16
14:24
Пока Истина Цикл
   ОбработкаПрерыванияПользователя()
   <твои действия>
КонецЦикла
7 FIXXXL
 
04.10.16
14:28
(0) по кнопе Отмена пиши служебный флаг, в цикле проверяй (и очищай) значение флага
8 Den_B12
 
04.10.16
14:32
Пока 1<2 Цикл
      ОбработкаПрерыванияПользователя() ;
      Сообщить("1");
  КонецЦикла

Да, так работает. А если так долго не получается поймать.

Пока 1 < 2 Цикл
ОбработкаПрерыванияПользователя() ;
ЗапуститьПриложение(ЭлементМассива.Имя,,Истина);
...
КонецЦикла
9 Ёпрст
 
04.10.16
15:32
(8) всё правильно, ибо запускаемое приложение идёт вне цикла
10 cybfyv
 
04.10.16
15:35
(7) у тебя приоложение перехватывает ввод и естественно что 1с не реагирует