получение данных в 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 дальше копать...
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан