![]() |
![]() |
|
прерывание обработки Esc, как отследить? | ☑ | ||
---|---|---|---|---|
0
Бешенная Нога
25.01.06
✎
12:17
|
сабж
|
|||
1
Парижская фанера
25.01.06
✎
12:20
|
Вроде Adhook+ умеет отрубать Esc.
|
|||
2
Бешенная Нога
25.01.06
✎
12:22
|
да мне не надо отрубать,
мне надо отсделить прерывание обработки, и после этого "кое-что сделать". |
|||
3
Волшебник
модератор
25.01.06
✎
12:23
|
(2) Так юзер прервал или не прервал обработку, если после прерывания выполняется какой-то программный код?
|
|||
4
GrayT
25.01.06
✎
12:26
|
А выставить флажок при нормальном обновлении + реквизит на форму с проверкой флажка + обновление формы при начале работы?
|
|||
5
Вадим1С
25.01.06
✎
12:26
|
(3) после прерывания выполняется код платформы 1С v77
|
|||
6
Бешенная Нога
25.01.06
✎
12:26
|
юзер прерывает обработку и после этого должен
сработать код |
|||
7
smaharbA
25.01.06
✎
12:27
|
Без обработки ожидания ежесекундной и какогонибудь метода нахождения ласткея невыйдет, не считая методов типа задержки в цикле...ну еще можно
Перем Выполнение; ... Обработка Выболнение=1; ... Если ПустоеЗначение(Выполнение)=1 Тогда Ну чтото в этом роде... |
|||
8
Вадим1С
25.01.06
✎
12:28
|
С отработкой событий в 1С все очень плохо
|
|||
9
Парижская фанера
25.01.06
✎
12:29
|
(2) А не проще запретить и не парится?
(8) Ага. Особенно открыв обработку из другой, причем первая открыта модально. |
|||
10
smaharbA
25.01.06
✎
12:30
|
Не, конечно можно сделать, но тока не 1С-совместимо, зато железно...
Думаю что можно без ВК(Ну или с Псевдо-ВК ;))... |
|||
11
Бешенная Нога
25.01.06
✎
12:31
|
ну так как?
|
|||
12
Парижская фанера
25.01.06
✎
12:32
|
(10) Ну дак ВК будет генерить ВнешнееСобытие, а оно в случае (9.2) не перехватывается...
|
|||
13
NS
25.01.06
✎
12:34
|
Ищем у MSZSUZ-а....
Запрет, и отслеживание нажатия ESC |
|||
14
NS
25.01.06
✎
12:34
|
(+13) Есно штатно.
|
|||
15
GrayT
25.01.06
✎
12:34
|
Чем вариант 4 не подходит? Нормально отлавливается...
Перем Флаг; //_____________________________________________________________________________ Функция Проверить() Предупреждение(Флаг); КонецФункции //Проверить //******************************************* Процедура Сформировать() //Форма.Обновить(); //Даже это не к чему Флаг = 0; Для сч = 1 по 100 Цикл Сообщить(сч); КонецЦикла; Флаг =1 КонецПроцедуры Проверить вызывается из текстового реквизита на форме. |
|||
16
smaharbA
25.01.06
✎
12:35
|
(11) В обработке ожидания на форме определять ласткей через офис(может АПИ применю, а мож и так обойдусь) и все...
|
|||
17
GrayT
25.01.06
✎
12:36
|
Дурацкая форматилка :( |
|||
18
NS
25.01.06
✎
12:36
|
||||
19
NS
25.01.06
✎
12:37
|
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=116&lid=1339
Ссылка прямо на разработку. |
|||
20
smaharbA
25.01.06
✎
12:37
|
(13)-(15) да и (7) хорошо, но когда циклы вложенные, фих прервешь/отследишь, жмакать придется до апупения...
|
|||
21
GrayT
25.01.06
✎
12:39
|
(20)Я так понял с прерыванием у него проблем нет. Проблемы с тем как это отследить
|
|||
22
Бешенная Нога
25.01.06
✎
12:44
|
(19) а мне теперь на Т1С в попрошайку?
или кто-то из местных подсобит? |
|||
23
NS
25.01.06
✎
12:46
|
(22) Похоже там архив битый - у меня не распаковывается...
Отпишись автору, или в аську - у него 33993114 |
|||
24
GrayT
25.01.06
✎
12:54
|
(23)Архив прекрастно лечится. Но увы - ни чего нового я придумать не смог....
(22)Могу скинуть. Не считая прогресс бара там 17 |
|||
25
Бешенная Нога
25.01.06
✎
12:55
|
fanils@mail.ru
|
|||
26
NS
25.01.06
✎
12:56
|
(24) Как?
|
|||
27
Бешенная Нога
25.01.06
✎
12:59
|
(24) ну так поделишься?
|
|||
28
GrayT
25.01.06
✎
13:00
|
(25)Ушло
(26)Как вылечил? WinRar'ом. Внутри "Проверка прерывания на ESC.ert" |
|||
29
NS
25.01.06
✎
13:02
|
(27) Ушло.
|
|||
30
NS
25.01.06
✎
13:02
|
(28) Спасибо, разобрался ;-)) Заодно 3.51 скачал.
|
|||
31
Бешенная Нога
25.01.06
✎
13:02
|
(29) спасибо
|
|||
32
Прохожий
25.01.06
✎
13:03
|
(5) Следовательно этот код, который "выполняется после прерывания выпонения" должен содержаться где угодно, но только не в самой обработке, поскольку после прерывания выполнение прекращается.
Конфу править надо. ИМХО, это не есть гуд. А изменить алгоритм обработки совсем нельзя? Чего она такого делает? Что нужно "довернуть" если прервано по ESC? Похоже на кривизну самого алгоритма обработки... |
|||
33
GrayT
25.01.06
✎
13:04
|
(30)Ну у меня и 3.0 справился :)
|
|||
34
NS
25.01.06
✎
13:06
|
(32) Ничего подобного. Форма.ОбработкаОжидания()
Либо текст на форме, с процедурой проверки в дополнительно. |
|||
35
NS
25.01.06
✎
13:06
|
(33) Да я перед тем как справлятся посмотрел версию - оказалось 3.40 - решил сначала обновится.
|
|||
36
Токс
25.01.06
✎
13:11
|
Запускаю 2 обработки...
Как сделать, чтоб одна на Еск не реагировала? |
|||
37
NS
25.01.06
✎
13:15
|
(36) Одновременно?
|
|||
38
Токс
25.01.06
✎
13:22
|
(36) да
|
|||
39
NS
25.01.06
✎
13:23
|
(38) В одном сеансе?
|
|||
40
Токс
25.01.06
✎
13:32
|
(39) Да. Та старая фишка... первым при работе запускаем обработку и она крутится никому не мешая, но нажатый Еск первым делом обламывает её...
Открыта форма Документа - выйти по Еск не даёт, или запущена другая обработка... |
|||
41
NS
25.01.06
✎
13:40
|
(40) А по какому признаку ты определяешь, какая форма должна закрыться/ прекратить расчеты по ESC?
У тебя цикл через текст на форме, Форма.ОбработкаОжидания, либо форма.Закрыть()? |
|||
42
Токс
25.01.06
✎
13:44
|
(41) Цикл в ПриОткрытии() первой обработки, её формы вообще не видно.
|
|||
43
NS
25.01.06
✎
13:44
|
(42) Так если цикл в приОткрытии - как ты другую форму открываешь?
|
|||
44
GrayT
25.01.06
✎
13:50
|
(43)Ты попробуй. Она фоном висит, прада работет только мышь и ESC
|
|||
45
NS
25.01.06
✎
13:52
|
(44) Ничего не понял.
Создаю обработку. В ней приоткрытии() Пока 1=1 цикл КонецЦикла И пока она работает я смогу другие формы открывать? |
|||
46
GrayT
25.01.06
✎
13:54
|
(45)Вставь для наглядности Сообщить и наслаждайся :)
Я сам прибалдел, когда мне Рупор это показал. |
|||
47
Токс
25.01.06
✎
13:55
|
(43) Я не знаю, кто автор сего чудного открытия, но можешь сам попробовать...
Процедура ПриОткрытии() //какого-нето внешнего отчета к=1; Пока к<>0 Цикл Сообщить(к); к=к+1; КонецЦикла; КонецПроцедуры Запустил 1С и первым делом Файл->Открыть - эту обработку Дальше работай... и она работать будет... но нажатый Еск всё портит... |
|||
48
GrayT
25.01.06
✎
13:55
|
+46 Если не ошибаюсь это прокатывает только со внешним.
|
|||
49
romix
модератор
25.01.06
✎
13:57
|
В 8.0 можно обработать Ctrl-Break нормально, а в 7.7 - не знаю.
Может, клавиши как-то перехватывать... А вообще что именно нужно сделать в момент прерывания по ESC? Если закрыть файл или деинициализировать объект, то это можно сделать при начале работы отчета и при закрытии. |
|||
50
GrayT
25.01.06
✎
13:59
|
(49)Ром, анекдот знаешь про лося, который каждый раз после того говорил "С добрым утром"
|
|||
51
NS
25.01.06
✎
14:00
|
(47) Попробую. А несколько внешних отчетов можно так запустить?
|
|||
52
GrayT
25.01.06
✎
14:05
|
(51)Только первый
|
|||
53
Токс
25.01.06
✎
14:07
|
(51) Один за другим - много, но работать в данный момент будет последний открытый... по мере закрытия - продолжает работать предыдущий...
|
|||
54
NS
25.01.06
✎
14:08
|
(47,52) Только что попробовал. Обработка работает - больше ничего не работает, меню недоступны. Может надо делать немного не так?
|
|||
55
Токс
25.01.06
✎
14:11
|
(54) Закрой 1С и запусти снова... Это надо делать первым делом после запуска... не должно быть открыто перед этим ни одного окна...
|
|||
56
GrayT
25.01.06
✎
14:12
|
(55)Угу
|
|||
57
NS
25.01.06
✎
14:15
|
(56) Вот это прикол!!!
При запуске второй - работа первой ПРИОСТАНАВЛИВАЕТСЯ, начинает работать вторая, но после прерывания второй - первая продолжает свою работу! |
|||
58
NS
25.01.06
✎
14:16
|
(+57) И таким образом их можно запустить очень много ;-))
|
|||
59
GrayT
25.01.06
✎
14:16
|
(57)См 53 :)
|
|||
60
Прохожий
29.01.06
✎
14:24
|
(34) ИМХО, Форма.ОбработкаОжидания() может не проканать, так как по Esc временами не только прекращается выполнение обработке, но и сразу закрывается сама форма обработки.
|
|||
61
NS
29.01.06
✎
15:34
|
(60)
Процедура ПриЗакрытии() Если Флаг=1 тогда Предупреждение("Нажата клавиша ESC, либо предпринята попытка закрытия формы при незавершенной обработке"); СтатусВозврата(0); // Если надо - Флаг=0; КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |