Автор: SherifSP 23.12.20, 21:00
Добрый вечер уважаемые, стоит задача вывести гугл карту на экран, ранее (2017г.) другим программистом был разработан участок вывода торговых точек на карту и прорисовка маршрутов, но с 2018 года когда гугл ввёл ограничения на количество просмотров карты обработка перестала работать. На данный момент получилось вывести карту в поле HTML документа, но прорисовать маркер на карте никак не получается, платформа выводит ошибку при попытке вызвать js функцию прописанную ранее в html документе. Ниже приведу пример вызова функции с выводом ошибки, буду признателен за помощь.
КодПроцедура ПередОткрытием(Отказ, СтандартнаяОбработка) // Перед открытием формы обработки заполним текст html документа вынесенного на форму
Макет = ЭтотОбъект.ПолучитьМакет("Макет");
Документ = ЭлементыФормы.ПолеHTMLДокумента1.Document;
Документ.write(Макет.ПолучитьТекст());
КонецПроцедуры
Процедура ПолеHTMLДокумента1ДокументСформирован(Элемент)
Name = "Тест трт";
Discr = "Хелетий";
html="<strong>ТРТ: "+Name+"</strong.><br />"+"Контрагент: "+Discr+"<br />"+"Широта: "+Широта+"<br />"+"Долгота: "+Долгота;
ЭлементыФормы.ПолеHTMLДокумента1.document.parentwindow.eval("setLetLng("+Формат(Широта,"ЧРД=.; ЧГ=0")+","+Формат(Долгота,"ЧРД=.; ЧГ=0")+",'"+"НоваяТРТ"+"','"+html+"')");
КонецПроцедуры
В последней строке кода ошибка следующего типа "Метод объекта не обнаружен eval".
Кусок кода с html документа
Код<html><head><title>Google maps API</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><!--Используем IE11, так как API поддерживает версии с 9 по 11 -->
<meta http-equiv="X-UA-Compatible" content="IE=11">
<meta name="GENERATOR" content="MSHTML 11.00.10570.1001">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<style>HTML {
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; HEIGHT: 100%; OVERFLOW: hidden; PADDING-TOP: 0px
}
BODY {
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; HEIGHT: 100%; OVERFLOW: hidden; PADDING-TOP: 0px
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAuTy6WX9zVtq5R5NNJV02zQugosbVddKA" type="text/javascript"></script>
Автор: Vofka 24.12.20, 9:03
А так?
ЭлементыФормы.ПолеHTMLДокумента1.Document.eval(...);
Автор: 29a 27.12.20, 18:47
Цитата(SherifSP @ 23.12.20, 21:00)
ЭлементыФормы.ПолеHTMLДокумента1.Document.parentWindow.eval("setLetLng("+Формат(Широта,"ЧРД=.; ЧГ=0")+","+Формат(Долгота,"ЧРД=.; ЧГ=0")+",'"+"НоваяТРТ"+"','"+html+"')");
Вот так попробуйте:
ЭлементыФормы.ПолеHTMLДокумента1.Перейти("java script:setLetLng("+Формат(Широта,"ЧРД=.; ЧГ=0")+","+Формат(Долгота,"ЧРД=.; ЧГ=0")+",'"+"НоваяТРТ"+"','"+html+"')");