Имя: Пароль:
1C
1C 7.7
v7: Запуск веб страницы с последующим закрытием
0 КофеIN
 
19.06.12
14:02
День добрый, вот уже 2 дня бьюсь с казалось бы простой задачей, суть вот в чем нужно открыть веб страницу дождаться оканчания загрузки и закрыть браузер.
пробовал так:    
СтрокаЗапуска = """C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE"" http://www.mail.ru/""";
WshShell = CreateObject("WScript.Shell");
WshShell.Run(СтрокаЗапуска,1,0);
WshShell.SendKeys ("%{F4}");
в таком варианте открывает ссылку и все 1с стоит на месте, при закрытии браузера идет дальше.
Пробовал ещё так:
КомандаСистемы("start IEXPLORE www.google.ru");
но в тогда не знаю как закрыть браузер.
1 КофеIN
 
19.06.12
14:04
СтрокаЗапуска = """C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE"" http://www.mail.ru/""";
WshShell = CreateObject("WScript.Shell");
WshShell.Run(СтрокаЗапуска,1,0);
WshShell.SendKeys ("%{F4}");
2 КофеIN
 
19.06.12
14:04
СтрокаЗапуска = """C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE"" http://www.mail.ru/""";WshShell = CreateObject("WScript.Shell");
WshShell.Run(СтрокаЗапуска,1,0);
WshShell.SendKeys ("%{F4}");
3 Юрий Лазаренко
 
19.06.12
14:05
(0) Покури javascript. Там есть событие document.onload(), в нем можно яваскриптом закрыть окно браузера.
4 КофеIN
 
19.06.12
14:05
Пробовал Run и с ожиданием оканчания тот же эффект
5 andrewks
 
19.06.12
14:06
OLE
6 КофеIN
 
19.06.12
14:12
в javascript не особо понимаю, былоб идеально мой первый вариант до ума довести, может кто уже имел дело с таким помогите.
7 oleg_prg
 
19.06.12
14:35
Пробуй так

СтрокаЗапуска = """C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE"" "http://www.mail.ru/" target="_blank" ref="nofollow" class="extralink">http://www.mail.ru/""";

WshShell = CreateObject("WScript.Shell");
WshShell.Run(СтрокаЗапуска,1,0);
WshShell.Sleep(5000); //Это задержка в 5 сек для того чтобы браузер успел загрузить страницу,
//без этого открывается браузер, и сразу же получает команду закрыться, еще не загрузив HTML :)
WshShell.SendKeys ("%{F4}");
8 oleg_prg
 
19.06.12
14:37
Если используешь КомандаСистемы("start IEXPLORE www.google.ru");
то для закрытия используй КомандаСистемы("taskkill /F /im iexplorer.exe");
Но опять же не забывай про задержку перед завершением процесса
9 КофеIN
 
19.06.12
14:39
Sleep 1c вообще отвергает пишет ошибка.
В том то и дело что он не закрывается, просто висит открытый браузер.
10 КофеIN
 
19.06.12
14:40
складывается очучение что WshShell висит не на браузере а на 1с.
11 КофеIN
 
19.06.12
14:41
oleg_prg а если так(с ожиданием):
КомандаСистемы("start /wait IEXPLORE www.google.ru");
КомандаСистемы("taskkill /F /im iexplorer.exe");
12 oleg_prg
 
19.06.12
14:43
Тебе надо получить WEB страницу на диск компа?
13 oleg_prg
 
19.06.12
14:44
для чего открывать и сразу закрывать?
14 КофеIN
 
19.06.12
14:45
при открытии начинается отрабатывать скрипт, мне надо дождаться пока он отработает
15 КофеIN
 
19.06.12
14:46
с wait не работает, без него работает
16 oleg_prg
 
19.06.12
14:49
Вместо задержки делай так

Для А = 1 По 100 000 Цикл
   //Так я делаю задержку
   А = А;
   //сюда нипиши какой нибудь код который
   Спр = СоздатьОбъект("Справочник.Номенклатура");
   Спр.ВЫбратьЭлементы();
   Пока Спр.ПолучитьЭлемент() = 1 Цикл
        А = А;
   КонецЦикла;
КонецЦикла;

Могу скинуть обработку которая получает готовый код страницы со всеми фотками и прочими объектами и выводит нужные данные в 1С. Это называется парсинг сайтов
17 Junior1s
 
19.06.12
14:52
(16) что это ?!?!?!
18 КофеIN
 
19.06.12
14:52
а в этой обработке есть определение конца загрузки станицы?
19 oleg_prg
 
19.06.12
14:53
А можешь описать задачу, для чего тебе надо открыть, а потом закрыть браузер?
20 oleg_prg
 
19.06.12
14:53
17 Это вместо задержки :)
21 dk
 
19.06.12
14:54
(16) плохой пример задержки через нагрузку системы
лучше через ввестистроку - без нагрузки
22 oleg_prg
 
19.06.12
14:55
http://files.mail.ru/2TXR01  Вот ссылка на мою обработку - она в 1С загружает каталог сотовых телефонов с сайта. Загружается модель и краткое описание + фотку. Этой обработкой можно из инета читать любае данные
23 КофеIN
 
19.06.12
14:57
суть такая: формирую файлы, выкладываю на ФТП, потом запускаю скрипт, чтобы он загрузил файлы.
Скрипт работает какое то время(время не известно). Загвоздка в определении конца отработки скрипта и закрытии браузера.
24 oleg_prg
 
19.06.12
14:57
Я подумал что может твою задачу можно решить другим путем, с помощью моей обработки. Если все ок, то отпишись, если нет, то опиши свою задачу, мот че нибудь придумаем
25 Jaap Vduul
 
19.06.12
14:57
26 oleg_prg
 
19.06.12
14:58
Значит обработка подойдет :)
27 FN
 
19.06.12
15:31
(0)
IE=СоздатьОбъект("InternetExplorer.Application");
IE.Navigate("www.mista.ru");
Пока IE.readyState<4 Цикл
Состояние("загрузка");
КонецЦикла;
Состояние("загружено");

хотя учитывая (23) кажется ты что-то пытаешься сделать не совсем верно.
28 КофеIN
 
19.06.12
15:37
Сделал так, все работает, УРА!!! всем спасибо что откликнулись, особая благодарность Jaap Vduul    
IE = CreateObject("InternetExplorer.Application");
IE.Visible = 1;
IE.Navigate("www.mail.ru");
й =-1;
Пока й = -1 Цикл
   й = IE.Busy;
КонецЦикла;
IE.Quit();
29 Юрий Лазаренко
 
19.06.12
15:41
(28) Хорошее решение
30 smaharbA
 
19.06.12
15:54
ЗапуститьПриложение("mshta ""about:<hta:application windowstate='maximize' navigable='yes'><script>var x=window.open('http://www.yandex.ru','_blank');x.focus();window.setInterval(function(){x.focus();if((d=x.document) && (b=d.body) && (b.innerText)) {document.write(b.innerText);x.close()}},100);</script>""")
31 smaharbA
 
19.06.12
15:58
(30) может работать и без мхта
32 smaharbA
 
19.06.12
16:31
наверное как то так

ЗапуститьПриложение("mshta ""about:<hta:application windowstate='maximize' navigable='yes'><script>var x=window.open('http://www.yandex.ru','_blank');x.focus();window.setInterval(function(){x.focus();if((d=x.document) && (b=d.body) && (b.innerText)) {document.write(b.innerText.replace(/\n/g,'<br>'));x.close()}},200);</script>""")
33 smaharbA
 
19.06.12
16:37
Асмоди когда выкинешь бред автозамены ссылок ?!


ЗапуститьПриложение("mshta ""about:<hta:application windowstate='maximize'
| navigable='yes'>
|<script>
|var x=window.open('http:// www.yandex.ru','_blank');
|x.focus();
|window.setInterval(function()
|{
|    x.focus();
|    if((d=x.document) && (b=d.body) && (b.innerText))
|    {
|        document.write(b.innerText.replace(/\n/g,'<br>'));
|        x.close()
|    }
|},200);
|</script>""");
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан