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

  1  2   

Карта расположения клиента

Карта расположения клиента
Я
   1CNachalo
 
01.05.18 - 08:14
Надо: в форме списка справочника Контрагенты при выборе контрагента выводить его расположение на карте.

Нашла вот такое классное видео на тему географических карт в 1С https://www.youtube.com/watch?v=-v2GIphl6OY&t=1257s.

Только там выводится карта в виде отчета.



Применительно к своей задаче попробовала немного изменить. Ошибок ни дает ни синтаксических, ни при запуске 1С. Но карты тоже нет.

Может кто подскажет, что надо изменить.



В общем модуле получена переменная с адресом контрагента Адрес.

Тут же ниже прописываю:



 АдресФактическийКонтрагента=Адрес;

// 1) получение координат адреса


ЗапросЯндексу= Новый HTTPЗапрос("1.x/?results=1&format=json&geocode="+КодироватьСтроку(АдресФактическийКонтрагента,СпособКодированияСтроки.КодировкаURL)); СоединениеСЯндексом= новый HTTPСоединение("geocode-maps.yandex.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL);

ЧтениеДжо = Новый ЧтениеJSON;     

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

Джо= ПрочитатьJSON(ЧтениеДжо, Истина);     

МассивЛокаций = Джо ["response"]["GeoObjectCollection"]["featureMember"];     

Если   МассивЛокаций.Количество()>0 Тогда      Регион = МассивЛокаций [0] ["GeoObject"]["description"];     

Локация = СтрЗаменить(МассивЛокаций [0] ["GeoObject"]["Point"]["pos"]," "  ,  ",");

// 2) получение изображения по координатам      СоединениеСКартами= Новый HTTPСоединение ("static-maps.yandex.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL);     


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

Карта = ПоместитьВоВременноеХранилище(Новый Картинка(СоединениеСКартами.Получить(ЗапросККартам).ПолучитьТелоКакДвоичныеДанные()));       

КонецЕсли;



///////////////////////////////////////////////////////////////


первую строку очень изменила.

В видео примерно так:

АдресФактическийКонтрагента=ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.Контрагент,"АдресФактическийКонтрагента");



У меня:

АдресФактическийКонтрагента=Адрес;

Может так не работает? Или что-то другое?
 
 
   arsik
 
1 - 01.05.18 - 08:23
Возможно это старое видео и апи яндекс карт поменялось.
Попробуйте руками создать урл и ввести его в браузере.
   1CNachalo
 
2 - 01.05.18 - 08:27
(0) И еще:
Вывод информации здесь( в этой части общего модуля) идет через поле html. Т.е., чтобы  что-то вывести, прописываю, например:
HTMLТекст = HTMLТекст + "<td>Здесь будет карта объекта</td>";

Может, не хватает какого-то тега для вывода сформированного изображения карты?
   1CNachalo
 
3 - 01.05.18 - 08:34
Добавила тег:
HTMLТекст = HTMLТекст +" <img src = " + Карта + ">";

никаких ошибок не выдает, но и карты тоже нет.
   Cyberhawk
 
4 - 01.05.18 - 08:38
Бывает, держись там
   1CNachalo
 
5 - 01.05.18 - 08:56
(1) Если правильно Вас поняла.
Набрала руками строку с видео
https://geocode-maps.yandex.ru/1.x/?geocode=Москва,+Тверская+улица,+дом+7

Выдало "This XML file does not appear to have any style information associated with it. The document tree is shown below." и длинный код.

Гугл переводчик перевел: "
У этого XML-файла нет никакой информации, связанной с ним. Дерево документов показано ниже."

Это значит, что я что-то не правильно делала, повторяя за видео? Изменился адрес? Другое?
   Lexey_
 
6 - 01.05.18 - 10:22
(5) зачем гадать? есть же документация
https://tech.yandex.ru/maps/staticapi/?from=mapsapi
   1CNachalo
 
7 - 01.05.18 - 11:12
(6) Спасибо, сейчас посмотрю
   hhhh
 
8 - 01.05.18 - 12:52
(7) всё-таки style с английского переводится как стиль. Выкиньте этот гугл-переводчик
   1CNachalo
 
9 - 01.05.18 - 13:09
(8) учту, спасибо
   1CNachalo
 
10 - 01.05.18 - 13:13
(6) по этому адресу все сверила: все в видео совпадает, идут ровненько по этому сайту.
Перепроверила все в своем коде. Как там. Отличие: пишу его не для отчета и не в отчете, а для формы справочника и в общем модуле.
Еще 1 строка кода отличается.
Но ошибок не выдает. Но и результата тоже(
 
 Рекламное место пустует
   Franchiser
 
11 - 01.05.18 - 16:56
Держи нас в курсе
   1CNachalo
 
12 - 01.05.18 - 17:14
(11) Вы, наверное, шутите)
Но мало ли, вдруг кто что подскажет..
Во-общем, карта появляется, но не для всех клиентов. При этом если и появляется, то с совершенно неправильным расположением (Бразилия и т.д., хотя запрашиваемые адреса исключительно СНГ). Проверила: в переменную Адрес попадают правильные адреса. Если напрямую вводить такие адреса в Яндекс-карту - отображает правильно, а через 1С - те же адреса считываются криво.
Почему они не правильно обрабатываются через написанный таким образом код (т.е.находятся неправильные адреса или не находятся вовсе)?
   1CNachalo
 
13 - 01.05.18 - 19:53
Итог на данный момент: если адрес в переменную попадает русскими буквами - Бразилия и т.п.
То же самое переписываю англ.буквами - выдает точнейший адрес.
   Fram
 
14 - 01.05.18 - 20:05
(13) значит играйся с кодировками
   Fram
 
15 - 01.05.18 - 20:55
Не знаю как у Вас, но вот такой код у меня на 8.3.10 работает:

    АдресФактическийКонтрагента = "Москва, Тверская улица, дом 7";

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

    ЧтениеДжо = Новый ЧтениеJSON;     
    
    ЧтениеДжо.УстановитьСтроку(СоединениеСЯндексом.Получить(ЗапросЯндексу).ПолучитьТелоКакСтроку());     

    Джо= ПрочитатьJSON(ЧтениеДжо, Истина);     

    МассивЛокаций = Джо ["response"]["GeoObjectCollection"]["featureMember"];     

    Если МассивЛокаций.Количество() > 0 Тогда

        Локация = СтрЗаменить(МассивЛокаций [0] ["GeoObject"]["Point"]["pos"]," "  ,  ",");

        ЗапросККартам = Новый HTTPЗапрос("1.x/?size=450,450&z=13&l=map&pt="+Локация+",pm2rdl1");     
        СоединениеСКартами = Новый HTTPСоединение("static-maps.yandex.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL);

        Карта = ПоместитьВоВременноеХранилище(Новый Картинка(СоединениеСКартами.Получить(ЗапросККартам).ПолучитьТелоКакДвоичныеДанные()));
        
    КонецЕсли
   Fram
 
16 - 01.05.18 - 22:22
ПолучитьСтроку это серверная функция  = КодироватьСтроку(АдресФактическийКонтрагента,СпособКодированияСтроки.КодировкаURL)
   1CNachalo
 
17 - 02.05.18 - 12:15
(16) Т.е. отличается одна вот эта строка?
 ЗапросЯндексу = Новый HTTPЗапрос("1.x/?results=1&format=json&geocode="+ПолучитьСтроку(АдресФактическийКонтрагента)); 

ПолучитьСтроку - эту функцию надо создать дополнительно?

в чем отличие этих способов?
   1CNachalo
 
18 - 02.05.18 - 12:18
(14) это как?
   Fram
 
19 - 02.05.18 - 19:43
(17) не не.. мне пришлось создать функцию потому что КодироватьСтроку недоступен на тонком клиенте (интересно почему, кстати). ты, судя по всему, все делаешь на сервере, поэтому тебе не надо это выносить в отдельную функцию.
   Fram
 
20 - 02.05.18 - 19:45
(17) Короче, твой код рабочий, если не наделала глупых ошибок, которых отсюда не видно, и если в качестве адреса действительно передаешь что то похожее на адрес, а не полную фигню.
   1CNachalo
 
21 - 02.05.18 - 19:49
(20) Я проверяю, что передаю, в отладчике. Там в этой переменной именно адрес. Но на русском не воспринимает и все тут
   Fram
 
22 - 02.05.18 - 19:51
(21) покажи еще раз весь код и скриншот из отладчика со значением переменной АдресФактическийКонтрагента перед отправкой ХТТП запроса
   Fram
 
23 - 02.05.18 - 19:52
и значение переменной Локация
   1CNachalo
 
24 - 02.05.18 - 20:03
(23)


АдресФактическийКонтрагента = "Moscow, Tverscay,  7";
// 1) получение координат адреса

    
        
    ЗапросЯндексу= Новый HTTPЗапрос("/1.x/?results=1&format=json&geocode="+КодироватьСтроку(АдресФактическийКонтрагента,СпособКодированияСтроки.КодировкаURL));
    СоединениеСЯндексом= новый HTTPСоединение("geocode-maps.yandex.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
    
     ЧтениеДжо = Новый ЧтениеJSON;
      ЧтениеДжо.УстановитьСтроку(СоединениеСЯндексом.Получить(ЗапросЯндексу).ПолучитьТелоКакСтроку());
      Джо= ПрочитатьJSON(ЧтениеДжо, Истина);
      МассивЛокаций = Джо ["response"]["GeoObjectCollection"]["featureMember"];
      Если   МассивЛокаций.Количество()>0 Тогда
          Регион = МассивЛокаций [0] ["GeoObject"]["description"];
          Локация = СтрЗаменить(МассивЛокаций [0] ["GeoObject"]["Point"]["pos"]," "  ,  ",");
// 2) получение изображения по координатам

          СоединениеСКартами= Новый HTTPСоединение ("static-maps.yandex.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
          ЗапросККартам= Новый HTTPЗапрос("1.x/?lang=ru_RU&size=330,250&z=14&l=map&pt="+Локация+",pm2rdl1");
          Карта = ПоместитьВоВременноеХранилище(Новый Картинка(СоединениеСКартами.Получить(ЗапросККартам).ПолучитьТелоКакДвоичныеДанные()));          
HTMLТекст = HTMLТекст +" <img src = " + Карта + ">";
КонецЕсли;

-------------------------------------------------------------------
Вот когда в переменной прописано так - красивая карта выходит.
А если как у тебя на русском - просто пусто.
Сейчас скрин добавлю
   Fram
 
25 - 02.05.18 - 20:09
(24) ну попробуй разные кодировки в качестве 3го параметра к функции КодироватьСтроку. например "utf-8". хотя она по умолчанию должен быть
   Fram
 
26 - 02.05.18 - 20:10
*должна быть
   1CNachalo
 
27 - 02.05.18 - 20:16
(25) это дописать в код? сюда:

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

так?

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

или как-то иначе?

---
о скринах: пока не нашла, как сюда прикрепить
   Fram
 
28 - 02.05.18 - 20:17
(27) синтакс-помощник знаем что такое?
   Fram
 
29 - 02.05.18 - 20:19
ладно не важно это.. платформа все равно никакую другую кодировку не принимает похоже. лучше покажи что отладчик показывает для ЗапросЯндексу.АдресРесурса
   Fram
 
30 - 02.05.18 - 20:26
У меня даже так работает:
ЗапросЯндексу = Новый HTTPЗапрос("1.x/?results=1&format=json&geocode=" + СтрЗаменить(АдресФактическийКонтрагента, " ", "+"));

хотя это не очень правильно. можно нарваться на недопустимый для URL символ в адресе
   1CNachalo
 
31 - 02.05.18 - 20:29
(29)
При АдресФактическийКонтрагента    "Москва, Тверская улица, дом 7"    Строка (это из табло отладки) в ветке итого даже не заходим. Переменная Локация имеет значение "Неопределено"

Изменяю данные в переменной. Новый круг отладки.

Данные из табло:
"АдресФактическийКонтрагента    "Moskva, Tverskay, 7"    Строка"
При этом "Локация    "37.617635,55.755814"    Строка"
тоже из табло
   Fram
 
32 - 02.05.18 - 20:33
Теперь скажи чему равно ЗапросЯндексу.АдресРесурса при АдресФактическийКонтрагента =   "Москва, Тверская улица, дом 7"
   Fram
 
33 - 02.05.18 - 20:35
(32)+ должно быть
1.x/?results=1&format=json&geocode=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0,%20%D0%A2%D0%B2%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F%20%D1%83%D0%BB%D0%B8%D1%86%D0%B0,%20%D0%B4%D0%BE%D0%BC%207
 
 
   1CNachalo
 
34 - 02.05.18 - 20:39
(33) АдресРесурса    "/1.x/?results=1&format=json&geocode=Moskva%2C%20Tverskay%2C%207"    Строка
   Fram
 
35 - 02.05.18 - 20:42
(34) это в случае латиницы, а для русской версии?
   1CNachalo
 
36 - 02.05.18 - 20:42
(33) это при АдресФактическийКонтрагента    "Moskva, Tverskay, 7"    Строка
   1CNachalo
 
37 - 02.05.18 - 20:44
(35) АдресРесурса    "/1.x/?results=1&format=json&geocode=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C%20%D0%A2%D0%B2%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F%20%D1%83%D0%BB%D0%B8%D1%86%D0%B0%2C%20%D0%B4%D0%BE%D0%BC%207"    Строка
Это для русской версии
   Fram
 
38 - 02.05.18 - 20:46
   Fram
 
39 - 02.05.18 - 20:47
упс.. вообще то я в кодировке писал. миста сама конвертнула )
   Fram
 
40 - 02.05.18 - 20:48
иди отладчиком дальше. смотри что возвращает СоединениеСЯндексом.Получить(ЗапросЯндексу).ПолучитьТелоКакСтроку()
   Fram
 
41 - 02.05.18 - 20:48
должно быть то же что и браузер возвращает - json структура с данными локации
   1CNachalo
 
42 - 02.05.18 - 20:52
(41) СоединениеСЯндексом.Получить(ЗапросЯндексу).ПолучитьТелоКакСтроку()    "{"response":{"GeoObjectCollection":{"metaDataProperty":{"GeocoderResponseMetaData":{"request":"%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C%20%D0%A2%D0%B2%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F%20%D1%83%D0%BB%D0%B8%D1%86%D0%B0%2C%20%D0%B4%D0%BE%D0%BC%207","found":"0","results":"1"}},"featureMember":[]}}}"    Строка
   1CNachalo
 
43 - 02.05.18 - 21:13
(41) если я правильно понимаю, то found":"0" здесь говорит о том, что наполненность ответа =0, т.е. ничего не найдено
   Fram
 
44 - 02.05.18 - 21:53
(42) че то ерунда какая то. пробовала (подчеркивание надо убрать) https_://geocode-maps.yandex.ru/1.x/?results=1&format=json&geocode=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C%20%D0%A2%D0%B2%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F%20%D1%83%D0%BB%D0%B8%D1%86%D0%B0%2C%20%D0%B4%D0%BE%D0%BC%207

в браузер вставить? 
операционная система какая? версия 1с какая?
   1CNachalo
 
45 - 03.05.18 - 05:16
(44) windows 10 и 1С:Предприятие 8.3 (8.3.9.1818)
   Fram
 
46 - 03.05.18 - 05:18
(45) ну, попробуй 8.3.10 или 11 последние. просто догадка
   1CNachalo
 
47 - 03.05.18 - 05:40
(46) а это как-то поможет, если на работе установлена именно 8.3.9? да и мне просто пока негде взять эти версии
   1CNachalo
 
48 - 03.05.18 - 05:49
(46) посмотрела в отладчике: при внесении того же адреса на английском находит 42 варианта
   Fram
 
49 - 03.05.18 - 06:09
(48) да, причем тут это.. вот та вот закодированная строка должна передаваться и распознаваться сервером как фраза на кириллице. у тебя по неведомой для меня причине этого не происходит, и сервер эту строку как есть получает и обрабатывает.

подождем. может кто знающий заглянет в ветку
 
 Рекламное место пустует
   Fram
 
50 - 03.05.18 - 06:17
(47) ну, попробовать не помешает. будет повод и на работе обновить все.

URL из (44) в браузер вставляла?
   Fram
 
51 - 03.05.18 - 06:30
Пока можешь сделать без кодировки. Просто убери служебные символы URL типа /,?,& и тп.
   ugorchina
 
52 - 03.05.18 - 06:34
Транслитируйте адрес!
   ugorchina
 
53 - 03.05.18 - 06:35
+(52) либо передавайте в utf-8
   Fram
 
54 - 03.05.18 - 06:37
(53) он по умолчанию в utf-8. другую кодировку (там почему то строковый параметр) платформа просто не принимает, чего только не пробовал
   1CNachalo
 
55 - 03.05.18 - 08:05
(50) да, из 44 вставила в браузер, удалив знак подчеркивания. И в опере, и IE пишет - страница недоступна. А должна что-то выдать? Вы загружаете - у вас выдает?
   Fram
 
56 - 03.05.18 - 08:13
(55) у меня прекрасно работает - хром и файрфокс возвращают правильный json, IE предлагает скачать тот же json как файл
   arsik
 
57 - 03.05.18 - 08:32
(55) А вот это ( https://geocode-maps.yandex.ru/1.x/ ) что ни будь возвращает?
   arsik
 
58 - 03.05.18 - 08:34
+(57) попробуй адрес домена урл на ip поменять. 
geocode-maps.yandex.ru на 213.180.204.122
Может у тебя с ДНС проблемы.
   arsik
 
59 - 03.05.18 - 08:35
+ (58) Не, с ip не прокатит. Там нгинкс прокси на входе.
   1CNachalo
 
60 - 03.05.18 - 09:22
(51) Просто убери служебные символы URL типа /,?,& и тп.
Откуда? Из передаваемого адреса? Если да, то убрала. Например, при АдресФактическийКонтрагента = "Москва Тверская 7" тоже карту не возвращает.
   1CNachalo
 
61 - 03.05.18 - 09:23
(52) "Транслитируйте адрес!"
Это как?
   1CNachalo
 
62 - 03.05.18 - 09:23
(53) либо передавайте в utf-8

Что-то в этом случае надо в коде дописать?
   ugorchina
 
63 - 03.05.18 - 09:25
где код дайте я покапаюсь )
   ugorchina
 
64 - 03.05.18 - 09:34
(63) ну да  АдресФактическийКонтрагента = "Москва, Тверская улица, дом 7";

а локация показывает https://yandex.by/maps/?source=wizgeo&utm_source=serp&l=map&utm_medium=maps-desktop&mode=search&text=37.611203%C2%B0N%2055.757972%C2%B0E&sll=55.757972%2C37.611200

интересненько
   1CNachalo
 
65 - 03.05.18 - 09:34
(56) "у меня прекрасно работает - хром и файрфокс возвращают правильный json, IE предлагает скачать тот же json как файл"
---------------------------------------------------------
приехала на работу. с рабочего компьютера эта ссылка выдает результат, вроде правильный:
{"response":{"GeoObjectCollection":{"metaDataProperty":{"GeocoderResponseMetaData":{"request":"Москва, Тверская улица, дом 7","found":"8","results":"1"}},"featureMember":[{"GeoObject":{"metaDataProperty":{"GeocoderMetaData":{"kind":"house","text":"Россия, Москва, Тверская улица, 7","precision":"exact","Address":{"country_code":"RU","formatted":"Москва, Тверская улица, 7","Components":[{"kind":"country","name":"Россия"},{"kind":"province","name":"Центральный федеральный округ"},{"kind":"province","name":"Москва"},{"kind":"locality","name":"Москва"},{"kind":"street","name":"Тверская улица"},{"kind":"house","name":"7"}]},"AddressDetails":{"Country":{"AddressLine":"Москва, Тверская улица, 7","CountryNameCode":"RU","CountryName":"Россия","AdministrativeArea":{"AdministrativeAreaName":"Москва","Locality":{"LocalityName":"Москва","Thoroughfare":{"ThoroughfareName":"Тверская улица","Premise":{"PremiseNumber":"7"}}}}}}}},"description":"Москва, Россия","name":"Тверская улица, 7","boundedBy":{"Envelope":{"lowerCorner":"37.607098 55.755657","upperCorner":"37.615309 55.760287"}},"Point":{"pos":"37.611203 55.757972"}}}]}}}
Но и здесь адрес, написанный рус.буквами, карту не выдает
   ugorchina
 
66 - 03.05.18 - 09:35
(61) я имел в виду так КодироватьСтроку(АдресФактическийКонтрагента,СпособКодированияСтроки.КодировкаURL))

извините не правильно выразился
   1CNachalo
 
67 - 03.05.18 - 09:35
(63) где код дайте я покапаюсь )
====================================================

АдресФактическийКонтрагента = "Москва, Тверская улица, дом 7";

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

    ЧтениеДжо = Новый ЧтениеJSON;     
    
    ЧтениеДжо.УстановитьСтроку(СоединениеСЯндексом.Получить(ЗапросЯндексу).ПолучитьТелоКакСтроку());     

    Джо= ПрочитатьJSON(ЧтениеДжо, Истина);     

    МассивЛокаций = Джо ["response"]["GeoObjectCollection"]["featureMember"];     

    Если МассивЛокаций.Количество() > 0 Тогда

        Локация = СтрЗаменить(МассивЛокаций [0] ["GeoObject"]["Point"]["pos"]," "  ,  ",");

        ЗапросККартам = Новый HTTPЗапрос("1.x/?size=450,450&z=13&l=map&pt="+Локация+",pm2rdl1");     
        СоединениеСКартами = Новый HTTPСоединение("static-maps.yandex.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL);

        Карта = ПоместитьВоВременноеХранилище(Новый Картинка(СоединениеСКартами.Получить(ЗапросККартам).ПолучитьТелоКакДвоичныеДанные()));
        
    КонецЕсли
   1CNachalo
 
68 - 03.05.18 - 09:37
(66) так вроде у меня в коде так и написано. Или я не правильно Вас поняла?
   1CNachalo
 
69 - 03.05.18 - 09:38
(57) когда кликаю на эту ссылку - результат:

<ymaps xmlns="http://maps.yandex.ru/ymaps/1.x"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation=" http://maps.yandex.ru/business/1.x http://maps.yandex.ru/schemas/business/1.x/business.xsd http://maps.yandex.ru/geocoder/1.x http://maps.yandex.ru/schemas/geocoder/1.x/geocoder.xsd http://maps.yandex.ru/psearch/1.x http://maps.yandex.ru/schemas/psearch/1.x/psearch.xsd http://maps.yandex.ru/search/1.x http://maps.yandex.ru/schemas/search/1.x/search.xsd http://maps.yandex.ru/web/1.x http://maps.yandex.ru/schemas/web/1.x/web.xsd http://maps.yandex.ru/search/internal/1.x http://maps.yandex.ru/schemas/search/internal/1.x/internal.xsd">;
<GeoObjectCollection>
<metaDataProperty xmlns="http://www.opengis.net/gml">;
<GeocoderResponseMetaData xmlns="http://maps.yandex.ru/geocoder/1.x"; xmlns:arr="http://maps.yandex.ru/arrival/1.x"; xmlns:si="http://maps.yandex.ru/search/internal/1.x">;
<request>empty</request>
<found>0</found>
<results>10</results>
<boundedBy xmlns="http://www.opengis.net/gml">;
<Envelope>
<lowerCorner>37.04842675 55.43644829</lowerCorner>
<upperCorner>38.17590226 56.04690124</upperCorner>
</Envelope>
</boundedBy>
</GeocoderResponseMetaData>
</metaDataProperty>
</GeoObjectCollection>
</ymaps>
   ugorchina
 
70 - 03.05.18 - 10:04
Вот правильный запрос щас набросаю на 1с
   ugorchina
 
71 - 03.05.18 - 10:04
   1CNachalo
 
72 - 03.05.18 - 10:33
(71) немного не поняла, это всё мне надо поставить в общий модуль для вывода карты? или как?
   ugorchina
 
73 - 03.05.18 - 10:54
(72) у меня работает вот код
АдресФактическийКонтрагента = "Москва, +Тверская +улица, +дом +7";

ЗапросЯндексу = Новый HTTPЗапрос("1.x/?format=json&geocode="+АдресФактическийКонтрагента); 
СоединениеСЯндексом= новый HTTPСоединение("geocode-maps.yandex.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
Результат = СоединениеСЯндексом.Получить(ЗапросЯндексу);
Если Результат.КодСостояния = 200 Тогда
    ЧтениеДжо = Новый ЧтениеJSON;     
    ЧтениеДжо.УстановитьСтроку(Результат.ПолучитьТелоКакСтроку());     
    
    Джо= ПрочитатьJSON(ЧтениеДжо, Истина);     
    
    МассивЛокаций = Джо ["response"]["GeoObjectCollection"]["featureMember"];     
    
    Если МассивЛокаций.Количество() > 0 Тогда
        
        Локация = СтрЗаменить(МассивЛокаций [0] ["GeoObject"]["Point"]["pos"]," "  ,  ",");
        //1.x/?ll="+Локация+"size=450,450&z=13&l=map&pt="+Локация+",pm2rdl1

        ЗапросККартам = Новый HTTPЗапрос("1.x/?ll="+Локация+"&size=450,450&z=13&l=map&pt="+Локация+",pmwtm1~"+Локация+",pmwtm99");     
        СоединениеСКартами = Новый HTTPСоединение("static-maps.yandex.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
        РезультатСКратами = СоединениеСКартами.Получить(ЗапросККартам);
        Если Результат.КодСостояния = 200 Тогда
            Карта = ПоместитьВоВременноеХранилище(Новый Картинка(РезультатСКратами.ПолучитьТелоКакДвоичныеДанные()));
        Иначе
            Сообщить("Второе соединение не удачное код состояния - "+Результат.КодСостояния);
        КонецЕсли;
    КонецЕсли
    
Иначе
    Сообщить("Первое соединение не удачное код состояния - "+Результат.КодСостояния);
КонецЕсли;
   cons74
 
74 - 03.05.18 - 11:09
(0) Для информации. ERP. http://shot.qip.ru/00Qtkp-4oZhWgxFu/
   ugorchina
 
75 - 03.05.18 - 11:21
Можно еще так сделать


Процедура КнопкаВыполнить(Кнопка)
    АдресФактическийКонтрагента = "Москва, +Тверская +улица, +дом +7";
    ЗапросЯндексу = Новый HTTPЗапрос("1.x/?format=json&geocode="+АдресФактическийКонтрагента);
    СоединениеСЯндексом= новый HTTPСоединение("geocode-maps.yandex.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
    Результат = СоединениеСЯндексом.Получить(ЗапросЯндексу);
    Если Результат.КодСостояния = 200 Тогда
        ЧтениеДжо = Новый ЧтениеJSON;    
        ЧтениеДжо.УстановитьСтроку(Результат.ПолучитьТелоКакСтроку());    
        
        Джо= ПрочитатьJSON(ЧтениеДжо, Истина);    
        
        МассивЛокаций = Джо ["response"]["GeoObjectCollection"]["featureMember"];    
        
        Если МассивЛокаций.Количество() > 0 Тогда
            
            Локация = СтрЗаменить(МассивЛокаций [0] ["GeoObject"]["Point"]["pos"]," "  ,  ",");
            
            URL="http://static-maps.yandex.ru/1.x/?ll="+Локация+"&size=450,450&z=13&l=map&pt="+Локация+",pmwtm1~"+Локация+",pmwtm99";;
            ЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1.Перейти(URL)
            
        КонецЕсли    
    Иначе
        Сообщить("Первое соединение не удачное код состояния - "+Результат.КодСостояния);
    КонецЕсли;
КонецПроцедуры

только на форме в обработке создайте элемент Поле HTML докмуента
   ugorchina
 
76 - 03.05.18 - 11:29
если в справочники на форме списка тогда создаете опять же HTML поле в Процедуру СправочникСписокПриАктивизацииСтроки()

ложите мой код 

адрес надо обрабатывать примерно вот так (не знаю какие поля у Вас)

Адрес = СокрЛП(Город+",+"+область+"+"+Улица+"+",+Дом+"+"+НомерДома)
   ugorchina
 
77 - 03.05.18 - 11:30
+(76) Адрес я имел  в виду АдресФактическийКонтрагента = "Москва, +Тверская +улица, +дом +7";
   ugorchina
 
78 - 03.05.18 - 11:50
что то (0) ушла обидел что ли? :-)
   1CNachalo
 
79 - 03.05.18 - 12:09
(78) нет, сейчас смотрю, что Вы написали. А ушла - так мы смотрели написанный ранее код с руководителем.
Скажите, а у Вас какая версия 1С?
Просто реально, тут правильно было предположение: на 8.3.10 и 8.3.11 работает выше выложенный код без каких либо глюков, не надо переводить на латиницу.
А вот на 8.2.9 - только латиница, а если русский и читает (ооочень редко - то выдает неправильно: Бразилию и т.п.)
   1CNachalo
 
80 - 03.05.18 - 12:10
(75) Подскажите, у Вас какая версия 1С?
   1CNachalo
 
81 - 03.05.18 - 12:27
посмотрели, что если не обновлять систему до 8.3.10 (или 11), где json прекрасно отрабатывает, а оставаться на 8.3.9, то качественнее выводится карта в формате xml (хоть и там придется адрес переводить на латиницу).

Только как вывести карту на поле html, если координаты получены именно в формате xml?

Есть некие переменные Рез.lng и Рез.lat, где долгота и широта расположения объекта.
Но если просто взять концовку от предыдущего модуля и в переменную 
    Локация = Рез.lng + "," + Рез.lat; 
    
а затем продолжить, как в концовке кода при получении карты в формате json, т.е.
СоединениеСКартами= Новый HTTPСоединение ("static-maps.yandex.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
ЗапросККартам= Новый HTTPЗапрос("1.x/?lang=ru_RU&size=330,250&z=14&l=map&pt="+Локация+",pm2rdl1");
Карта = ПоместитьВоВременноеХранилище(Новый Картинка(СоединениеСКартами.Получить(ЗапросККартам).ПолучитьТелоКакДвоичныеДанные()));          
TMLТекст = HTMLТекст +" <img src = " + Карта + ">";

То так не работает. А как надо, если уже получены координаты в формате xml?
   ugorchina
 
82 - 03.05.18 - 13:38
8.3.10.2561
   ugorchina
 
83 - 03.05.18 - 13:39
а чего Вы в HTML поле выводить не хотите?
пишите на почту ставьте TeamViewer пишите ид и пароль подключусь посмотрю что у Вас не так
   ugorchina
 
84 - 03.05.18 - 13:40
адрес в личке
   ugorchina
 
85 - 03.05.18 - 13:40
(81) а чего мой код не используете?
   1CNachalo
 
86 - 03.05.18 - 16:57
(85) Дело в том, что на 8.3.10 и 8.3.11 он да, работает, спасибо большое. Но на этих версиях работает и мой код.
А вот на более старой (8.3.9) работает совершенно иначе.
Но обновление версии руководство считает нецелесообразным (там ряд объективных причин). Поэтому решили идти другим путем.
А именно: переписываем код карты с json на xml (он тоже в 8.3.9 не читается на русском, требует латиницы, но экспериментальным путем выявили, что он точнее, если уж ему эту латиницу предоставить).
И еще: вроду json дает возможность просто статической картинки, без приближения, перемещения по карте? А формат xml всё это вроде предоставляет, если я правильно поняла.
Если нет, то буду рада, если меня кто-то поправит.
-----------------------------------------------------------------------------------------------------------------
В связи с переходом на формат xml возник новый вопрос. его, наверное, я задам сейчас в другой ветке.
-----------------------------------------------------------------------------------------------------------------
Дорогие опытные и мудрые программисты 1С! Всем огромное Спасибо!!!
   Fram
 
87 - 03.05.18 - 19:48
(86) извините, но про json и xml полный бред. надеюсь, это не ваш руководитель вас на эти мысли. тогда жаль вашу компанию.
json и xml это просто формат возвращаемых данных. парсинга адреса и формирования картинки на стороне сервера выполняет один и тот же модуль.
   Fram
 
88 - 03.05.18 - 19:49
*на эти мысли навел
   Fram
 
89 - 03.05.18 - 19:50
(87)+ имел ввиду один и тот же модуль и в случае json и в случае xml
   Fram
 
90 - 03.05.18 - 19:51
(60 вы очень невнимательны. вы прочитали второе предложение из (51), но полностью проигнорировали первое предложение.
   ugorchina
 
91 - 03.05.18 - 19:54
(86) дайте доступ помогу!

это ж над опросишь доступ что бы помочь человеку а он отказывается!

просто мне в лом ставить новую версию меня и моя устраивает )))
   Fram
 
92 - 03.05.18 - 20:00
(83) зачем вообще HTML поле? картинка на УФ прекрасно выводится через Поле картинки
   ugorchina
 
93 - 03.05.18 - 20:02
Ну или так Мне так было  проще )
   ugorchina
 
94 - 03.05.18 - 20:03
(92) человеку помощь была нужна я что в голову вбрело то и сделал главное что работает! а в остальном умаю человек сам решит что лучше для него! или я не прав?
   Fram
 
95 - 03.05.18 - 20:06
(94) ее теперь переклинило на HTML, и она создала еще 2 ветки.
вообще у человек все технологии смешались в голове. рано ей еще такие задания выполнять.
   ugorchina
 
96 - 03.05.18 - 20:13
(95) :-)
   Fram
 
97 - 03.05.18 - 20:14
(86) > Но обновление версии руководство считает нецелесообразным (там ряд объективных причин)

можете назвать хотя бы одну? что то даже представить не могу
   ugorchina
 
98 - 03.05.18 - 20:19
(97) честно говоря я так и не понял какая версия платформу у нее ))) если обновить хочет то более старая чем у меня или она ее откатывать не хочет вообще не понятно (
   Fram
 
99 - 03.05.18 - 20:31
(98) смотри (45)
   Fram
 
100 - 03.05.18 - 20:32
(91) а я вот не понял что ты хочешь сделать подключившись к ней?
  1  2   

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