Ошибка на онлайн картах

Исходная ситуация

При использовании функций Маршрут перемещения агента, Где сейчас агенты?, Координаты торговых точек и пр. возникают различные ошибки при отображении онлайн карт. Обычно это "ошибка скрипта".

Если ошибок не происходит, а карты просто не отображаются, то скорее всего у вас заблокирован доступ к необходимым для работы карт сайтам.

Причина - устарели макеты онлайн карт

При использовании этих функций используются онлайн карты 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.

Список форм для изменения:

  1. Карта (Где сейчас агенты, Координаты ТТ, Показать маршрут на карте)
  2. ОпределитьКоординатыКлиентовПоКарте
  3. ПокрытиеТерритории
  4. ФормаПосещения

подробней 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() />