Имя: Пароль:
1C
1C 7.7
v7: Записать файл на http-ресурс из 1С
,
0 Drac0
 
11.07.11
14:34
Добрый день. Возникла необходимость записывать cvs-файл на сайт, по пути вида: http://сайт.ru/docs/ . Если в винде подключить ресурс как сетевой диск, то проблем нет, а вот как отправить, используя URL? Кстати, необходимо для доступа вводить логин и пароль. У компоененты V7plus нужного нету :(
Спасибо за любую помощь.
1 Drac0
 
12.07.11
08:00
апап
2 zak555
 
12.07.11
08:04
у неё и нету
3 1Сергей
 
12.07.11
08:11
Через VBS:

Set Shell = CreateObject("Shell.Application")

' Подключаемся к серверу HTTP
Set FolderHTTP = Shell.NameSpace("http://сайт.ru/docs/")

' Открываем текущую папку
Set Folder = Shell.NameSpace("D:\1C\docs\")

for each c in Folder.items()
   FolderHTTP.CopyHere c
next


как-то так
4 Drac0
 
12.07.11
12:06
Спасибо, попробую.
5 Drac0
 
13.07.11
13:18
(3)К сожалению не хочет цепляться к HTTP. Не происходит вообще ничего, причем если указать какой-нибудь локальный путь, то копирование идет нормально.
Кроме того этот метод не решает проблем авторизации, а у Shell не нашел метод, которыми можно задать имя и пароль пользователя. Как-то печально получается пока...
6 FN
 
13.07.11
13:24
(5) Еслина сайте есть страничка с полем "ИмяФайла" и кнопкой "Отправить файл" - то можно залить через IE по OLE
7 Drac0
 
13.07.11
14:26
(6)Посмотрел, если логиниться под админом, то все есть. Выбирается каталог, в который надо загрузить файл, нажимается кнопка добавить, всплывает окно выбора файла и загрузки. Если не сложно, подскажите, где можно почитать про работу с IE через OLE.
8 Drac0
 
13.07.11
17:05
Отлаживаю сначала на vbs:

set ie=CreateObject("internetexplorer.application")
ie.navigate("http://intra.*******.ru/")
ie.visible=true
do while ie.ReadyState<4
WScript.Sleep(100)
loop
set doc=ie.document
doc.getElementByName("USER_LOGIN").value="username"
doc.getElementByName("USER_PASSWORD").value="******"
doc.getElementByName("Login").click()


Беда в том, что сайт даже не открывается, причем на почте яндекса все срабатывает. Есть один момент - ввожу сайт внутреннего корпоративного портала, который доступен только внутри сети. Если заходить вручную, то все хорошо. Из-за чего возможно такая оказия?
9 Drac0
 
13.07.11
17:25
Вот. Полностью рабочий скрипт для аккаунта Google.

set ie=CreateObject("internetexplorer.application")
ie.navigate("https://www.google.com/accounts/")
ie.visible=true
do while ie.ReadyState<4
WScript.Sleep(500)
loop
set doc=ie.document
doc.getElementById("Email").value="********@gmail.com"
doc.getElementById("Passwd").value="******"
doc.getElementById("signIn").click()


По какой причине не срабатывает для сайта нашего портала понять не могу...
10 Drac0
 
13.07.11
17:46
Хм, наш портал групповыми политиками установлен как домашняя страница в IE. Проверил на другом компе, где домашння другая - и сайт стал открываться.
11 Drac0
 
13.07.11
18:00
Интересно, как это можно обойти ...
12 navigator
 
13.07.11
18:27
С помошью csv инфу заливаешь на сайт? может тогда проше сразу писать ее в mysql базу так и быстрее будет.
13 FN
 
13.07.11
18:42
(11) попробуй сначал navigate на левый сайт, а потом на нужный
14 Drac0
 
13.07.11
20:29
(13) Спасибо за совет, попробую.
(12) Хм, у нас правда с веб-программистом разделение обязанностей, но вариант может стоит рассмотреть, для того чтобы убрать лишнее звено в перегрузке данных.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан