Имя: Пароль:
1C
1С v8
Яндекс-карта формат XML. Есть координаты объекта. Как показать?
,
0 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>";
================================================================
Отправляю на отладку. И жду чуда: появления карты. Но, наверное, рано... Не появляется.
Я что-то не дописала?
1 DrShad
 
03.05.18
17:14
опять!?
2 DrShad
 
03.05.18
17:16
неплохо бы еще дернуть функцию в которую обернут вывод карты
3 Вафель
 
03.05.18
17:41
разве это не оно
ymaps.ready(init);
4 ugorchina
 
03.05.18
20:12
(0) Дайте доступ стучитесь в аську я помогу! у меня не совсем новая платформа и обновлять себе ее лень давайте доступ посмотрим что там у Вас не работает!
5 ugorchina
 
03.05.18
20:16
(0) я не с проста спрашивал Вас на другой ветке касательно моего кода там есть строчки

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

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

в Вашем примере Вы сразу кладете данные запроса в j а надо как я Вам написал что бы можно было легко посмотреть что там в результате а после уже идти дальше!
8 ugorchina
 
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 это что? зачем это? в описании АПИ яндекса я что то не нашел такого параметра
9 1CNachalo
 
03.05.18
20:54
(8) спасибо большое. Хотела бы сейчас написать, но не могу. Напишу утром
10 ugorchina
 
04.05.18
09:09
(9) Доброе утро! ну что продолжение следует?
11 1CNachalo
 
04.05.18
09:33
(10) Доброе утро) Да, сейчас
12 1CNachalo
 
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");  
========================================================

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

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


а так


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

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

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

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

мой ник Угорщина ))) О чем говорят мужчины смотрели? :-)
20 1CNachalo
 
04.05.18
13:25
(19) Простите, Угорщина. Работает, если набирать адрес латиницей. Не работает - если русскими буквами. Иногда (очень редко) работает и с русскими буквами, но в этом случае выдает неправильно, какую-нибудь Бразилию. Так код отрабатывает на версии 8.3.9. На 8.3.10 и 8.3.11 этот код работает идеально.
Но надо написать так, чтобы карта показывалась и на старых версиях. Что проблема просто в версиях, мне подсказали на той, другой ветке. Это оказалось истиной.
Сейчас в чем задача. Сделать карту не как картинку, а интерактивную, т.е. с возможностью масштабирование клиентом в ходе работы.
Вроде такое в формате json невозможно.
Если так - остается xml.
Координаты объектов уже известны. Надо по ним вывести карту.
Поискала, как это делать. Образцы выложила в начале этой ветки. Вроде всё делаю, как там. Но карта пока не показывается. Ищу, что дописать. Если использовала концовку того, прежнего, кода с json - карта тоже не выдавалась. Тогда я в переменную Локация помещала заранее известные координаты.
Еще раз прошу прощение за искажение имени и ника.
21 ugorchina
 
04.05.18
14:27
ок латиницей как набираете этот адрес г.Москва ул.Тверская д.7 ?
22 1CNachalo
 
04.05.18
14:40
(21) Moskow Tverskaja 7
В этом случае, если даже сделать ошибку в написании -- всё равно выводит карту.
23 1CNachalo
 
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">"
А вот это я не поняла. И этого у меня нет. Может поэтому и карта не выводится?
24 ugorchina
 
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");
    Возврат(Рез);
КонецФункции
25 1CNachalo
 
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
26 1CNachalo
 
04.05.18
15:33
(24) Спасибо большое, Угорщина! только я это уже прописала
27 ugorchina
 
04.05.18
15:42
(25) + (26) я умываю руки извините я сам еще очень плохо знаю 1с (
28 1CNachalo
 
04.05.18
15:50
(27) Спасибо, Угорщина! Я видела, как Вы старались помочь. Спасибо!
29 Lexey_
 
04.05.18
16:25
(25) добавь строку
<meta http-equiv="X-UA-Compatible" content="IE=9"></meta>
30 1CNachalo
 
06.05.18
11:30
(29) в каком месте?
31 Lexey_
 
06.05.18
15:58
(30) рядом с другим <meta>
32 1CNachalo
 
06.05.18
17:54
(29) Нет, спасибо, но ничего не изменило.
Код рабочий. Выше писала, что протестила его на веб-странице - карту выдает. Из 1С не выдает.

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