Имя: Пароль:
1C
1С v8
Как html документ отображать через прокси сервер?
0 mbato
 
20.12.13
06:21
Как html документ отображать через прокси сервер? В браузере прокси прописан, думал может оттуда возьмет настройки, но нет
1 Морозов Александр
 
20.12.13
06:26
че?
2 kokamoonga
 
20.12.13
06:48
(0)

HttpСоединение.Прокси

ПолеHTMLДокумента.УстановитьТекст()
3 mbato
 
20.12.13
11:02
не получается так
4 kokamoonga
 
20.12.13
14:31
(3) информативно. Что именно не получается?
5 manyak
 
20.12.13
14:41
а так:

scr = Новый COMОбъект("WScript.Shell");
прокся="188.116.52.125:3128";
scr.RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer", прокся);
scr.RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 1, "REG_DWORD");
элементыформы.wb.Navigate("http://2ip.ru/";);
6 manyak
 
20.12.13
14:43
так прально посл строка:
элементыформы.wb.Navigate("h t t p://2ip.ru/");
пробелы убрать в http
форум исправил пральный код
7 mbato
 
21.12.13
08:25
Вот процедура:

Процедура ПоказатьАдреса(СписокАдресов, Карта, Знач Район, Ширина = 800, Высота = 600) Экспорт
    Если СписокАдресов.Количество() = 1 Тогда
        Район = СписокАдресов[0].Адрес;
    КонецЕсли;
    КодХТМЛ = "
    |<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">;
    |<html xmlns=""http://www.w3.org/1999/xhtml"">;
    |<head>
    |    <title>Примеры. Геокодирование.</title>
    |    <meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" />
    |    <script src=""http://api-maps.yandex.ru/1.1/index.xml?key=AByTpVIBAAAAWbgyGgIADaxIe2yvHcVWqcAKIzsTdA9giJQAAAAAAAAAAADUUlR2l0gB7VMGXHrMISU3TrZK8w==""; type=""text/javascript""></script>
    |    <script type=""text/javascript"">
    |        var map, geoResult;
    |        YMaps.jQuery(function () {
    |            map = new YMaps.Map(YMaps.jQuery(""#YMapsID"")[0]);
    |            map.setCenter(new YMaps.GeoPoint(107.589635,51.824931), 10);
    |            var toolBar = new YMaps.ToolBar();
    |          map.addControl(toolBar);
    |           map.addControl(new YMaps.Zoom());
    |          map.addControl(new YMaps.TypeControl());
    |          map.enableScrollZoom();
    |        });
    |   function ShowMessage(str)    {
    |        
    |        var message = ""JS получил: ""+str;
    |        //alert(message);        
    |
    |        return message;
    |        }
    |       function showAddress (value, Zagol, mStl) {
    |           var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});
    |           YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
    |               if (this.length()) {
    |                   geoResult = this.get(0);
    |                   var placemark = new YMaps.Placemark(geoResult.getGeoPoint(), {style: mStl});
    |                   placemark.name = Zagol;
    |                   placemark.description = value;
    |                   map.addOverlay(placemark);
    |                  //map.addOverlay(geoResult);
    |                  //map.setBounds(geoResult.getBounds());
    |}else {
    |                 alert(""Ничего не найдено"")
    |            }
    |        });
    |       YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error) {
    |          alert(""Произошла ошибка: "" + error);
    |     })
    |}
    |       function getCoord (value) {
    |            var CoordX;
    |           var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});
    |           YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
    |               if (this.length()) {
    |                   geoResult = this.get(0);
    |                   var GeoPoint = geoResult.getGeoPoint();
    |                   var CoordX = GeoPoint.GetX;
    |                   var CoordY = GeoPoint.GetY;
    |}else {
    |                 alert(""Ничего не найдено"")
    |            }
    |        });
    |       YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error) {
    |          alert(""Произошла ошибка: "" + error);
    |     }); var geoResult = geocoder.get(0);
    |        return geoResult.getGeoPoint();}
    |       function showBounds() {
    |                  
    |                  var geoRayon = new YMaps.Geocoder('"+Район+"', {results: 1, boundedBy: map.getBounds()});
    |                  YMaps.Events.observe(geoRayon, geoRayon.Events.Load, function () {map.setBounds(this.get(0).getBounds())});
    |                  //map.setBounds(bounds)
    |                  //for (var i = 0, l = points.length; i < l; i++) {
    |                  //map.addOverlay(points);}
    |                  }
    |//~~Функция showA~~
    |</script>
    |</head>
    |<body //~~onload~~>
    |  <div id=""YMapsID"" style=""width:"+Формат(Ширина,"ЧГ=0")+"px;height:"+Формат(Высота,"ЧГ=0")+"px""></div>
    |</form>
    |</body>
    |    
    |</html>
    |";
    
    НачФункции = "function showA () {";
    
    ТелоФункции = "";
    
    Для каждого Стр Из СписокАдресов Цикл
        ТелоФункции = ТелоФункции + Символы.ПС + "showAddress('"+Стр.Адрес+"','"+Стр.Заголовок+"','"+Стр.Стиль+"')";    
    КонецЦикла;
    
    КонФункции = Символы.ПС + ?(Район = "", "","; showBounds()") +"}";
    
    ФункцияShowA = НачФункции + ТелоФункции + КонФункции;
    Если ТелоФункции <> "" Тогда
        мКодХТМЛ = СтрЗаменить(КодХТМЛ,"//~~Функция showA~~",ФункцияShowA);
        мКодХТМЛ = СтрЗаменить(мКодХТМЛ,"//~~onload~~","onload = ""javascript:showA()""");
    КонецЕсли;
    
    ПроксиСервер = Новый ИнтернетПрокси;
    ПроксиСервер.Установить("http", "192.168.0.2", "8080");
    ПроксиСервер.Пользователь = "user";
    ПроксиСервер.Пароль = "1159";
    HTTPСоединение = Новый HTTPСоединение("http://www.w3.org";,,,,ПроксиСервер);
    
    Карта.УстановитьТекст(мКодХТМЛ);
КонецПроцедуры

Тут Карта - это элемент формы поле HTML документа. Эксперемента ради написал, как советовал  kokamoonga, HTTPСоединение, но не видел и не вижу взаимосвязи с HTML документом.
И еще, почему то на одном компе 1С берет данные прокси сервера из IE браузера (он по умолчание везде), а на другом компе не видит данных по прокси.
8 mbato
 
21.12.13
08:27
форму исправил мой текст "w w w . w 3 . o r g" на ""http://www.w3.org""; target="_blank" rel="nofollow" class="extralink">http://www.w3.org";
9 kokamoonga
 
21.12.13
14:55
(7) весь этот код аццкий трэш.

Особенно вот это место:

    НачФункции = "function showA () {";
    
    ТелоФункции = "";
    
    Для каждого Стр Из СписокАдресов Цикл
        ТелоФункции = ТелоФункции + Символы.ПС + "showAddress('"+Стр.Адрес+"','"+Стр.Заголовок+"','"+Стр.Стиль+"')";    
    КонецЦикла;
    
    КонФункции = Символы.ПС + ?(Район = "", "","; showBounds()") +"}";
    
    ФункцияShowA = НачФункции + ТелоФункции + КонФункции;
    Если ТелоФункции <> "" Тогда
        мКодХТМЛ = СтрЗаменить(КодХТМЛ,"//~~Функция showA~~",ФункцияShowA);

        мКодХТМЛ = СтрЗаменить(мКодХТМЛ,"//~~onload~~","onload = ""javascript:showA()""");

    КонецЕсли;


Из кода 1с доступен объект Документ со всеми вытекающими:


Процедура ПриОткрытии()
    
    ТекстХТМЛ = "
    |<html>
    |<head>
    |    <script>
    |        function onload() {
    |            var d = document.getElementById('disp');
    |            d.my_method = function (t) { alert(t); };
    |        }
    |    </script>
    |</head>
    |<body onload='onload();'>
    |    <div id='disp' ></div>
    |</body>
    |<html>";
    
    ЭлементыФормы.ПолеHTMLДокумента1.УстановитьТекст(ТекстХТМЛ);         
    
КонецПроцедуры

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Диспетчер = ЭлементыФормы.ПолеHTMLДокумента1.Документ.getElementById("disp");
    
    Диспетчер.my_method("ALERT!");
    
КонецПроцедуры



Ну и вопрос почему не получается нативными методами оботись это не ко мне. HttpСоединение позволяет получить документ HTML, что именно мешает взять текст этого документа и поместить в ПолеHTMLДокумента я не в курсе. Пример неработающего кода отсутствует.
10 oleg_km
 
21.12.13
15:07
Там наверное еще скрипты нужны
11 kokamoonga
 
21.12.13
15:08
(10) ?
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой