|
HTTPСоединение 8.1 и 8.2 | ☑ | ||
---|---|---|---|---|
0
Lepochkin
15.08.12
✎
13:56
|
Имеется следующий код код
HTTPСервис = Новый HTTPСоединение("geocode-maps.yandex.ru",,,,ПроксиСервер,Ложь); Попытка HTTPСервис.Получить("1.x/?geocode=" + EncodeURL(Адрес), АдресOutput); Исключение Сообщить(ОписаниеОшибки(), СтатусСообщения.Важное); Возврат Ложь; КонецПопытки; Он по сути генерит xml файл В 8.2 это выглядит так <?xml version="1.0" encoding="utf-8" ?> - <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"> - <GeoObjectCollection> - <metaDataProperty xmlns="http://www.opengis.net/gml"> - <GeocoderResponseMetaData xmlns="http://maps.yandex.ru/geocoder/1.x"> <request>157980, Костромская обл., п. Кадый, ул. Центральная, дом № 13</request> <found>1</found> <results>10</results> </GeocoderResponseMetaData> ..... а в 8.1 <?xml version="1.0" encoding="utf-8" ?> - <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"> - <GeoObjectCollection> - <metaDataProperty xmlns="http://www.opengis.net/gml"> - <GeocoderResponseMetaData xmlns="http://maps.yandex.ru/geocoder/1.x"> <request>152850, Ярославская РѕР±Р»., Рі. Пошехонье, СѓР». Преображенского, РґРѕРј № 2</request> <found>0</found> <results>10</results> </GeocoderResponseMetaData> Ясно что проблема в кракозябрах, но откуда она берется я что-то не сильно понимаю... |
|||
1
Lepochkin
15.08.12
✎
13:58
|
Для полноты картины забыл указать еще текст 2х процедур
Функция hex(Знач Значение) Значение=Число(Значение); Если Значение<=0 Тогда Результат="0"; Иначе Значение=Цел(Значение); Результат=""; Пока Значение>0 Цикл Результат=Сред("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Значение%16 + 1,1)+Результат; Значение=Цел(Значение/16) ; КонецЦикла; КонецЕсли; Если СтрДлина(Результат) < 2 Тогда Результат = "0" + Результат; КонецЕсли; Возврат "%" + Результат; КонецФункции Функция EncodeURL(URL) // отсюда: http://www.w3.org/International/URLUTF8Encoder.java Рез1 = ""; Для Сч = 1 По СтрДлина(URL) Цикл ch = Сред(URL,Сч,1); vch = КодСимвола(ch); Если ("A" <= ch ) И ( ch <= "Z") Тогда // "A".."Z" Рез1 = Рез1 + ch; ИначеЕсли ("a" <= ch ) И ( ch <= "z") Тогда // "a".."z" Рез1 = Рез1 + ch; ИначеЕсли ("0" <= ch ) И ( ch <= "9") Тогда // "0".."9" Рез1 = Рез1 + ch; ИначеЕсли (ch = " ") ИЛИ ( ch = "+") Тогда // space Рез1 = Рез1 + "+"; ИначеЕсли (ch = "-" ) ИЛИ ( ch = "_") Тогда // unreserved // ch == '.' || ch == '!' // ch == '~' || ch == '*' // ch == '\'' || ch == '(' // ch == ')') Тогда Рез1 = Рез1 + ch; ИначеЕсли (vch <= 127) Тогда // other ASCII Рез1 = Рез1 + hex(vch); ИначеЕсли (vch <= 2047) Тогда // non-ASCII <= 0x7FF Рез1 = Рез1 + hex(192 + Цел(vch / 64)); Рез1 = Рез1 + hex(128 + (vch % 64)); Иначе // 0x7FF < ch <= 0xFFFF Рез1 = Рез1 + hex(224 + Цел(vch / 4096)); Рез1 = Рез1 + hex(128 + (Цел(vch / 64) % 64)); Рез1 = Рез1 + hex(128 + (vch % 64)); КонецЕсли; КонецЦикла; Возврат Рез1; КонецФункции // () |
|||
2
pumbaEO
15.08.12
✎
13:59
|
(1) эти процедуры без разницы.
|
|||
3
Lepochkin
15.08.12
✎
14:05
|
Дак в чем проблема????
|
|||
4
pumbaEO
15.08.12
✎
14:10
|
не знаю, я на 8.2 . Смотри в header что передает 1С.
|
|||
5
Lepochkin
15.08.12
✎
14:41
|
все 1 в 1 в 8.2 и в 8.1... Что за ерунда блин
|
|||
6
Lepochkin
15.08.12
✎
14:51
|
Вбил адрес на английском языке и все стал нормально отрабатывать. Какая-то ерунда с кодировкой выходит... Есть у кого какие-нибудь мысли?
|
|||
7
Lepochkin
20.08.12
✎
10:27
|
С проблемой так и не разобрался. Завел пустую конфу 8.2 Там в модуле внешнего соединения кинул нужные функции. Считаю в 8.2 возвращаю структуру в 8.1. Все таким образом работает. Не самое красивое решение, но может кому-нибудь тоже подойдет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |