Автор: ukr.ray 17.06.19, 10:43
Добрый день, мне поставили задачу сделать автоматическое закрытие смены. Розница 1.0.
В определено время запускается форма.
! |
| http://pro1c.org.ua/index.php?act=announce&id=2: 8
|
Форме есть кнопка, как можно программно её нажать средствами 1с?
я пробовал такой вариант, присваивал кнопки "СочитаниеКлавишы" (Например кнопка F1)
Процедура ПриОткрытии()
Shell= Новый COMОбъект("Wscript.Shell");
Shell.SendKeys("{F1}");
КонецПроцедуры
Работает некорректно с 200 точек срабатывает примерно на 150.
У кого есть идеи как можно её нажать средствами 1с. ?
Объясняю почему надо именно нажать кнопку а не выполнить процедур которая прописана в кнопке.
Если просто запустить обработку закрытие смены (без физического нажатие кнопки), в момент закрытия смены, продавцы не читают что написано на экране и просто нажимают мышкой по открытой форме, появляется сообщение windows 1сv8 не отвечает Закрыть программу или Ожидание отклика от программы, ну конечно они нажимают Закрыть программу. и все смена не закрыта.
Автор: nik389 17.06.19, 19:19
Используйте ПодключитьОбработчикОжидания.
и не нужно никаких извратов со скриптШеллом..
Автор: pablo 18.06.19, 11:06
Сделайте в обработке нажатия кнопки нормальный прогресс-бар в виде отдельной формы. Такие готовые формы, например, есть в УПП ХодВыполненияОбработкиДанных, в БП - ДлительнаяОперация
Автор: ukr.ray 20.06.19, 18:47
Цитата(nik389 @ 17.06.19, 20:19)
Используйте ПодключитьОбработчикОжидания.
и не нужно никаких извратов со скриптШеллом..
Не помогло
Цитата(pablo @ 18.06.19, 12:06)
Сделайте в обработке нажатия кнопки нормальный прогресс-бар в виде отдельной формы. Такие готовые формы, например, есть в УПП ХодВыполненияОбработкиДанных, в БП - ДлительнаяОперация
я не пробовал но думаю это тоже не поможет
вод видео для примера что делают эти дау...
http://pro1c.org.ua/redirect.php?https://www.youtube.com/watch?v=2_FGUfiqPd0
Видео для примера что делают продавцы http://pro1c.org.ua/redirect.php?https://www.youtube.com/watch?v=2_FGUfiqPd0
Автор: ed.kharkov 21.06.19, 7:39
Попробуйте сделать так:
Процедура ПриОткрытии(Отказ)
ПодключитьОбработчикОжидания("ПрограммноеНажатиеКнопки", 0.1, Истина);
КонецПроцедуры
Процедура ПрограммноеНажатиеКнопки()
wsh = Новый COMОбъект("WScript.Shell");
Shell.SendKeys("{F1}");
КонецПроцедуры
У меня таким образом при открытии формы в поле вставляется скопированные текст. Все работает корректно.
Автор: ukr.ray 25.06.19, 11:47
Цитата(ed.kharkov @ 21.06.19, 8:39)
У меня таким образом при открытии формы в поле вставляется скопированные текст. Все работает корректно.
Если 1с будет не активна(то есть нажат ПУСК Windows), нечего не сработает.
Автор: pablo 25.06.19, 12:06
Если пользователь увидит на экране большую форму с прогресс-баром, который визуально изменяется за пару секунд наблюдения, и/или подписью под ним большими буквами - он поймет, что программу пока лучше не трогать.