Имя: Пароль:
1C
1С v8
Программная обработка поля html документа - тег input
0 Mashinist
 
06.06.19
20:21
Значит в поле html открываю сайт и там есть выбор файла

Конструкция там примерно такая

<input _ngcontent-c8="" class="form-control ng-pristine ng-valid ng-touched" readonly="readonly">
<button _ngcontent-c8="" class="btn btn-default log_button" type="button">Выбрать</button>
<input _ngcontent-c8="" id="PKeyFileInput" style="visibility: hidden" type="file">
на сайте нажимаешь на кнопку Выбрать и открывается выбор файла. Выбираешь и на форме видно в первом input только имя без пути
а данные о файле, как я понял, пишутся во второй input, который скрыт от глаз

вопрос: как мне программно заполнить этот самый объект?

в коде я его получаю Инпут = ЭтаФорма.ПодчиненныеЭлементы.HTML.Документ.getElementById("PKeyFileInput");
у инпут есть коллекция Инпут.files, но она пустая.
Опять же, на сколько я понимаю, нужно туда добавить элемент и как-то данные о файле...
1 Garykom
 
гуру
06.06.19
20:33
Никак, тебе надо post сделать

Ну или курить api от того движка браузера который используешь
2 Garykom
 
гуру
06.06.19
20:34
3 Mashinist
 
06.06.19
20:40
ну браузер тот который в 1С 8.3.14.1565
задача по сути весьма банальна
я знаю где находится нужный файл и как бы хотелось не выбирать его каждый раз руками, а сразу программно заполнить и все...
как-то пока обидно получается :(
4 Garykom
 
гуру
06.06.19
20:42
(3) 1565 это уже который с webkit вместо ослика?

Тебе же ответили, никак по соображениям безопасности, иначе любой сайт на который ты зашел с js смог бы спереть у тебя с компа любые файлы
5 Garykom
 
гуру
06.06.19
20:43
Тебе просто надо сымулировать POST запрос который форма делает, с прицепленным файлом.
6 Garykom
 
гуру
06.06.19
20:44
У тебя есть кнопочка submit для формы вот выполнить вручную действия которые происходят при этом
7 Garykom
 
гуру
06.06.19
20:48
Берешь все куки и заголовки, засовываешь в HTTPСоединение и ОтправитьДляОбработки.
Результат засовываешь обратно в ПолеHTML
8 Mashinist
 
06.06.19
21:30
(6) да. есть такая кнопочка
<button _ngcontent-c8="" class="btn btn-default log_button" style="max-width: 80px;" type="button"><!----><!----><span _ngcontent-c8="" class="ng-star-inserted">Прочитать</span><!----></button>

как-то но по этой кнопке выполняет действие, но страница не перегружается и это не POST, потому как нету <FORM.../FORM>
видимо выполняется какой-то js, но я не могу понять какой...
9 Юрий Лазаренко
 
07.06.19
00:16
(8) Запрос может выполняться js-ом. Открой страницу в Хроме, запусти консоль (F12), открой закладку "Network", нажми кнопку. В консоли появятся все запросы к серверу. Тебе скорее всего нужны запросы с типом "xhr". В колонке "Initiator" будет указано, какой скрипт и в какой строке вызвал запрос. Надо посмотреть на эти скрипты, тогда станет понятно, куда копать дальше.
10 Сияющий в темноте
 
07.06.19
08:50
если винда,то берем wscript.shell и через sendkey пишем в поле input имя файла,и даже потом можно кнопочку нажать для отправки,и какой браузер,не важно,для него это будет ввод пользователя.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан