Имя: Пароль:
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 имя файла,и даже потом можно кнопочку нажать для отправки,и какой браузер,не важно,для него это будет ввод пользователя.