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


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) и в чем?
 
 


Список тем форума
Рекламное место пустует  Рекламное место пустует
2 + 2 = 3.9999999999999999999999999999999...
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует