|
Перестали работать Яндекс.Карты | ☑ | ||
---|---|---|---|---|
0
IdoL2k
17.02.16
✎
12:03
|
В самописной системе был реализован механизм работы с Яндекс.Картами - отображение точек и маршрутов на карте, сохранение координат в 1С.
В один прекрасный момент 16.02.2016 механизм перестал работать. На сайте Яндекс.Карт пишут, что было выполнено переключение ссылки api-maps.yandex.ru/2.0 и api-maps.yandex.ru/2.0-stable, которые теперь соответствуют версии 2.0.43. Но обращение к старшим версиям не помогает. Результат ошибочной работы заключается в том, что вместо отрисовки карты, вывода элементов управления и отображения точек, маршрутов, выполняется только отрисовка карты. Даже стандартные элементы управления не выводит. Воспроизвести ошибку получается следующим образом. Из песочницы https://tech.yandex.ru/maps/jsbox/2.0 можно экспортировать в файлы любой пример. В любом браузере этот пример открывается нормально. А вот в 1С в Поле HTML документа этот же файл отображается криво - только карта-подложка и все, никаких элементов управления. Собственно интересует что исправить нужно? Как восстановить работоспособность? Платформа: 8.3.7.1917, 8.3.6.1999. Режим: Управляемые формы, обычное приложение. |
|||
1
spock
17.02.16
✎
12:17
|
(0) Сделай так:
<meta http-equiv="X-UA-Compatible" content="IE=9"></meta> и <script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU&onload=myOnLoad"></script> дополнительно, но это не роялит: function myOnLoad() { ymaps.ready(init); } где myOnLoad() - отложенная инициализация карты. Яндекс не хочет поддерживать старые версии API. 2.0 должен был совсем давно отвалиться :) |
|||
2
IdoL2k
17.02.16
✎
13:55
|
(1) Спасибо! Помогло!
Только нарисовалась новая проблема. В обработчике события ПриНажатии поля html документа у меня идет получение длинны маршрута. Вываливается ошибка получения метода eval: {ОбщаяФорма.ПрокладкаМаршрута.Форма(118)}: Метод объекта не обнаружен (eval) ДлинаМаршрута = Элементы.Карта.Документ.parentWindow.eval("routeLength()")/1000; |
|||
3
IdoL2k
17.02.16
✎
14:06
|
Как проверить, что в parentWindow попало то, что мне нужно? В отладчике там COMОбъект - не ясно что за ним скрывается
|
|||
4
Широкий
17.02.16
✎
14:11
|
(2) Почему бы напрямую не обратится к функиии?
|
|||
5
IdoL2k
17.02.16
✎
14:24
|
(4) У меня включается редактирование маршрута. Пользователь его правит, двигает точки. В итоге нужно получить длинну маршрута. Как то по другому я могу вызвать функцию routeLength()?
|
|||
6
IdoL2k
18.02.16
✎
09:28
|
(2) Проблему с функцией eval решил с помощью изменения режима отображения. Вместо "IE=9" поставил "IE=8"
|
|||
7
spock
18.02.16
✎
09:33
|
(6) Не надо так: http://risovach.ru/kartinka/9720759
|
|||
8
Широкий
18.02.16
✎
09:47
|
Элементы.Карта.Документ.parentWindow.routeLength()/1000;
Разве так не работает? |
|||
9
Широкий
18.02.16
✎
09:49
|
У меня примерно так сделано:
Попытка parentWindow=Элементы.Эксплорер.Документ.parentWindow; parentWindow.Reset(); Исключение Попытка parentWindow=Элементы.Эксплорер.Документ.defaultView; parentWindow.Reset(); Исключение глОбщегоНазначенияКлиентСервер.ВывестиПредупреждение("Ошибка инициализации карты!"+Символы.ПС); Возврат; КонецПопытки; КонецПопытки; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |