|
Карта расположения клиента | ☑ | ||
---|---|---|---|---|
0
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"); Карта = ПоместитьВоВременноеХранилище(Новый Картинка(СоединениеСКартами.Получить(ЗапросККартам).ПолучитьТелоКакДвоичныеДанные())); КонецЕсли; /////////////////////////////////////////////////////////////// первую строку очень изменила. В видео примерно так: АдресФактическийКонтрагента=ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.Контрагент,"АдресФактическийКонтрагента"); У меня: АдресФактическийКонтрагента=Адрес; Может так не работает? Или что-то другое? |
|||
1
arsik
гуру
01.05.18
✎
08:23
|
Возможно это старое видео и апи яндекс карт поменялось.
Попробуйте руками создать урл и ввести его в браузере. |
|||
2
1CNachalo
01.05.18
✎
08:27
|
(0) И еще:
Вывод информации здесь( в этой части общего модуля) идет через поле html. Т.е., чтобы что-то вывести, прописываю, например: HTMLТекст = HTMLТекст + "<td>Здесь будет карта объекта</td>"; Может, не хватает какого-то тега для вывода сформированного изображения карты? |
|||
3
1CNachalo
01.05.18
✎
08:34
|
Добавила тег:
HTMLТекст = HTMLТекст +" <img src = " + Карта + ">"; никаких ошибок не выдает, но и карты тоже нет. |
|||
4
Cyberhawk
01.05.18
✎
08:38
|
Бывает, держись там
|
|||
5
1CNachalo
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-файла нет никакой информации, связанной с ним. Дерево документов показано ниже." Это значит, что я что-то не правильно делала, повторяя за видео? Изменился адрес? Другое? |
|||
6
Lexey_
01.05.18
✎
10:22
|
(5) зачем гадать? есть же документация
https://tech.yandex.ru/maps/staticapi/?from=mapsapi |
|||
7
1CNachalo
01.05.18
✎
11:12
|
(6) Спасибо, сейчас посмотрю
|
|||
8
hhhh
01.05.18
✎
12:52
|
(7) всё-таки style с английского переводится как стиль. Выкиньте этот гугл-переводчик
|
|||
9
1CNachalo
01.05.18
✎
13:09
|
(8) учту, спасибо
|
|||
10
1CNachalo
01.05.18
✎
13:13
|
(6) по этому адресу все сверила: все в видео совпадает, идут ровненько по этому сайту.
Перепроверила все в своем коде. Как там. Отличие: пишу его не для отчета и не в отчете, а для формы справочника и в общем модуле. Еще 1 строка кода отличается. Но ошибок не выдает. Но и результата тоже( |
|||
11
Franchiser
гуру
01.05.18
✎
16:56
|
Держи нас в курсе
|
|||
12
1CNachalo
01.05.18
✎
17:14
|
(11) Вы, наверное, шутите)
Но мало ли, вдруг кто что подскажет.. Во-общем, карта появляется, но не для всех клиентов. При этом если и появляется, то с совершенно неправильным расположением (Бразилия и т.д., хотя запрашиваемые адреса исключительно СНГ). Проверила: в переменную Адрес попадают правильные адреса. Если напрямую вводить такие адреса в Яндекс-карту - отображает правильно, а через 1С - те же адреса считываются криво. Почему они не правильно обрабатываются через написанный таким образом код (т.е.находятся неправильные адреса или не находятся вовсе)? |
|||
13
1CNachalo
01.05.18
✎
19:53
|
Итог на данный момент: если адрес в переменную попадает русскими буквами - Бразилия и т.п.
То же самое переписываю англ.буквами - выдает точнейший адрес. |
|||
14
Fram
01.05.18
✎
20:05
|
(13) значит играйся с кодировками
|
|||
15
Fram
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); Карта = ПоместитьВоВременноеХранилище(Новый Картинка(СоединениеСКартами.Получить(ЗапросККартам).ПолучитьТелоКакДвоичныеДанные())); КонецЕсли |
|||
16
Fram
01.05.18
✎
22:22
|
ПолучитьСтроку это серверная функция = КодироватьСтроку(АдресФактическийКонтрагента,СпособКодированияСтроки.КодировкаURL)
|
|||
17
1CNachalo
02.05.18
✎
12:15
|
(16) Т.е. отличается одна вот эта строка?
ЗапросЯндексу = Новый HTTPЗапрос("1.x/?results=1&format=json&geocode="+ПолучитьСтроку(АдресФактическийКонтрагента)); ПолучитьСтроку - эту функцию надо создать дополнительно? в чем отличие этих способов? |
|||
18
1CNachalo
02.05.18
✎
12:18
|
(14) это как?
|
|||
19
Fram
02.05.18
✎
19:43
|
(17) не не.. мне пришлось создать функцию потому что КодироватьСтроку недоступен на тонком клиенте (интересно почему, кстати). ты, судя по всему, все делаешь на сервере, поэтому тебе не надо это выносить в отдельную функцию.
|
|||
20
Fram
02.05.18
✎
19:45
|
(17) Короче, твой код рабочий, если не наделала глупых ошибок, которых отсюда не видно, и если в качестве адреса действительно передаешь что то похожее на адрес, а не полную фигню.
|
|||
21
1CNachalo
02.05.18
✎
19:49
|
(20) Я проверяю, что передаю, в отладчике. Там в этой переменной именно адрес. Но на русском не воспринимает и все тут
|
|||
22
Fram
02.05.18
✎
19:51
|
(21) покажи еще раз весь код и скриншот из отладчика со значением переменной АдресФактическийКонтрагента перед отправкой ХТТП запроса
|
|||
23
Fram
02.05.18
✎
19:52
|
и значение переменной Локация
|
|||
24
1CNachalo
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 = " + Карта + ">"; КонецЕсли; ------------------------------------------------------------------- Вот когда в переменной прописано так - красивая карта выходит. А если как у тебя на русском - просто пусто. Сейчас скрин добавлю |
|||
25
Fram
02.05.18
✎
20:09
|
(24) ну попробуй разные кодировки в качестве 3го параметра к функции КодироватьСтроку. например "utf-8". хотя она по умолчанию должен быть
|
|||
26
Fram
02.05.18
✎
20:10
|
*должна быть
|
|||
27
1CNachalo
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"))); или как-то иначе? --- о скринах: пока не нашла, как сюда прикрепить |
|||
28
Fram
02.05.18
✎
20:17
|
(27) синтакс-помощник знаем что такое?
|
|||
29
Fram
02.05.18
✎
20:19
|
ладно не важно это.. платформа все равно никакую другую кодировку не принимает похоже. лучше покажи что отладчик показывает для ЗапросЯндексу.АдресРесурса
|
|||
30
Fram
02.05.18
✎
20:26
|
У меня даже так работает:
ЗапросЯндексу = Новый HTTPЗапрос("1.x/?results=1&format=json&geocode=" + СтрЗаменить(АдресФактическийКонтрагента, " ", "+")); хотя это не очень правильно. можно нарваться на недопустимый для URL символ в адресе |
|||
31
1CNachalo
02.05.18
✎
20:29
|
(29)
При АдресФактическийКонтрагента "Москва, Тверская улица, дом 7" Строка (это из табло отладки) в ветке итого даже не заходим. Переменная Локация имеет значение "Неопределено" Изменяю данные в переменной. Новый круг отладки. Данные из табло: "АдресФактическийКонтрагента "Moskva, Tverskay, 7" Строка" При этом "Локация "37.617635,55.755814" Строка" тоже из табло |
|||
32
Fram
02.05.18
✎
20:33
|
Теперь скажи чему равно ЗапросЯндексу.АдресРесурса при АдресФактическийКонтрагента = "Москва, Тверская улица, дом 7"
|
|||
33
Fram
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 |
|||
34
1CNachalo
02.05.18
✎
20:39
|
(33) АдресРесурса "/1.x/?results=1&format=json&geocode=Moskva%2C%20Tverskay%2C%207" Строка
|
|||
35
Fram
02.05.18
✎
20:42
|
(34) это в случае латиницы, а для русской версии?
|
|||
36
1CNachalo
02.05.18
✎
20:42
|
(33) это при АдресФактическийКонтрагента "Moskva, Tverskay, 7" Строка
|
|||
37
1CNachalo
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" Строка
Это для русской версии |
|||
38
Fram
02.05.18
✎
20:46
|
(37) ну, все верно вроде. теперь вставь в браузер https://geocode-maps.yandex.ru/1.x/?geocode=/1.x/?results=1&format=json&geocode=Москва%2C%20Тверская%20улица%2C%20дом%207
|
|||
39
Fram
02.05.18
✎
20:47
|
упс.. вообще то я в кодировке писал. миста сама конвертнула )
|
|||
40
Fram
02.05.18
✎
20:48
|
иди отладчиком дальше. смотри что возвращает СоединениеСЯндексом.Получить(ЗапросЯндексу).ПолучитьТелоКакСтроку()
|
|||
41
Fram
02.05.18
✎
20:48
|
должно быть то же что и браузер возвращает - json структура с данными локации
|
|||
42
1CNachalo
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":[]}}}" Строка
|
|||
43
1CNachalo
02.05.18
✎
21:13
|
(41) если я правильно понимаю, то found":"0" здесь говорит о том, что наполненность ответа =0, т.е. ничего не найдено
|
|||
44
Fram
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с какая? |
|||
45
1CNachalo
03.05.18
✎
05:16
|
(44) windows 10 и 1С:Предприятие 8.3 (8.3.9.1818)
|
|||
46
Fram
03.05.18
✎
05:18
|
(45) ну, попробуй 8.3.10 или 11 последние. просто догадка
|
|||
47
1CNachalo
03.05.18
✎
05:40
|
(46) а это как-то поможет, если на работе установлена именно 8.3.9? да и мне просто пока негде взять эти версии
|
|||
48
1CNachalo
03.05.18
✎
05:49
|
(46) посмотрела в отладчике: при внесении того же адреса на английском находит 42 варианта
|
|||
49
Fram
03.05.18
✎
06:09
|
(48) да, причем тут это.. вот та вот закодированная строка должна передаваться и распознаваться сервером как фраза на кириллице. у тебя по неведомой для меня причине этого не происходит, и сервер эту строку как есть получает и обрабатывает.
подождем. может кто знающий заглянет в ветку |
|||
50
Fram
03.05.18
✎
06:17
|
(47) ну, попробовать не помешает. будет повод и на работе обновить все.
URL из (44) в браузер вставляла? |
|||
51
Fram
03.05.18
✎
06:30
|
Пока можешь сделать без кодировки. Просто убери служебные символы URL типа /,?,& и тп.
|
|||
52
ugorchina
03.05.18
✎
06:34
|
Транслитируйте адрес!
|
|||
53
ugorchina
03.05.18
✎
06:35
|
+(52) либо передавайте в utf-8
|
|||
54
Fram
03.05.18
✎
06:37
|
(53) он по умолчанию в utf-8. другую кодировку (там почему то строковый параметр) платформа просто не принимает, чего только не пробовал
|
|||
55
1CNachalo
03.05.18
✎
08:05
|
(50) да, из 44 вставила в браузер, удалив знак подчеркивания. И в опере, и IE пишет - страница недоступна. А должна что-то выдать? Вы загружаете - у вас выдает?
|
|||
56
Fram
03.05.18
✎
08:13
|
(55) у меня прекрасно работает - хром и файрфокс возвращают правильный json, IE предлагает скачать тот же json как файл
|
|||
57
arsik
гуру
03.05.18
✎
08:32
|
(55) А вот это ( https://geocode-maps.yandex.ru/1.x/ ) что ни будь возвращает?
|
|||
58
arsik
гуру
03.05.18
✎
08:34
|
+(57) попробуй адрес домена урл на ip поменять.
geocode-maps.yandex.ru на 213.180.204.122 Может у тебя с ДНС проблемы. |
|||
59
arsik
гуру
03.05.18
✎
08:35
|
+ (58) Не, с ip не прокатит. Там нгинкс прокси на входе.
|
|||
60
1CNachalo
03.05.18
✎
09:22
|
(51) Просто убери служебные символы URL типа /,?,& и тп.
Откуда? Из передаваемого адреса? Если да, то убрала. Например, при АдресФактическийКонтрагента = "Москва Тверская 7" тоже карту не возвращает. |
|||
61
1CNachalo
03.05.18
✎
09:23
|
(52) "Транслитируйте адрес!"
Это как? |
|||
62
1CNachalo
03.05.18
✎
09:23
|
(53) либо передавайте в utf-8
Что-то в этом случае надо в коде дописать? |
|||
63
ugorchina
03.05.18
✎
09:25
|
где код дайте я покапаюсь )
|
|||
64
ugorchina
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 интересненько |
|||
65
1CNachalo
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"}}}]}}} Но и здесь адрес, написанный рус.буквами, карту не выдает |
|||
66
ugorchina
03.05.18
✎
09:35
|
(61) я имел в виду так КодироватьСтроку(АдресФактическийКонтрагента,СпособКодированияСтроки.КодировкаURL))
извините не правильно выразился |
|||
67
1CNachalo
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); Карта = ПоместитьВоВременноеХранилище(Новый Картинка(СоединениеСКартами.Получить(ЗапросККартам).ПолучитьТелоКакДвоичныеДанные())); КонецЕсли |
|||
68
1CNachalo
03.05.18
✎
09:37
|
(66) так вроде у меня в коде так и написано. Или я не правильно Вас поняла?
|
|||
69
1CNachalo
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> |
|||
70
ugorchina
03.05.18
✎
10:04
|
Вот правильный запрос щас набросаю на 1с
|
|||
71
ugorchina
03.05.18
✎
10:04
|
||||
72
1CNachalo
03.05.18
✎
10:33
|
(71) немного не поняла, это всё мне надо поставить в общий модуль для вывода карты? или как?
|
|||
73
ugorchina
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 Тогда Карта = ПоместитьВоВременноеХранилище(Новый Картинка(РезультатСКратами.ПолучитьТелоКакДвоичныеДанные())); Иначе Сообщить("Второе соединение не удачное код состояния - "+Результат.КодСостояния); КонецЕсли; КонецЕсли Иначе Сообщить("Первое соединение не удачное код состояния - "+Результат.КодСостояния); КонецЕсли; |
|||
74
cons74
03.05.18
✎
11:09
|
(0) Для информации. ERP. http://shot.qip.ru/00Qtkp-4oZhWgxFu/
|
|||
75
ugorchina
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 докмуента |
|||
76
ugorchina
03.05.18
✎
11:29
|
если в справочники на форме списка тогда создаете опять же HTML поле в Процедуру СправочникСписокПриАктивизацииСтроки()
ложите мой код адрес надо обрабатывать примерно вот так (не знаю какие поля у Вас) Адрес = СокрЛП(Город+",+"+область+"+"+Улица+"+",+Дом+"+"+НомерДома) |
|||
77
ugorchina
03.05.18
✎
11:30
|
+(76) Адрес я имел в виду АдресФактическийКонтрагента = "Москва, +Тверская +улица, +дом +7";
|
|||
78
ugorchina
03.05.18
✎
11:50
|
что то (0) ушла обидел что ли? :-)
|
|||
79
1CNachalo
03.05.18
✎
12:09
|
(78) нет, сейчас смотрю, что Вы написали. А ушла - так мы смотрели написанный ранее код с руководителем.
Скажите, а у Вас какая версия 1С? Просто реально, тут правильно было предположение: на 8.3.10 и 8.3.11 работает выше выложенный код без каких либо глюков, не надо переводить на латиницу. А вот на 8.2.9 - только латиница, а если русский и читает (ооочень редко - то выдает неправильно: Бразилию и т.п.) |
|||
80
1CNachalo
03.05.18
✎
12:10
|
(75) Подскажите, у Вас какая версия 1С?
|
|||
81
1CNachalo
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? |
|||
82
ugorchina
03.05.18
✎
13:38
|
8.3.10.2561
|
|||
83
ugorchina
03.05.18
✎
13:39
|
а чего Вы в HTML поле выводить не хотите?
пишите на почту ставьте TeamViewer пишите ид и пароль подключусь посмотрю что у Вас не так |
|||
84
ugorchina
03.05.18
✎
13:40
|
адрес в личке
|
|||
85
ugorchina
03.05.18
✎
13:40
|
(81) а чего мой код не используете?
|
|||
86
1CNachalo
03.05.18
✎
16:57
|
(85) Дело в том, что на 8.3.10 и 8.3.11 он да, работает, спасибо большое. Но на этих версиях работает и мой код.
А вот на более старой (8.3.9) работает совершенно иначе. Но обновление версии руководство считает нецелесообразным (там ряд объективных причин). Поэтому решили идти другим путем. А именно: переписываем код карты с json на xml (он тоже в 8.3.9 не читается на русском, требует латиницы, но экспериментальным путем выявили, что он точнее, если уж ему эту латиницу предоставить). И еще: вроду json дает возможность просто статической картинки, без приближения, перемещения по карте? А формат xml всё это вроде предоставляет, если я правильно поняла. Если нет, то буду рада, если меня кто-то поправит. ----------------------------------------------------------------------------------------------------------------- В связи с переходом на формат xml возник новый вопрос. его, наверное, я задам сейчас в другой ветке. ----------------------------------------------------------------------------------------------------------------- Дорогие опытные и мудрые программисты 1С! Всем огромное Спасибо!!! |
|||
87
Fram
03.05.18
✎
19:48
|
(86) извините, но про json и xml полный бред. надеюсь, это не ваш руководитель вас на эти мысли. тогда жаль вашу компанию.
json и xml это просто формат возвращаемых данных. парсинга адреса и формирования картинки на стороне сервера выполняет один и тот же модуль. |
|||
88
Fram
03.05.18
✎
19:49
|
*на эти мысли навел
|
|||
89
Fram
03.05.18
✎
19:50
|
(87)+ имел ввиду один и тот же модуль и в случае json и в случае xml
|
|||
90
Fram
03.05.18
✎
19:51
|
(60 вы очень невнимательны. вы прочитали второе предложение из (51), но полностью проигнорировали первое предложение.
|
|||
91
ugorchina
03.05.18
✎
19:54
|
(86) дайте доступ помогу!
это ж над опросишь доступ что бы помочь человеку а он отказывается! просто мне в лом ставить новую версию меня и моя устраивает ))) |
|||
92
Fram
03.05.18
✎
20:00
|
(83) зачем вообще HTML поле? картинка на УФ прекрасно выводится через Поле картинки
|
|||
93
ugorchina
03.05.18
✎
20:02
|
Ну или так Мне так было проще )
|
|||
94
ugorchina
03.05.18
✎
20:03
|
(92) человеку помощь была нужна я что в голову вбрело то и сделал главное что работает! а в остальном умаю человек сам решит что лучше для него! или я не прав?
|
|||
95
Fram
03.05.18
✎
20:06
|
(94) ее теперь переклинило на HTML, и она создала еще 2 ветки.
вообще у человек все технологии смешались в голове. рано ей еще такие задания выполнять. |
|||
96
ugorchina
03.05.18
✎
20:13
|
(95) :-)
|
|||
97
Fram
03.05.18
✎
20:14
|
(86) > Но обновление версии руководство считает нецелесообразным (там ряд объективных причин)
можете назвать хотя бы одну? что то даже представить не могу |
|||
98
ugorchina
03.05.18
✎
20:19
|
(97) честно говоря я так и не понял какая версия платформу у нее ))) если обновить хочет то более старая чем у меня или она ее откатывать не хочет вообще не понятно (
|
|||
99
Fram
03.05.18
✎
20:31
|
(98) смотри (45)
|
|||
100
Fram
03.05.18
✎
20:32
|
(91) а я вот не понял что ты хочешь сделать подключившись к ней?
|
|||
101
ugorchina
03.05.18
✎
20:32
|
как по моему должно у нее все работать! я в соседней ее ветке написал ей замечания
|
|||
102
ugorchina
03.05.18
✎
20:33
|
(100) посмотреть что она сделал и иправить косяк ну и фоток грабануть и других данных )
|
|||
103
1CNachalo
06.05.18
✎
17:58
|
(97) т.к. клиенту может переход на новую версию быть не удобен. Поэтому код должен отрабатывать и на старой версии. А на новой он прекрасно работает без всяких махинаций и преобразований. На новой - это на 8.3.10 и 8.3.11. У нас (я писала об этом 8.3.9)
|
|||
104
1CNachalo
06.05.18
✎
17:59
|
(98) 8.3.9
|
|||
105
1CNachalo
06.05.18
✎
18:02
|
С обоими ветками разобралась. Оба кода в обоих ветках рабочие. Нюансы с языком были - в версии 1С, с выводом интерактивной карты - тоже не в коде (код был верный изначально). Если кому интересно - поясню.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |