Версия для печати темы (https://pro1c.org.ua/index.php?s=5c7b27ce5cf24c9d47d0b8191ade21ee&showtopic=63673)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Не работают гугл карты

Автор: 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+"')");

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua