Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
03 дек 2023, 17:36

Программное нажатие клавиш в 1С (Linux)

Автор fruitella, 04 сен 2023, 15:37

0 Пользователей и 1 гость просматривают эту тему.

fruitella

Привет.
Конфигурация ERP 2.5.12.64

Необходимо в документе "Передача в эксплуатацию", "Внутренне потребление", сделать так, чтобы при вводе текста сотрудника, не отображались в списке уволенные.
Запрос есть, событие автоподбора обработал, таймаут ожидания есть и даже автоматический Enter после ввода символов сделал. Все работает корректно, но только на windows.
Для windows используется следующий вариант с программным вводом команды.
ОбъектShell = Новый COMОбъект("Wscript.Shell");
ОбъектShell.SendKeys("{ENTER 1}");

Но у нас база настроена на линукс. Есть ли аналогичный вариант, но только чтобы обработать команду Enter для ОС линукса?
Источник откуда взята инфа: http://1clenta.ru/pattern/49

Программное нажатие клавиш в 1С

При использовании "1С Предприятие" иногда требуется программно выполнить нажатие клавиш или сочетаний клавиш на клавиатуре. Для программного нажатия клавиш существует COM объект Wscript.shell. Данный объект позволяет имитировать нажатие как отдельных клавиш так и сочетаний. Кроме того существует возможность задавать количество нажатий. Ниже представлен список кодов клавиш. COM объект Wscript.shell содержит метод SendKeys, который на вход принимает строку которая содержит код одной кнопки или их сочетание.

Симитировать нажатие клавиши


ОбъектShell = Новый COMОбъект("Wscript.Shell");//Удерживая Cntr нажать AОбъектShell.SendKeys("^A");//Удерживая Shift нажать A, затем отпустив Shift нажать BОбъектShell.SendKeys("(+A)B");//Стрелку в вверх нажать 3 разаОбъектShell.SendKeys("{UP 3}");

Таблица кодов клавиш клавиатуры


Клавиша Код
Стрелка вверх {UP}
Стрелка вниз {DOWN}
Стрелка вправо {RIGHT}
Стрелка влево {LEFT}
BACKSPACE {BACKSPACE} или {BKSP} или {BS}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DELETE {DELETE} или {DEL}
END {END}
ENTER {ENTER} или ~
ESC {ESC}
HOME {HOME}
INSERT {INSERT} или {INS}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
+ {+}
^ {^}
% {%}
~ {~}
( {(}
) {)}
[ {[}
] {]}
{ {{}
} {}}
Shift {+}
Ctrl {^}
Alt {%}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}

Для того чтобы задать количество нажатий необходимо использовать следующую запись {код количество}. Например если требуется нажать клавишу Стрелка влево 10 раз то запись будет {LEFT 10}.



LexaK

подключайте обработчикожидания, там шаг 0.1 сек
при его срабатывании обрабатываете то что успел ввести пользователь как при нажатии Ентер
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск