Можно ли как-то программно нажимать клавиши в ПолеHTMLДокумента?

1. fixin 4276 30.06.23 20:23 Сейчас в теме
Потому что если я просто присваиваю логин/пароль (СберБизнес), то они сбрасываются, там некие элементы типа __reactEventHandlers$dj5eptqhfg есть, куда вводятся логин/пароль, введенные вручную с клавиатуры. И на них уже сайт ориентируется.

Я пробовал так, но от этого 1С вылетает:
	event.initKeyboardEvent("keydown", true, true, Документ.defaultView, "Enter", 0, "", 0);
	event = Документ.createEvent("Event");
	event = Документ.createEvent("HTMLEvents");
	event.initEvent("keydown", true, true);
	event.view = Документ.defaultView;
	event.altKey = false;
	event.ctrlKey = false;
	event.shiftKey = false;
	event.metaKey = false;
	event.key = "a";
	Поле.dispatchEvent(event);
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. SlavaKron 01.07.23 08:52 Сейчас в теме
(1)Тут событие другое, но принцип тот же
&НаКлиенте
Процедура Команда1(Команда)
	ЭлементHTML = Элементы.АдресHTML.Документ.getElementById("pan_recipient");
	ЭлементHTML.Value = "5555555555555599";
	
	evt = Элементы.АдресHTML.Документ.createEvent("HTMLEvents");
	evt.initEvent("input", false, true);
	ЭлементHTML.dispatchEvent(evt);
КонецПроцедуры
Показать
5. fixin 4276 01.07.23 15:38 Сейчас в теме
(3) а что мне дает input? Я его попробовал, не срабатывает. Дьявол в деталях, надо послать именно клавиши.
KeyboardEvernts - это не HTML Events, так что аналогия очень отдаленная.
6. SlavaKron 01.07.23 15:41 Сейчас в теме
(5) Данный кусок как раз вырван из сберовской интеграции. что он даёт: он эмулирует заполнение поля ввода и нажатие кнопки энтр - завершение редактирования.
Поделитесь, зачем вам кастомное нажатие клавиш? Точнее опишите, что эмулируем.
13. fixin 4276 02.07.23 20:03 Сейчас в теме
(6) сбербизнес апи стоит дорого, хотят заходить внутрь сбербизнеса и скачивать выписки и реестры. Споткнулся уже на первом этапе - авторизоваться во встроенном браузере 1С не так то и просто.

Просто присвоение VALUE не годится. У сбера есть параллельное поле что-то типа react, куда заполняются данные только при нажатии клавиш, если туда присвоить значение в value, оно сбрасывается.
14. user856012 14 02.07.23 22:18 Сейчас в теме
(13)
сбербизнес апи стоит дорого
Ну, так поэтому и встроили защиту от дурака гения - чтобы не всякий хитро... мудрый мог сэкономить.

Посмотрим, достаточно ли ваших 2 см, чтобы ее по... бедить. ;-P
16. user1880116 02.07.23 22:53 Сейчас в теме
(14) Вот кстати да.
Похоже, что скоро мы услышим Гениальную Сентенцию, о том, что разработчики сбербанка неграмотные бездари. Ну, как обычно у Сереженьки с платформой 1С случается.
18. fixin 4276 03.07.23 13:06 Сейчас в теме
(16) Разработчика Сбера сделали защиту, как их и просили. Так себе защита, эмуляцией клавиш снимается, но основную функцию выполняет - просто так залогиниться нельзя.
Не думаю, что это защита от тех, кто хочет использовать API, скорее от роботов с подбором паролей, хотя там тоже умеют эмулировать клавиши.
19. user856012 14 03.07.23 13:25 Сейчас в теме
(18)
там тоже умеют эмулировать клавиши.
Да все умеют!.. кроме вас. ;-)

P.S. Жду еще одного честно заработанного "минуса", а то я уже забеспокоился - правильно ли веду спор с самим Гением 1С? Нет, все в порядке, правильно.
22. user1880116 03.07.23 19:06 Сейчас в теме
(19) Есть ощущение, что этот минусующий наивно полагает что влияет этим на мироздание.
24. user856012 14 03.07.23 20:42 Сейчас в теме
(22)
минусующий наивно полагает что влияет этим на мироздание
Конечно, влияет! Это же не кто попало минусует, а сам лично Гений! Мироздание просто обязано этим обеспокоиться - а то, неровен час...
27. user1880116 03.07.23 22:44 Сейчас в теме
(24)
а то, неровен час
ему придется создавать новую тему.

На самом деле, с каждым поставленым минусом плечи Гения распрямляются. В орлином взоре появляется блеск, мозг заполняет волна эйфории, ясно свидетельствующая о получении новой порции сакральных тайн. Радость познания переполняет тело и ощущение всемогущества заполняет разум. Знания, знания переполняют всю сущность гениального прогыгырамиста на 1С...

Ровно до той поры, пока не придет время возвращаться обратно к работе.
29. user856012 14 04.07.23 00:57 Сейчас в теме
(27)
ему придется создавать новую тему.
Мелко, мелко мыслите! "Ему придется создавать новое мироздание!" - вот правильный ответ! ;-)
23. user1880116 03.07.23 19:27 Сейчас в теме
(18)
Так себе защита
О, началась та самая Гениальная Сентенция.
8. user1852218 01.07.23 18:03 Сейчас в теме
(5)
надо послать именно клавиши
Ну, так SendKeys в Wscript.shell - это как раз эмуляция нажатия клавиш на уровне ОС (Windows).

Статья по теме: https://infostart.ru/1c/articles/336223/
12. fixin 4276 02.07.23 20:03 Сейчас в теме
(8) Про Send Keys я в курсе, но это годно чтобы нажать одну-две кнопки, в данном случае будет ненадежным, не говоря уже о том, что сначала надо спозиционироваться на поле ввода.
9. user1880116 01.07.23 21:57 Сейчас в теме
(1)
я просто присваиваю логин/пароль (СберБизнес)
Если бы ты, прогыгыгырамист, действительно автоматизировал что-то кроме ларьков, ты бы использовал https://developers.sber.ru/portal/products/sberbusiness-api
10. fixin 4276 02.07.23 19:13 Сейчас в теме
(9) клиент хочет сэкономить, это апи платное и дорогое.
15. user1880116 02.07.23 22:46 Сейчас в теме
(10)
клиент хочет сэкономить, это апи платное и дорогое.
Я и говорю - ларьки.
17. fixin 4276 03.07.23 13:05 Сейчас в теме
(15) ты в курсе сколько стоит API?
21. user1880116 03.07.23 19:02 Сейчас в теме
(17) Сереженька, в эту игру можно играть и вдвоем. Какую сумму затрат твой ларек считает неподъемной?
25. fixin 4276 03.07.23 21:17 Сейчас в теме
(21) Без понятия. я не занимался анализом задачи. Мне сказали, что API Дорого.
28. user1880116 03.07.23 22:47 Сейчас в теме
(25) Зайдем с другой стороны. Как ты считаешь, какова целевая аудитория этого предложения от сбера? На каких клиентов они ориентировались, когда готовили тарифную сетку?
30. fixin 4276 04.07.23 12:20 Сейчас в теме
(28) а зачем мне об этом думать?
31. fixin 4276 04.07.23 13:13 Сейчас в теме
(15) Уточнил - 15к в месяц с клиента. Это бюджет в 150.000 в месяц.
В принципе, за такие деньги содержится белковая девочка-оператор.
33. user1880116 04.07.23 18:32 Сейчас в теме
(31)
15к в месяц с клиента. Это бюджет в 150.000 в месяц
Вот так вот гениальный прогыгырамист, в попытке поразить слушателей огромными деньгами, рассказал всему свету, что его клиент занимается дроблением бизнеса до уровня, когда 15 тысяч на одно юрлицо становятся неподъемной суммой...

Наверно, этот клиент что-то оптимизирует.
34. fixin 4276 05.07.23 08:37 Сейчас в теме
(33) странные у вас домыслы. там обслуживающая мелких клиентов организация.
35. user1880116 05.07.23 20:06 Сейчас в теме
(34)
там обслуживающая мелких клиентов организация.
Ну вот, время провокаций и откровений =)

Понимаешь, Серёженька, нет никакой разницы как автоматизировать ларьки - напрямую или по субподряду. Ты как "решал" проблемы мелких клиентов ларьков, так и продолжаешь.
2. user1852218 30.06.23 21:33 Сейчас в теме
(1) СОМОбъект "Wscript.shell" и метод SendKeys() - не?
4. fixin 4276 01.07.23 15:37 Сейчас в теме
(2) ну этот тот еще костыль. а куда слать клавиши? Тем более непонятно, где фокус стоит, на каком поле.
7. user1852218 01.07.23 17:59 Сейчас в теме
(4)
а куда слать клавиши?
В буфер клавиатуры, куда же еще? Именно туда они попадают при реальном нажатии на клавиши.
непонятно, где фокус стоит, на каком поле.
А в вашем коде - понятно? Я так понимаю, keydown вы посылаете как раз для перемещения между полями? Так тут - аналогично.
11. fixin 4276 02.07.23 20:00 Сейчас в теме
(7) в моем коде я отправляю клавиши в определенное поле. Возникает вопрос, как спозиционироваться на поле HTML документа, прежде чем слать туда SendKeys.
20. fixin 4276 03.07.23 18:37 Сейчас в теме
(7) непонятно, как узнать, на каком поле стоит фокус.
26. user856012 14 03.07.23 21:56 Сейчас в теме
(25)
Мне сказали, что API Дорого
Зато услуги Гения 1С - доступно! Хотя у него всего 2 см - вот и не получается доставить заказчику удовольствие...

А тут еще и (2) что-то не торопится с ответом - может быть, по опыту прошлой ветки?

P.S. Если кто не согласен с моей версией причин неудач автора, так имейте в виду: слова "гений" и "гениталии" - однокоренные!
32. fixin 4276 04.07.23 16:20 Сейчас в теме
Нашел на инфостарте вот такое решение: https://infostart.ru/1c/tools/1578133/
Согласовал с клиентом, что попробую эту схему, возможно в Selenium можно напрямую клавиши прогнать.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот