Ошибка на онлайн картах
Исходная ситуация
При использовании функций Маршрут перемещения агента, Где сейчас агенты?, Координаты торговых точек и пр. возникают различные ошибки при отображении онлайн карт. Обычно это "ошибка скрипта".
Если ошибок не происходит, а карты просто не отображаются, то скорее всего у вас заблокирован доступ к необходимым для работы карт сайтам.
Причина - устарели макеты онлайн карт
При использовании этих функций используются онлайн карты Google, Yandex и OpenStreet. Эти сервисы периодически изменяют условия своей работы и в Моби-С устаревают процедуры для работы с онлайн картами (макеты).
Решение
Необходимо обновить макеты для работы с онлайн картами.
Возможные варианты обновления макетов карт.
1) Обновление Моби-С до актуальной версии.
2) Загрузить свежие макеты. В обработках Моби-С появилась функция обновления макетов для работы с онлайн картами. Работает для обработок Интеграция Моби-С с 1С 8.2 (5.5).epf с версии 5.5.7 и Интеграция Моби-С с 1С Управление торговлей 11 (5.5).epf с версии 5.5.8 В обработке перейдите в верхнем меню Справка - Обновить макеты онлайн карт. Если у вас нет этого пункта меню значит ваша обработка не поддерживает обновление макетов карт.
3) В прочих случаях может помочь только ручное обновление макетов. Выполнить эту задачу может программист 1С.
Инструкция для программиста по обновлению макетов карт
В конфигураторе открыть модуль интеграции, зайти Макеты - Макет Google Открыть макет из вложения в текстовом редакторе и заменить текст макета в обработке. Ссылки на скачивание свежих макетов. Управление торговлей 10.3 http://mobi-c.ru/arc/google10.txt Управление торговлей 11 http://mobi-c.ru/arc/google11.txt
Новый макет использует режим совместимости браузера - IE9, поэтому в обработке необходимо заменить все вызовы eval.
Список форм для изменения:
- Карта (Где сейчас агенты, Координаты ТТ, Показать маршрут на карте)
- ОпределитьКоординатыКлиентовПоКарте
- ПокрытиеТерритории
- ФормаПосещения
подробней http://infostart.ru/public/347442/
Пример замены
Старый код:
Процедура ПереместитьЦентрКарты(Широта, Долгота)\\ ШиротаЦентр = КоординатаВСтроку(Широта);\\ ДолготаЦентр = КоординатаВСтроку(Долгота);\\ ЭлементыФормы.ПолеHTMLДокументаБраузер.Document.parentWindow.eval( "NaCenter(" + ШиротаЦентр + ", " + ДолготаЦентр + ", map.zoom);");\\ КонецПроцедуры
Новый код:
Процедура ПереместитьЦентрКарты(Широта, Долгота)\\ Элементы.ПолеБраузер.Документ.getElementById("ExtCommand").innerHTML = "NaCenter(" + КоординатаВСтроку(Широта) + ", " + КоординатаВСтроку(Долгота) + ");";\\ Элементы.ПолеБраузер.Документ.getElementById("SendEvent").fireEvent("onclick");\\ КонецПроцедуры
В макетах для Google и OpenStreet необходимо добавить следующий код:
1) В <script>…</script> необходимо добавить
function ExecCommand () { code = document.getElementById ("ExtCommand").innerHTML; result = "" + eval (code); document.getElementById ("ExtCommandResult").innerHTML = result; }
2) В <BODY>…</BODY> необходимо добавить
<div id="ExtCommand" style="display:none">extcommand</div>\\ <div id="ExtCommandResult" style="display:none">js_result</div> \\ <input type=button style="display:none" id="SendEvent" onclick=ExecCommand() />