![]() |
![]() |
![]() |
|
v7: При закрытии печатной формы | ☑ | ||
---|---|---|---|---|
0
Масянька
02.06.16
✎
16:27
|
День добрый!
Вопрос: как при закрытии печатной формы внешней обработки выполнить некоторые действия? Спасибо. |
|||
1
Волшебник
модератор
02.06.16
✎
16:28
|
Сделай для печатной формы экранную и отрабатывай событие "ПрмЗакрытии"
|
|||
2
Масянька
02.06.16
✎
16:28
|
(1) А для печатной - никак?
|
|||
3
ДенисЧ
02.06.16
✎
16:48
|
Это не нужно. Поэтому этого нет
|
|||
4
пипец
02.06.16
✎
16:53
|
(2) штатно - способов нет
|
|||
5
Ёпрст
гуру
02.06.16
✎
16:56
|
(4) есть
|
|||
6
ДенисЧ
02.06.16
✎
16:57
|
(5) Прямо-таки штатно? Без ВК?
|
|||
7
Масянька
02.06.16
✎
17:00
|
(5) Подскажи, пожалуйста.
|
|||
8
Ёпрст
гуру
02.06.16
✎
17:03
|
(6) fuf
|
|||
9
Ёпрст
гуру
02.06.16
✎
17:08
|
Тупо проверяешь типзначения(таб) на равенство 100 и усё.
|
|||
10
Масянька
02.06.16
✎
17:09
|
(9) Где проверять-то?
|
|||
11
Ёпрст
гуру
02.06.16
✎
17:10
|
(10) там, где действия нужны
|
|||
12
Масянька
02.06.16
✎
17:13
|
(11) При формировании печ. формы происходит проверка и может быть выведена инфа в окно сообщений (а может и не выводиться - по условиям проверки). И хочу, чтобы при закрытии печ. формы закрывалось окно сообщений. Именно, при закрытии печ. формы. А не формы обработки.
Где? |
|||
13
Масянька
02.06.16
✎
17:14
|
+(12) Блин... Где проверять-то? Как поймать закрытие печ. формы?
|
|||
14
Ёпрст
гуру
02.06.16
✎
17:15
|
(12) ну запусти обработку ожидания у формы, в ней и проверяй, если тип значения не равен 100 - таблица закрыта, я не помню, работает ли типзначения для таблицы, ежели нет, проверяй на областьтаблицы
|
|||
15
Ёпрст
гуру
02.06.16
✎
17:16
|
делов то..
|
|||
16
Масянька
02.06.16
✎
17:18
|
(14) Про обработку ожидания - не понял...
ТипЗначения для таблицы - работает. |
|||
17
Ёпрст
гуру
02.06.16
✎
17:19
|
У каждй формы можно штатно запустить обработку ожидания
|
|||
18
Ёпрст
гуру
02.06.16
✎
17:20
|
а можно и в формуле текста на форме ловить
|
|||
19
ДенисЧ
02.06.16
✎
17:21
|
Сделал обработку, она сформировала ПФ, форму закрыли, Пф висит....
Где ловить? ) |
|||
20
Масянька
02.06.16
✎
17:21
|
(17) Кинь примерчик. Пожалуйста.
|
|||
21
Ёпрст
гуру
02.06.16
✎
17:42
|
||||
22
Ёпрст
гуру
02.06.16
✎
17:43
|
(19) ну как маленький, лови в глобальнике. Повесь глобальную обработку ожидания, жалко что ле ?
:) |
|||
23
Масянька
02.06.16
✎
17:45
|
(21) Блин... Даже не знаю, чего сказать...
Чего ругаться сразу-то? |
|||
24
Ёпрст
гуру
02.06.16
✎
17:58
|
(23) не подходит ?
|
|||
25
Масянька
02.06.16
✎
18:02
|
(24) Не арбайтен почему-то...
Процедура ПроверкаФормы() Если (ТипЗначенияСтр(Таб) <> "Таблица") Тогда wshShell.appActivate("1С:Предприятие"); wshShell.sendKeys("^+(z)"); wshShell.sendKeys("^+(я)"); Форма.ОбработкаОжидания("ПроверкаФормы",0); КонецЕсли; КонецПроцедуры // ПроверкаФормы В ПриОткрытии - Форма.ОбработкаОжидания("ПроверкаФормы",1) |
|||
26
Ёпрст
гуру
02.06.16
✎
18:07
|
(25) ну, у тя же написана ерунда..
ТипЗначенияСтр(Таб) всегда будет Таблица. |
|||
27
Масянька
02.06.16
✎
18:33
|
(26) Вот так - арбайтен.
Процедура ПроверкаФормы() Перем ТекФорма; Если ((глСервис.АктивныйКонтекст (ТекФорма) = 1) и (ТипЗначенияСтр(ТекФорма) <> "Таблица")) Тогда wshShell.appActivate("1С:Предприятие"); wshShell.sendKeys("^+(z)"); wshShell.sendKeys("^+(я)"); КонецЕсли; КонецПроцедуры // ПроверкаФормы Вельми понеже… весьма вами благодарен! :)))) |
|||
28
Злопчинский
02.06.16
✎
19:02
|
(19) форму закрыл - убери бяку закрой и печформу автоматом
|
|||
29
Злопчинский
02.06.16
✎
19:03
|
(27) сомнительно
Сделай активным окно печформы |
|||
30
Масянька
03.06.16
✎
11:12
|
(26) Все равно фигня получается...
В обработке 2 кнопки - "Показать" и "Печать". По "Показать" - открывается печ. форма, а по "Печать" - открывается печ. форма, а форма обработки закрывается. И вот в жтом случае - не арбайтен. В общем, я обошла так: в глобальнике есть ПриПолученииКоманды - закрытие печ. форм по Esc. Туда и засунула wScript. Вроде все нормально арбайтен. |
|||
31
Ёпрст
гуру
03.06.16
✎
11:17
|
(30) в (21) нормальный способ определения таблицы. Нафига тебе ТипЗначенияСтр(ТекФорма) - хз
|
|||
32
Масянька
03.06.16
✎
11:21
|
(31) Не фига. В твоем примере - если форма закрыта, то при закрытии таблицы тоже не отрабатывает.
|
|||
33
Ёпрст
гуру
03.06.16
✎
11:23
|
(32) ясен пень.
смотря, где тебе ловить надо - там и пихай мой код. Я ж тебе , точнее бородачу писал - если нет формы - лови в глобальнике. И.. речь не об этом, речь про правильное определение закрытой таблицы. |
|||
34
Масянька
03.06.16
✎
11:32
|
(33) Ясному пню - огромное спасибо! :)
|
|||
35
пипец
03.06.16
✎
13:21
|
хмм интересный метод - однако затратный )))
|
|||
36
Масянька
03.06.16
✎
13:23
|
(35) Я тя умоляю...
В глобальнике одна процедура около 10 строчек. |
|||
37
пипец
03.06.16
✎
13:30
|
(36) как работает обработка ожидания я в курсе ))) я про отслеживание состояния таблиц )))
ЗЫ вопрос на засыпку - а если печатается сразу 15-ть таблиц ))) в цикле - что тогдой ))) |
|||
38
Масянька
03.06.16
✎
13:32
|
(37) 15 лень проверять. Открыла 3 печ. формы из одного док-та - по Esc закрывается одна.
|
|||
39
Злопчинский
03.06.16
✎
17:03
|
(38) какбэ логично. ты же все печформы открываешь через одну и ту же "таб". последняя - живая, остальные - связь с контекстом формы потеряли..
??? |
|||
40
Ёпрст
гуру
03.06.16
✎
17:04
|
(39) это не проблема. Храни глобальный список открытых таблиц, при их закрытии - удаляй. Делов то
|
|||
41
Злопчинский
03.06.16
✎
17:06
|
(40) муторно.
|
|||
42
Масянька
03.06.16
✎
17:06
|
(39) Не понял...
открыто 3 печ. формы. Текущая закрывается по Esc. Одну закрыл - следующая стала текущей, закрываешь... |
|||
43
Злопчинский
03.06.16
✎
23:34
|
(42) давай демо-пример?
из обработки открываешь три РАЗНЫЕ таблицы (таб1, таб2, таб3) или три раза таблицу через "таб"? сами таблицы по ескейпу не закрываются... при закрытии обработки по ескейпу - можно отлавить и закрыть через "таб" - одну таблицу, последнююю ??? |
|||
44
Chameleon1980
04.06.16
✎
18:40
|
ну кэш таблиц
|
|||
45
Масянька
06.06.16
✎
10:56
|
(43) Вот ты Достоевский :)
В глобальник: Процедура ПриПолученииКоманды(Команда) Экспорт Перем ТекФорма; глСервис = СоздатьОбъект("Сервис"); wshShell = СоздатьОбъект("wScript.shell"); Если (Команда = 98848) Тогда Если глСервис.АктивныйКонтекст (ТекФорма) = 1 Тогда Если (ТипЗначенияСтр(ТекФорма) = "Таблица") Тогда ФСО = 0; ТекФорма.Показать( , , -1); // закрываем окно сообщений wshShell.appActivate("1С:Предприятие"); wshShell.sendKeys("^+(z)"); wshShell.sendKeys("^+(я)"); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры // ПриПолученииКоманды Всё. wshShell - это для окна сообщений, заремь. Остальное - закрытие печ. по Esc. Проверяй. |
|||
46
Злопчинский
06.06.16
✎
11:34
|
(45) спасибо, я как-нибудь сам Толстой. И проверять не буду, ибо лабуда. как ты таким кодом отловишь печформы, относящиеся к ДАННОЙ закрываемой форме обработки/документа?
|
|||
47
Масянька
06.06.16
✎
11:36
|
(46) А какая разница - к какой форме относится печ. форма?
Мне - фиолетово. Мне нужно закрыть печ. форму по Esc. Если тебе важно - ищи пути. |
|||
48
Злопчинский
06.06.16
✎
11:49
|
(47) то есть манагер у тебя сформировал из документа на экран три варианта счета, внизу болтается печформа ведомость по контрагентам, печформа отчет по остаткам с мегавымороченным МФ, по эскейпу хреняк закрываем счета - вместе сними закрывается все.. спасибо. речь изначально шала - как закрыть по ескейпу печформы относящиеся к форме обработки. а не все печформы открытые на экране в любое время. так что ваш код - в трубу. вас - на курсы логки и повышения квалификации.
|
|||
49
Масянька
06.06.16
✎
11:54
|
(48) Товарищ! Вы слишком много на себя берете. Смотрите - не надорвитесь.
Закрывается текущая печ. форма. Советую внимательно читать, а не дуть в трубу. И курсы повышения квалификации Вам не помогут. Чего ты завелся? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |