ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ»

ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ» (http://forum.tk-chel.ru/index.php)
-   Система «АвтоГРАФ»: Программное обеспечение (http://forum.tk-chel.ru/forumdisplay.php?f=4)
-   -   Запрос в автограф о наличии адреса из 1с 8.1 (http://forum.tk-chel.ru/showthread.php?t=2991)

Леонид Борисович 17.05.2013 12:13

Запрос в автограф о наличии адреса из 1с 8.1
 
Добрый день ВСЕМ!

Задача такая...
В 1с 8.1 используем стандартную процедуру подбора адреса.
В итоге получаем строку адреса типа:
623702, Свердловская обл, Березовский г, Шарикова ул, дом № 5
Теперь нам необходимо определить точные координаты широты и долготы.
Можно ли сделать запрос из 1с через оле в автограф о корректности адреса? Если такого адреса нет, автограф возвращает ошибку. если есть, то получаем точные координаты с широтой и долготой.
Допустим если адреса нет, то автограф бы указал ближайший адрес существующий самый близкий к запросу , с указанием расстояния до него.
Т.е. будем делать запрос пока не найдется точный адрес или с расстоянием до ближайшего сущ. адреса. Какими командами это можно сделать?

SK 17.05.2013 12:39

Леонид Борисович, тут же весь вопрос в том, что составители карт и адресных баз не руководствовались правилами, используемыми в 1С, поэтому как оно будет в каждой конкретной карте и адресной базе - кто его знает...
Поэтому логика совпадений тут - вызывает некоторые сомнения. Тот же 2ГИС не очень работает со строкой из 1С...

Леонид Борисович 17.05.2013 12:41

т.е. это не возможно в принципе ?

SK 17.05.2013 12:44

Цитата:

Сообщение от Леонид Борисович (Сообщение 56139)
т.е. это не возможно в принципе ?

Отчего же ? Если адресные базы будут соответствующими...

SK 17.05.2013 12:51

Функция отображение же адреса на карте есть. Стало быть координаты по адресу находятся. Думаю, несложно сделать почти такую же функцию, только возвращающую координаты...
ShowAddress
Показать адрес на карте
BSTR City, BSTR Street, BSTR House
HRESULT

Леонид Борисович 17.05.2013 13:21

Через оле используют только готовую функцию...
"несложно сделать почти такую же функцию, только возвращающую координаты..."
кто такую функцию делать будет?

Добавлено через 2 минуты
ладно, попробуем через ShowAddress

SK 17.05.2013 21:18

Цитата:

Сообщение от Леонид Борисович (Сообщение 56144)
кто такую функцию делать будет?

Наши программеры, естественно. Но, хотелось бы в свою очередь увидеть такую адресную базу - надо же на чем-то обкатывать функцию...

Леонид Борисович 20.05.2013 06:21

Добрый день!
а кстати как использовать команду
ShowAddress ?
Также?
AG=Новый COMОбъект("AutoGRAPH.AutoGRAPHAutomation"); // Создаем COM-объект
ddd=AG.WaitForInitializing(); // Ждем окончания инициализации объекта


а дальше так?

КООРДИНАТЫ = AG.ShowAddress("Екатеринбург","Лен на","5") ;

так?

SK 20.05.2013 06:23

Типа того. А что ?

Леонид Борисович 20.05.2013 06:29

кстати, в вашей системе ведь куча адресных систем. и гугл и яндекс. тут и "обкатывать фукнционал".

Добавлено через 1 минуту
нет просто спрашиваем... т.к. этот раздел первый раз пробуем отработать.

Добавлено через 2 минуты
хотя если ShowAddress работает, то все замечательно в этот направлении.

Добавлено через 15 секунд
проверим.

SK 20.05.2013 06:31

Цитата:

Сообщение от Леонид Борисович (Сообщение 56214)
кстати, в вашей системе ведь куча адресных систем. и гугл и яндекс. тут и "обкатывать фукнционал".

Добавлено через 1 минуту
нет просто спрашиваем... т.к. этот раздел первый раз пробуем отработать.

OLE-функцию геокодирования для интернет-карт мы не предусматривали.
Такую функцию несложно написать самому, т.к. она не имеет по сути никакого отношения к нашему ПО.
Однако, обращу Ваше внимание, что такие запросы требуют намного больше времени, чем поиск в локальной базе, а при оффлайн работе - таймауты могут и вовсе растянуть получение отчета с такими запросами на неделю...

Леонид Борисович 22.05.2013 07:22

добрый день!

что то не получается в этом запросе правильный ответ ...

AG = "" ;
AG=Новый COMОбъект("AutoGRAPH.AutoGRAPHAutomation");
ddd=AG.WaitForInitializing();
Попытка
AG.SHOWADDRESS(Город,Улица,Дом);
Широта = AG.CurrentLatitude ;
Долгота = AG.CurrentLongitude ;
Исключение
Широта = "" ;
Долгота = "" ;
КонецПопытки ;
AG = "" ;

При обращении в систему идет привязка к какой то машине и соответственно выдает ответ не по запросу, а по этой машине.

Получается надо отключить и группы и машины перед запросом
AG.SHOWADDRESS(Город,Улица,Дом);

Как правильно это сделать?

Леонид Борисович 22.05.2013 09:51

это попытка сделать запрос в систему автограф из 1с.

Добавлено через 8 минут
и получить широту и долготу по адресу

Добавлено через 8 минут
потаемся сделать через
ШД = AG.SHOWADDRESS(Город,Улица,Дом);

ШД после отработки неопределено.

Добавлено через 11 минут
что то мы не так делаем, а как делать ... не знаем...:sos:

storm 22.05.2013 10:51

Леонид Борисович,
функция SHOWADDRESS делает только одну вещь - отображает переданный адрес на карте в АвтоГРАФе, если такой адрес найден в адресной базе
для возврата координат этого адреса пока функции нет

Леонид Борисович 22.05.2013 10:59

вообщем в системе автограф это не решаемо?!

programmer 22.05.2013 11:00

Можно добавить соотв. функции, но в 4-ой версии (с авторизацией)


Текущее время: 04:29. Часовой пояс GMT.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot