Имя: Пароль:
1C
1С v8
JS + yandex.api 2.0 + 1C
0 Cmyk32
 
27.07.12
14:35
Привет!
Решила разместить вопрос и здесь)
Начинаю разбираться с новым yandex.api 2.х (для интеграции с 1С) В документации к api есть метод geocode() который отвечает за прямое и обратное геокодирование.
Из 1С я хочу обращаться к методу geocode() и в случае неудачного геокодирования заполнять ТЗ адресами, которые не удалось отобразить на карте. Запрос geocode() асинхронный.
Функционал я пытаюсь реализовать с помощью функции findPlacemarkOnMap().

function findPlacemarkOnMap(adress, returnResult){
var myCollection = new ymaps.GeoObjectCollection();
ymaps.geocode(adress, {results: 1}).then(
function (res){
myCollection.add(res.geoObjects);
myMap.geoObjects.add(myCollection);    
if (myCollection.getLength() == 0) {returnResult = false} else {returnResult = true};
},
// Ошибка сервера или "плохие" входные данные
// Не срабатывает в случае неотображения объектов на карте
function (err){
alert(err.message);
});    
return returnResult;
}

Проблема в том, что return returnResult срабатывает раньше, чем выполняется код в конструкции .then()
Может я не в том месте присваивание прописываю или возврат?

Кстати, в 1С следующее:

&НаКлиенте
Процедура ВыполнитьГеокодирование()

Для каждого Строка из Адреса цикл
   resultValue = ИСТИНА;
   Для каждого Строка из Адреса цикл
       Результат = Элементы.Карта.Документ.parentWindow.findPlacemarkOnMap(Строка.Адрес, resultValue);
       сообщить(Результат);
   КонецЦикла;

КонецЦикла;

КонецФункции

В Результате ничего нет.
1 Cmyk32
 
27.07.12
14:38
+(0) О, там нет двойного цикла. Неправильно вставила код.
2 Voronve
 
27.07.12
14:45
(0) Тетя, а ты с кем сейчас разговаривала ?
3 Cmyk32
 
27.07.12
14:46
(2) Не поняла вопрос
4 Cmyk32
 
27.07.12
14:55
pumbaEO, не уходи! ты знаешь!!)
5 pumbaEO
 
27.07.12
15:12
Эх, спасибо тебе Asmody за новые фичи в ветке.

Запрос асинхронный, поэтому результат запроса надо писать в DOM дерево html документа (положительный или отрицательный результат), а в форме подключать обработчик ожидания и проверять наличие определенного пути в DOM
6 Cmyk32
 
27.07.12
17:39
(5) Спасибо.
7 Cmyk32
 
27.07.12
17:39
Тема закрыта.
Решение в виде использования callback-функции.
8 spleen
 
30.07.12
12:13
(7) Результат можно где-то поглядеть?