|
Возможность повторного нажатия на кнопки "Записать", "ОК"
| ☑ |
0
жужу
09.12.14
✎
19:16
|
Начинаю изучать 1С
Ситуация: добавлена подписка на событие "ПриЗаписи" документа, в которой выполняются некоторые продолжительные действия (вызываетсы внешнее приложение через wscript.shell)
Оказалось, что можно успеть нажать на кнопку "записать" дважды так, что подписка будет вызвана повторно еще ДО того, как закончится запись, вызванная первым нажатием.
Отсюда вопрос: как такое поведение согласуется с однопоточностью 1с?
получается ведь, что в это время код 1с выполняется в 2 потока? первый ждет завершения wscript.run, и в это время запускается второй
|
|
1
Эмбеддер
09.12.14
✎
20:01
|
просто это значит, что не ждет завершения wscript.run
|
|
2
Эмбеддер
09.12.14
✎
20:02
|
+ надо взывать wscript.run другим способом
|
|
3
Asmody
09.12.14
✎
20:08
|
У wscript.run есть третий параметр
|
|
4
Asmody
09.12.14
✎
20:09
|
|
|
5
жужу
09.12.14
✎
20:11
|
Процедура ПодпискаНаСобытиеОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
// Вставить содержимое обработчика.
сообщить("ОбработкаПроведения вошли");
WshShell=Новый COMОбъект("Wscript.Shell");
WshShell.run("cmd.exe /c pause", 1, true);
сообщить("ОбработкаПроведения вышли");
КонецПроцедуры
нажал "ОК", получил консоль + сообщение "вошли"
свернул, нажал второй раз "ОК" - получил вторую консоль и второе сообщение "вошли"
|
|
6
Asmody
09.12.14
✎
20:20
|
(5) попробуй вместо true написать -1
|
|
7
жужу
09.12.14
✎
20:24
|
те-же яица
|
|