===== Нажатие кнопок в 1С ===== С простейшим графическим интерфейсом. {{:scripts:1c-tasks-closer.png?nolink|}} #include Opt('MustDeclareVars', 1) MainGUI() Func MainGUI() Local $Button1, $Button2, $Button3, $Button4, $msg GUICreate("Помощник по нарядам в 1C") Opt("GUICoordMode", 2) $Button1 = GUICtrlCreateButton("Запустить 1С и найти свои наряды", 25, 30, 350) $Button2 = GUICtrlCreateButton("Закрыть наряд", -1, 30) $Button3 = GUICtrlCreateButton("Взять наряд в работу + распечатать сервисную заявку (1-й зам.)", -1, 30) $Button4 = GUICtrlCreateButton("Закрыть наряд + распечатать сервисную заявку", -1, 30) GUISetState() ; Run the GUI until the window is closed While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $Button1 Run ( '"C:\Program Files (x86)\1cv8\common\1cestart.exe" ENTERPRISE /WS "http://192.168.1.155/itilium/" /N "username"' ) WinWait ("[CLASS:V8TopLevelFrameSDI]") Sleep (3000) WinActivate ("[CLASS:V8TopLevelFrameSDI]") Send ("{F6 2}") Send ("^f") Sleep (2000) Send ("+{TAB}") Send ("ответст") Sleep (1000) Send ("{ENTER}") Send ("username") Sleep (1000) Send ("{ENTER}") Send ("{TAB}") Send ("{ENTER}") Case $msg = $Button2 for $i=1 to InputBox("", "Сколько нарядов нужно закрыть?", 1) WinActivate ("[CLASS:V8TopLevelFrameSDI]") ; Взять наряд в работу Send ("{ENTER}") Send ("{TAB 10}") Send ("{SPACE}") Sleep ( 5000 ) ; Пометить наряд выполненным WinActivate ("[CLASS:V8TopLevelFrameSDI]") Send ("+{TAB}") Send ("{DOWN}") Send ("{ENTER}") Sleep ( 5000 ) ; Закрыть Send ("+{TAB 21}") Send ("{ENTER}") Sleep ( 3000 ) next Case $msg = $Button3 WinActivate ("[CLASS:V8TopLevelFrameSDI]") ; Взять наряд в работу Send ("{ENTER}") Send ("{TAB 10}") Send ("{SPACE}") Sleep ( 5000 ) ; Пометить наряд выполненным WinActivate ("[CLASS:V8TopLevelFrameSDI]") Send ("+{TAB}") Send ("{DOWN}") Send ("{ENTER}") Sleep ( 5000 ) ; Распечатать сервисную заявку Send ("^p") Send ("{ENTER}") Sleep ( 5000 ) WinActivate ("[CLASS:V8TopLevelFrameSDI]") Send ("{ESC}") Case $msg = $Button4 for $i=1 to InputBox("", "Сколько нарядов нужно закрыть и распечатать сервисную заявку?", 1) WinActivate ("[CLASS:V8TopLevelFrameSDI]") ; Взять наряд в работу Send ("{ENTER}") Send ("{TAB 10}") Send ("{SPACE}") Sleep ( 5000 ) ; Пометить наряд выполненным WinActivate ("[CLASS:V8TopLevelFrameSDI]") Send ("+{TAB}") Send ("{DOWN}") Send ("{ENTER}") Sleep ( 5000 ) ; Распечатать сервисную заявку Send ("^p") Send ("{ENTER}") Sleep ( 5000 ) WinActivate ("[CLASS:V8TopLevelFrameSDI]") Send ("{ESC}") ; Закрыть Send ("+{TAB 21}") Send ("{ENTER}") Sleep ( 3000 ) next EndSelect WEnd EndFunc [[https://www.autoitscript.com/forum/topic/92543-loop-10-times/|Loop 10 times]], [[https://www.autoitscript.com/forum/topic/61652-repeat-x-times/|Repeat x Times?]]\\ [[https://habrahabr.ru/post/145550/|Автоматизация управления музыкой в офисе, любая песня на заказ по ICQ]]\\ [[https://beamtic.com/creating-guis-autoit|How to Create GUIs in AutoIt]]\\ [[https://www.autoitconsulting.com/site/scripting/autoit-cmdlets-for-windows-powershell/|AutoIt Cmdlets for Windows PowerShell]]\\ [[https://www.autoitscript.com/autoit3/docs/guiref/GUIRef.htm|GUI Reference]]