Имя: Пароль:
1C
1С v8
получение данных в 1С из JS-функции
0 Торин
 
21.03.12
10:07
Уважаемые коллеги!
работаю с картой яндекса
для отображения маршрута пишу вот такой код


   function AddRoute(wayPoint1, wayPoint2)    {
   
       if (myRouts.length>0) {lastRouter = myRouts[myRouts.length-1]; map.removeOverlay(lastRouter)};
       
       router = new YMaps.Router([wayPoint1, wayPoint2], [1]);
       map.addOverlay(router);                                                                
     myRouts.push(router);
         
       return router.getDistance();                      
       }
вызываю его из 1с-ки вот так

текМаршрут = ЭлементыФормы.Карта.Document.parentWindow.eval("AddRoute(""" + МаршрутНачалоПути + """, """ + МаршрутОкончаниеПути + """)");

Все отрабатывает, маршрут на карте появляется, предыддущий маршрут удаляется, но вот текМаршрут  по прежнему равно 0, хотя вроде как  router.getDistance() -- должен вернуть длину отображенного маршрута...

Что я делаю не так?
1 orefkov
 
21.03.12
10:09
Попробуй
текМаршрут = ЭлементыФормы.Карта.Document.parentWindow.AddRoute(МаршрутНачалоПути, МаршрутОкончаниеПути);
2 Торин
 
21.03.12
10:15
то же самое. один к одному -- маршруты показываются/убираются, длина не возвращается
3 Торин
 
21.03.12
10:17
но так логишнее, конечно, буду пользоваться таким вызовом...
4 Торин
 
21.03.12
10:18
тока задачка все равно не решена...
5 orefkov
 
21.03.12
10:24
Значит, router.getDistance() фигню возвращает.
Проверь. Поставь например затычку "return 1" - что будет.
6 Торин
 
21.03.12
10:30
и правда проблема в router.getDistance()
С затычкой все нормально -- возвращается 1.
Спасибо, пойду Яндекс API дальше копать...
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан