Имя: Пароль:
1C
1C 7.7
v7: Яндекс карты
, ,
0 ЗЫ5
 
09.06.12
17:46
есть код
Перем гФорма,Браузер;  
Перем КодХТМЛ;

Процедура ПриОткрытии()
   Если ЗагрузитьВнешнююКомпоненту("1cpp.dll")=0 тогда
       Предупреждение ("Компонента 1с++ не найдена");
       СтатусВозврата(0);
   КонецЕсли;
   Попытка
       гФорма=СоздатьОбъект("СервисРасшФормы");
       гФорма.ЗагрузитьМодуль(); //ПослеОткрытия
   Исключение
       гФорма=СоздатьОбъект("Форма");
       гФорма.УстановитьФорму(Форма); //ФормаПриСоздании
   КонецПопытки;
КонецПроцедуры    // ПриОткрытии

Процедура ПослеОткрытия()

   Браузер=СоздатьОбъект("АктивИкс");
   Браузер.УстановитьАтрибут(Форма,"ФБраузер");
   Браузер.СоздатьЭУ("Shell.Explorer.2");
   Браузер.Объект.Navigate("http://maps.yandex.ru/?text=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%2C%20%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C%20%D0%92%D0%92%D0%A6&sll=37.628424%2C55.839608&ll=37.628397%2C55.834833&spn=0.033903%2C0.009745&z=16&l=map");
КонецПроцедуры

Процедура ФормаПриСоздании()
   ПослеОткрытия();
КонецПроцедуры    // ФормаПриСоздании

Процедура ФБраузер_BeforeNavigate2(объект,урл,флаги,фрейм,пост,заголовки,отмена)
   Сообщить(урл);
КонецПроцедуры
1 ЗЫ5
 
09.06.12
17:47
Есть объект на форме обработки, подскажите как заставить скрипты передавать в яндекс карты?
2 ЗЫ5
 
09.06.12
17:48
Пока только получилось открывать на форме 7.7. уже готовую карту но цель установить метки на карту из справочника контрагенты.
3 ЗЫ5
 
09.06.12
17:49
Не доходит как скрип передать вместо адреса?
4 ЗЫ5
 
09.06.12
19:29
Возможно нужно как то связать?
Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl");
Скрипт.Language = "javascript";
5 ЗЫ5
 
09.06.12
19:31
Задача стоит установить метки..
6 ЗЫ5
 
09.06.12
21:22
Может как то так Браузер.Объект.document.parentWindow.ExecScript(ТекстСкрипта,"JavaScript")
7 ЗЫ5
 
13.06.12
17:15
Up
8 ЗЫ5
 
13.06.12
17:17
На форму карта выводится а вот скрипт ошибку выдает..
Рандом=createObject("MSScriptControl.ScriptControl");
             Рандом.language="javascript";
                               
           ТекстСкрипта="|    <script src=""http://api-maps.yandex.ru/1.1/index.xml?key=ANpUFEkBAAAAf7jmJwMAHGZHrcKNDsbEqEVjEUtCmufxQMwAAAAAAAAAAAAvVrubVT4btztbduoIgTLAeFILaQ=="" type=""text/javascript""></script>
   |    <script type=""text/javascript"">
   |        var map, geoResult;
   // Создание обработчика для события window.onLoad
   |        YMaps.jQuery(function () {
   // Создание экземпляра карты и его привязка к созданному контейнеру
   |            map = new YMaps.Map(YMaps.jQuery(""#YMapsID"")[0]);
   // Установка для карты ее центра и масштаба
   |            map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
   // Добавление элементов управления
   |            var toolBar = new YMaps.ToolBar();
   |          map.addControl(toolBar);
   |           map.addControl(new YMaps.Zoom());
   |          map.addControl(new YMaps.TypeControl());
   |          map.enableScrollZoom();
   |        });
   // Функция для отображения результата геокодирования
   // Параметр value - адрес объекта для поиска

 
   |</script>";
           Браузер.Объект.document.parentWindow.ExecScript(ТекстСкрипта,"JavaScript");
9 ЗЫ5
 
13.06.12
17:18
Браузер.Объект.document.parentWindow.ExecScript(ТекстСкрипта,"JavaScript");
{C:\DOCUMENTS AND SETTINGS\FEDOROV\РАБОЧИЙ СТОЛ\MAPS\ПРИМЕР\ПРИМЕР.ERT(56)}: : Не удалось завершить действие.  Ошибка 80020101.
10 mikecool
 
13.06.12
17:18
(6) опиши скрипты один раз в странице, которую подгружай в поле хтмл
11 mikecool
 
13.06.12
17:20
+10 как то так

<!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>Примеры. Знакомство с JavaScript API. Простой вызов карты.</title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <script src="http://api-maps.yandex.ru/1.1/index.xml?key=AJ_G30sBAAAAPGjNUwIAd33aJVgstDjaSjmlPoejDe-QLSYAAAAAAAAAAADLNUtNAWc3HuTC21N5xxG5a7OODA=="
   type="text/javascript"></script>
   <script type="text/javascript">
       var map;
       var router;
       var placemark;
       var polyline;
       var geocoder = new YMaps.Geocoder();

       
       window.onload = function () {
           map = new YMaps.Map(document.getElementById("YMapsID"));
           map.setCenter(new YMaps.GeoPoint(39.761795, 47.271364), 10);
           
           map.addControl(new YMaps.TypeControl());
           map.addControl(new YMaps.ToolBar());
           map.addControl(new YMaps.Zoom());
           map.addControl(new YMaps.ScaleLine());
           map.addControl(new YMaps.SearchControl());
           
       }
       
       function onunloadpage(){
               map.destructor();
       }

   function AddPlacemark(Name, Descr, Cont, Att, Latt, Params)    {
       
       // Создает метку в центре Москвы
       placemark = new YMaps.Placemark(new YMaps.GeoPoint(Latt, Att), Params);

       // Устанавливает содержимое балуна
       placemark.name = Name;
       placemark.description = Descr;

       if (Cont != "") {
       placemark.setIconContent(Cont);
       }

       // Добавляет метку на карту
       map.addOverlay(placemark);
       
       return placemark;
       }
   
   function AddGroup(Name, Descr, Cont, Latt, Att, Params)    {
       
       }
       
   function AddRoute(wayPoint1, wayPoint2)    {
       
       router = new YMaps.Router([wayPoint1, wayPoint2],
                              [1]);
                             
       map.addOverlay(router);
       
       return router;                      
       }
       
    function AddPath(Param) {
       
        var PointList = new Array();
       
        for(n = 0; Param.lenght; n++) {
           PointList[n] = GetPointObject(Param[n][0], Param[n][1]);
       }
       polyline = new YMaps.Polyline(PointList);
       map.addOverlay(polyline);
       
    }
   
    function PlacePointObject(X, Y, Descr, StylePM, IndexPoint) {
       
       // Создает метку в центре Москвы
       var placemark = new YMaps.Placemark(new YMaps.GeoPoint(X, Y), {hideIcon: false, style: StylePM});

       // Устанавливает содержимое балуна
       //placemark.name = Descr;
       placemark.description = Descr;
       placemark.setIconContent(IndexPoint);
       
       // Добавляет метку на карту
       map.addOverlay(placemark);        
   }
       
    function GetPointObject(X, Y) {
       return new YMaps.GeoPoint(X, Y);    
    }
   
    function SetBounds(Xmin, Ymin, Xmax, Ymax) {
   
       map.setBounds(new YMaps.GeoBounds(new YMaps.GeoPoint(Xmin, Ymin), new YMaps.GeoPoint(Xmax, Ymax)));
   
    }
   
    function SetCenter(X, Y) {
        map.setCenter(new YMaps.GeoPoint(X, Y));
    }
   
    function GetCoordinates(AddressString) {
     
       //var geocoder = new YMaps.Geocoder(AddressString);
       ////alert(AddressString);
       //var GeoPoint = geocoder.get(0).getGeoPoint();
       //var result = Array();
       //
       //result[0] = GeoPoint.getX();
       //result[1] = GeoPoint.getY();
       //
       ////map.addOverlay(geocoder);
       //return result;    
    }
   
   </script>
</head>
<body>
   <p>Яндекс карта</p>
   <div id="YMapsID" style="width:100%;height:100%"></div>
</body>
</html>

12 mikecool
 
13.06.12
17:20
а потом Браузер.Объект.document.parentWindow.AddPlacemark(..)
типа так наверное )
13 ЗЫ5
 
13.06.12
17:22
(12) Спасибо буду пытаться..
14 ЗЫ5
 
13.06.12
17:48
все это хозяйство пытаюсь передать в
Браузер.Объект.Navigate(ТесктСтраницы)
сразу expljrer сваливается с ошибкой "Не удается найти "ТесктСтраницы" проверьте правильность пути или адреса в Интернете.
15 mikecool
 
13.06.12
17:49
(14) так Navigate нужно ссыль в инет передать, емнип
16 ЗЫ5
 
13.06.12
17:49
(15) так подскажите какой метод? Если не трудно?
17 ЗЫ5
 
13.06.12
17:50
куда ему этот ХТМЛ со скриптами засунуть?
18 mikecool
 
13.06.12
17:51
(16) хз, я под 77 не бодал эту хрень, ищи описалово, как подсунуть текст
19 ЗЫ5
 
13.06.12
17:58
я вот думаю.. тут нашел одну вещь возможно во внешний файл вытащить HTML может так..
20 ЗЫ5
 
13.06.12
17:58
Тbпа файл оболочка.HTML
21 ЧеловекДуши
 
14.06.12
06:40
Круто, еще не слышал об внедрении HTML в 7-ке :)
(0) Ну как успехи?
22 Тихий омут
 
14.06.12
07:23
(0) заюзаем - в целях имитации бурной трудовой деятельности))))
23 Z1
 
14.06.12
08:52
(0) тебе надо сюда
http://www.1cpp.ru/forum/YaBB.pl?num=1316457428/0#0
если получиться выложи там решение.
тоже хочу нечто подобное написать но слишком много
других задач.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.