Клуб API Карт

Подписаться на событие карты в 1С

givespam
24 мая 2012, 12:03

Не могу сообразить. Подскажите пожалуйста. Не могу подписаться на событие из 1С

В 1С подписка на событие осуществляется оператором

ДобавитьОбработчик СтороннийОбъект.СобытиеСтороннегоОбъекта, ПроцедураВ1С;

 

В контексте выполнения объект myMap  (который new ymaps.Map()) доступен вот так:

Элементы.ТекстHTML.Документ.parentWindow.myMap

 

Как получить его событие dblclick?

Забыл сказать. API 2.0

8 комментариев
Подписаться на комментарии к посту

может быть "ДаблКлик"? =) 

Если серьезно, то подписываться на события объектов АПИ нужно не методами 1С

а через поле events объекта на события которого вы хотите подписаться.

 

Подписаться в скрипте у меня получилось.

Задача следующая. При двойном щелчке по карте передать координаты из скрипта (интернет страницы) в контекст 1С и работать с ними там.

Сама страница в контексте 1С доступна. Объект MyMap доступен, функции в скрипте запускать из 1С могу. Нужно пробросить событие. КАК?

 Может в скрипте нужно создать какой-то вспомогательный объект?

функцию - обработчик события не нужно вызывать из 1C его вызовет АПИ, когда событие произойдет.

Вам надо передать данные из этого обработчика в 1С. 

Вы, вероятно, не совсем поняли.

Мне нужно, чтобы функция обработчик события находилась в 1С. Мне не нужна она в скрипте. Как сделать её в скрипте я знаю. Мне нужно, чтобы при возникновении события двойной клик на веб странице (карте) вызывалась функция 1С. 1С это делать умеет.

Пример: в контексте 1С доступен документ Word (как Com объект)

Можно подписаться на событие word вот так

ДобавитьОбработчик msword.DocumentChange, ПриИзмененииДокумента;

При этом когда в Com объекте возникнет событиеDocumentChange, в 1С будет вызвана процедура ПриИзмененииДокумента()

 

Мне нужно то же самое но с картой. У меня есть COM объект MyMap мне нужно получить его событие.

 

Передать данные не проблема. Просто 1С нужно знать, что данные пора получать.

Если честно я 1С совсем не знаю

Если есть возможность из javascript передавать чтото в 1C , тогда можно написать чтото типа

MyMap.events.add('click', function (e) {

    _sendEventTo1C_(e);

});

где _sendEventTo1C_ - функция, которая передаст вам данные

Если я правильно понимаю, событие можно создать так:

var myEvent;

myEvent = new ymaps.MapEvent(originalEvent,myMap);

 

Но вот что за зверь originalEvent и как его добывать одному богу ведомо.

Добрый день!

Почитайте, пожалуйста, Пользовательское соглашение. Кажется, вы собираетесь использовать API Яндекс.Карт в закрытой системе, а это запрещено.

http://legal.yandex.ru/maps_api/