Версия для печати темы (https://pro1c.org.ua/index.php?s=02827a2eb6ac222fe578cc91130bf05c&showtopic=52567)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Программное Нажатие Кнопки

Автор: 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

Если пользователь увидит на экране большую форму с прогресс-баром, который визуально изменяется за пару секунд наблюдения, и/или подписью под ним большими буквами - он поймет, что программу пока лучше не трогать.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua