Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Яндекс-карта формат XML. Есть координаты объекта. Как показать?

Яндекс-карта формат XML. Есть координаты объекта. Как показать?
Я
   1CNachalo
 
03.05.18 - 17:09
Очень понравилась статья на эту тему https://sites.google.com/site/1sspravocniktipovyhzadac/7-formy/html-dokument/andeks-karty#TOC-8.3
и видео https://www.youtube.com/watch?v=vbGYz-YYM5s
Пытаюсь что-то сделать по аналогии. Наверное, ошибаюсь.
Но и ошибок не выдает, и карты. Версия 1С 8.3.9.1818

В <head>...</head> дописываю скрипты:
HTMLТекст = "<html>

        |<head>
        |<meta http-equiv=""Content-Type"" content=""text/html; charset=windows-1251"" />
    |    <script src=""https://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU""; type=""text/javascript""></script>
    |    <script type=""text/javascript"">
    // Отключим ошибки выполнения скрипта
    |    window.onerror = myOnError;
    |        ymaps.ready(init);
    |        var myMap,
    |           myPlacemark;
    |
    |      function init(){
    |           myMap = new ymaps.Map (""map"", {
    |               center: [55.76, 37.64],
    |               zoom: 7
    |          });
    |            
    |            myPlacemark = new ymaps.Placemark([55.76, 37.64], {
    |                hintContent: 'Москва!',
    |                balloonContent: 'Столица России'
    |            });
    |            myMap.geoObjects.add(myPlacemark);
    |        }
    // Процедура регенерации ошибки сведена к минимуму, чтобы не показывать ошибки
    |    function myOnError(msg, url, lno) {return true}    
    |   </script>
        |<style>
        //......................
|    </style>
|</head>
|<body>";

А в тег <body>...</body>  дописываю

НTMLТекст = HTMLТекст +"<div id=""map"" style=""width:  100%; height:  100%""></div>";
================================================================
Отправляю на отладку. И жду чуда: появления карты. Но, наверное, рано... Не появляется.
Я что-то не дописала?
 
 
   DrShad
 
1 - 03.05.18 - 17:14
опять!?
   DrShad
 
2 - 03.05.18 - 17:16
неплохо бы еще дернуть функцию в которую обернут вывод карты
   Вафель
 
3 - 03.05.18 - 17:41
разве это не оно
ymaps.ready(init);
   ugorchina
 
4 - 03.05.18 - 20:12
(0) Дайте доступ стучитесь в аську я помогу! у меня не совсем новая платформа и обновлять себе ее лень давайте доступ посмотрим что там у Вас не работает!
   ugorchina
 
5 - 03.05.18 - 20:16
(0) я не с проста спрашивал Вас на другой ветке касательно моего кода там есть строчки

Результат = СоединениеСЯндексом.Получить(ЗапросЯндексу);

что она Вам выдает? выложите сюда
   ugorchina
 
6 - 03.05.18 - 20:16
(5) ВАшей версии платформы
   ugorchina
 
7 - 03.05.18 - 20:23
(5) в общем это Вам намек читайте результат сделайте ряд проверок что бы найти причину почсему Вы не можете чтото получить а после уже можно будет решить данную проблему а так я Вам дал код Вы говорите что Ваш работал! я не спорю НО Вы так же говорите что на версии как я понял Выше Ваш код не отрабатывает ПОЧЕМУ? читайте результат запроса

в Вашем примере Вы сразу кладете данные запроса в j а надо как я Вам написал что бы можно было легко посмотреть что там в результате а после уже идти дальше!
   ugorchina
 
8 - 03.05.18 - 20:25
так же в Вашем примере ошибка была здесь

Ваша строка

 ЗапросККартам = Новый HTTPЗапрос("1.x/?size=450,450&z=13&l=map&pt="+Локация+",pm2rdl1"); 

моя строка

  ЗапросККартам = Новый HTTPЗапрос("1.x/?ll="+Локация+"&size=450,450&z=13&l=map&pt="+Локация+",pmwtm1~"+Локация+",pmwtm99");  

а так же вот в этой строчке 

 ЗапросЯндексу = Новый HTTPЗапрос("1.x/?results=1&format=json&geocode="+ПолучитьСтроку(АдресФактическийКонтрагента)); 


results=1 это что? зачем это? в описании АПИ яндекса я что то не нашел такого параметра
   1CNachalo
 
9 - 03.05.18 - 20:54
(8) спасибо большое. Хотела бы сейчас написать, но не могу. Напишу утром
   ugorchina
 
10 - 04.05.18 - 09:09
(9) Доброе утро! ну что продолжение следует?
 
 Рекламное место пустует
   1CNachalo
 
11 - 04.05.18 - 09:33
(10) Доброе утро) Да, сейчас
   1CNachalo
 
12 - 04.05.18 - 09:45
(5)
При АдресФактическийКонтрагента="г.Москва ул.Тверская д.7";
в
СоединениеСЯндексом.Получить(ЗапросЯндексу)    HTTPОтвет    HTTPОтвет, а именно в том числе:
Заголовки    Соответствие    Соответствие
КодСостояния    200    Число

в СоединениеСЯндексом.Получить(ЗапросЯндексу).ПолучитьТелоКакСтроку()    "{"response":{"GeoObjectCollection":{"metaDataProperty":{"GeocoderResponseMetaData":{"request":"%D0%B3.%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%20%D1%83%D0%BB.%D0%A2%D0%B2%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F%20%D0%B4.7","found":"0","results":"1"}},"featureMember":[]}}}"    Строка

Found: 0, как я поняла, означает, что значений найдено 0.

Если же ввожу тоже название на латинице (выкладывала в той ветке) found:42. Если верно понимаю 42 найденных значения.
========================================================
(8) results=1 это что? зачем это? в описании АПИ яндекса я что то не нашел такого параметра
=========================================================
Это означает, что из всего множества найденных значений выводится одно, наиболее соответствующее.

=======================================================
моя строка
  ЗапросККартам = Новый HTTPЗапрос("1.x/?ll="+Локация+"&size=450,450&z=13&l=map&pt="+Локация+",pmwtm1~"+Локация+",pmwtm99");  
========================================================

Почему надо писать так?
   ugorchina
 
13 - 04.05.18 - 09:47
не так

СоединениеСЯндексом.Получить(ЗапросЯндексу).ПолучитьТелоКакСтроку()

а так 


РезКарты = СоединениеСЯндексом.Получить(ЗапросЯндексу);
   ugorchina
 
14 - 04.05.18 - 09:48
(12) стучитесь в аську так будет быстрее и проще!
   ugorchina
 
15 - 04.05.18 - 09:54
(12) моя строка 
  ЗапросККартам = Новый HTTPЗапрос("1.x/?ll="+Локация+"&size=450,450&z=13&l=map&pt="+Локация+",pmwtm1~"+Локация+",pmwtm99");  
========================================================

Почему надо писать так?

АПИ Почитайте (по Вашей строке не открывается!
   1CNachalo
 
16 - 04.05.18 - 10:07
(14) аськой просто сейчас не пользуюсь, даже не установлена.
Сейчас попробую поставить эту Вашу строку и отпишусь
   1CNachalo
 
17 - 04.05.18 - 10:32
(15) Игорь, по этой строке выдает такую же карту, просто большего размера
   ugorchina
 
18 - 04.05.18 - 11:56
честно говоря я уже запутался У Вас работает или нет? судя по таму что Вы пишите то работает тогда чего Вы от нас хотите вопрос то в чем?

что не получается сделать?
   ugorchina
 
19 - 04.05.18 - 12:15
917) меня не игорь зовут )))

мой ник Угорщина ))) О чем говорят мужчины смотрели? :-)
   1CNachalo
 
20 - 04.05.18 - 13:25
(19) Простите, Угорщина. Работает, если набирать адрес латиницей. Не работает - если русскими буквами. Иногда (очень редко) работает и с русскими буквами, но в этом случае выдает неправильно, какую-нибудь Бразилию. Так код отрабатывает на версии 8.3.9. На 8.3.10 и 8.3.11 этот код работает идеально.
Но надо написать так, чтобы карта показывалась и на старых версиях. Что проблема просто в версиях, мне подсказали на той, другой ветке. Это оказалось истиной.
Сейчас в чем задача. Сделать карту не как картинку, а интерактивную, т.е. с возможностью масштабирование клиентом в ходе работы.
Вроде такое в формате json невозможно.
Если так - остается xml.
Координаты объектов уже известны. Надо по ним вывести карту.
Поискала, как это делать. Образцы выложила в начале этой ветки. Вроде всё делаю, как там. Но карта пока не показывается. Ищу, что дописать. Если использовала концовку того, прежнего, кода с json - карта тоже не выдавалась. Тогда я в переменную Локация помещала заранее известные координаты.
Еще раз прошу прощение за искажение имени и ника.
   ugorchina
 
21 - 04.05.18 - 14:27
ок латиницей как набираете этот адрес г.Москва ул.Тверская д.7 ?
   1CNachalo
 
22 - 04.05.18 - 14:40
(21) Moskow Tverskaja 7
В этом случае, если даже сделать ошибку в написании -- всё равно выводит карту.
   1CNachalo
 
23 - 04.05.18 - 14:50
О выводе интерактивной  яндекс-карты. (2) "неплохо бы еще дернуть функцию в которую обернут вывод карты"
----------------------------------------------------------------------------
В конструкторе яндекс-карт сгенерировала код для карты и поставила ее в контейнер <div> </div>

Получилось так:

НTMLТекст = HTMLТекст +"<div id=""map"" style=""width:  100%; height:  100%"">
      |<script type=""text/javascript"" charset=""utf-8"" async
      |src=""https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3A28076d956074aa38d344cbf2e511c1b3a7d0b5be8be7d2c335ef0de8bc2385fb&width=500&height=400&lang=ru_RU&scroll=true"">;
      |</script></div>";

Это помимо того, что в head в скрипта находится подключение к картам.
Не выводит.

Хотя вот здесь https:_//user.diafan.ru/forum/show123/ (надо убрать знак _) нашла такой алгоритм действий:
1. Идете на api.yandex https://tech.yandex.ru/maps/tools/constructor/, генерите карту, копируете код
2. Создает блок на сайте, и ставите галочку, что это html-код. туда копируете код с Яндекса
3. Вставляете блок, который у вас получился на страницу там где надо.
-------------
Вроде так и сделала.
-------------------------
Хотя здесь же от другого пользователя высказывание:
"З.Ы. Не забывайте, что содержимое вышеупомянутого поля JavaScript не выводится если в шаблоне нету <insert name="show_js">"
А вот это я не поняла. И этого у меня нет. Может поэтому и карта не выводится?
   ugorchina
 
24 - 04.05.18 - 15:16
(21) Moskow Tverskaja 7  транслит текста сделайте

вот код

Функция Трансилитировать(Адрес)
    Рез = СокрЛП(Адрес);   
    Рез = СтрЗаменить(Рез,"а","a");
    Рез = СтрЗаменить(Рез,"б","b");
    Рез = СтрЗаменить(Рез,"в","v");
    Рез = СтрЗаменить(Рез,"г","g");
    Рез = СтрЗаменить(Рез,"д","d");
    Рез = СтрЗаменить(Рез,"е","e");
    Рез = СтрЗаменить(Рез,"ё","e");
    Рез = СтрЗаменить(Рез,"ж","zh");
    Рез = СтрЗаменить(Рез,"з","z");
    Рез = СтрЗаменить(Рез,"и","i");
    Рез = СтрЗаменить(Рез,"к","k");
    Рез = СтрЗаменить(Рез,"л","l");
    Рез = СтрЗаменить(Рез,"м","m");
    Рез = СтрЗаменить(Рез,"н","n");
    Рез = СтрЗаменить(Рез,"о","o");
    Рез = СтрЗаменить(Рез,"п","p");
    Рез = СтрЗаменить(Рез,"р","r");
    Рез = СтрЗаменить(Рез,"с","s");
    Рез = СтрЗаменить(Рез,"т","t");
    Рез = СтрЗаменить(Рез,"у","u");
    Рез = СтрЗаменить(Рез,"ф","f");
    Рез = СтрЗаменить(Рез,"х","h");
    Рез = СтрЗаменить(Рез,"ч","ch");
    Рез = СтрЗаменить(Рез,"ш","sh");
    Рез = СтрЗаменить(Рез,"щ","sch");
    Рез = СтрЗаменить(Рез,"ъ","");
    Рез = СтрЗаменить(Рез,"ь","");
    Рез = СтрЗаменить(Рез,"э","e");
    Рез = СтрЗаменить(Рез,"ю","yu");
    Рез = СтрЗаменить(Рез,"й","i");
    Рез = СтрЗаменить(Рез,"ц","c");
    Рез = СтрЗаменить(Рез,"я","ya");
    Рез = СтрЗаменить(Рез,"ы","i");
    Рез = СтрЗаменить(Рез,"А","A");
    Рез = СтрЗаменить(Рез,"Б","B");
    Рез = СтрЗаменить(Рез,"В","V");
    Рез = СтрЗаменить(Рез,"Г","G");
    Рез = СтрЗаменить(Рез,"Д","D");
    Рез = СтрЗаменить(Рез,"Е","E");
    Рез = СтрЗаменить(Рез,"Ё","E");
    Рез = СтрЗаменить(Рез,"Ж","ZH");
    Рез = СтрЗаменить(Рез,"З","Z");
    Рез = СтрЗаменить(Рез,"И","I");
    Рез = СтрЗаменить(Рез,"К","K");
    Рез = СтрЗаменить(Рез,"Л","L");
    Рез = СтрЗаменить(Рез,"М","M");
    Рез = СтрЗаменить(Рез,"Н","N");
    Рез = СтрЗаменить(Рез,"О","O");
    Рез = СтрЗаменить(Рез,"П","P");
    Рез = СтрЗаменить(Рез,"Р","R");
    Рез = СтрЗаменить(Рез,"С","S");
    Рез = СтрЗаменить(Рез,"Т","T");
    Рез = СтрЗаменить(Рез,"У","U");
    Рез = СтрЗаменить(Рез,"Ф","F");
    Рез = СтрЗаменить(Рез,"Х","H");
    Рез = СтрЗаменить(Рез,"Ч","CH");
    Рез = СтрЗаменить(Рез,"Ш","SH");
    Рез = СтрЗаменить(Рез,"Щ","SCH");
    Рез = СтрЗаменить(Рез,"Ъ","");
    Рез = СтрЗаменить(Рез,"Ь","");
    Рез = СтрЗаменить(Рез,"Ы","I");
    Рез = СтрЗаменить(Рез,"Ц","C");
    Рез = СтрЗаменить(Рез,"Э","E");
    Рез = СтрЗаменить(Рез,"Ю","YU");
    Рез = СтрЗаменить(Рез,"Я","YA");
    Рез = СтрЗаменить(Рез,"Й","I");
    Возврат(Рез);
КонецФункции
   1CNachalo
 
25 - 04.05.18 - 15:31
На данный момент: просто поставила этот код:
<html>
<head>

    <title>Быстрый старт. Размещение интерактивной карты на странице</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="https://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU"; type="text/javascript"></script>
    <script type="text/javascript">
        ymaps.ready(init);
        var myMap,
            myPlacemark;

        function init(){
            myMap = new ymaps.Map ("map", {
                center: [55.76, 37.64],
                zoom: 7
            });
            
            myPlacemark = new ymaps.Placemark([55.76, 37.64], {
                hintContent: 'Москва!',
                balloonContent: 'Столица России'
            });
            
            myMap.geoObjects.add(myPlacemark);
        }
    </script>
</head>

<body>
    <div id="map" style="width: 600px; height: 400px"></div>
</body>

</html>
в Блокнот. Сохранила как 1.html
Карта выводится.
Тоже самое в 1С - карта не выводится. Что не так?
Ведь вот здесь (https://sites.google.com/site/1sspravocniktipovyhzadac/7-formy/html-dokument/andeks-karty#TOC-8.3) человек в 1С это использовал. При том на более старой версии (8.2), у меня 8.3.9
   1CNachalo
 
26 - 04.05.18 - 15:33
(24) Спасибо большое, Угорщина! только я это уже прописала
   ugorchina
 
27 - 04.05.18 - 15:42
(25) + (26) я умываю руки извините я сам еще очень плохо знаю 1с (
   1CNachalo
 
28 - 04.05.18 - 15:50
(27) Спасибо, Угорщина! Я видела, как Вы старались помочь. Спасибо!
   Lexey_
 
29 - 04.05.18 - 16:25
(25) добавь строку
<meta http-equiv="X-UA-Compatible" content="IE=9"></meta>
   1CNachalo
 
30 - 06.05.18 - 11:30
(29) в каком месте?
   Lexey_
 
31 - 06.05.18 - 15:58
(30) рядом с другим <meta>
   1CNachalo
 
32 - 06.05.18 - 17:54
(29) Нет, спасибо, но ничего не изменило.
Код рабочий. Выше писала, что протестила его на веб-странице - карту выдает. Из 1С не выдает.

В чем дело - поняла, т.к. написала запрос тех.поддержке Яндекс-карт и получила от них ответ. Если кому-то интересно - поясню в чем дело.
   Lexey_
 
33 - 06.05.18 - 19:28
(32) и в чем?
 
 


Список тем форума
Рекламное место пустует  Рекламное место пустует
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует