| 
    
        
     
     | 
    
  | 
Карта расположения клиента | ☑ | ||
|---|---|---|---|---|
| 
    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С, с выводом интерактивной карты - тоже не в коде (код был верный изначально). Если кому интересно - поясню.     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |