Имя: Пароль:
1C
 
Проблема с ID точки (метки) СДЭК на яндекс-картах
0 Гений 1С
 
гуру
05.06.22
19:37
Аналогична вот этой теме: Как получить координаты метки в Яндекс-карте?

Там ответа не нашлось, может тут найдется?

Вот код yandex-меток:

ymaps.ready(init);

function init () {
    var myMap = new ymaps.Map("map", {
            center: [56.735323, 37.1556315],
            zoom: 10
        }, {
            searchControlProvider: 'yandex#search'
        })
        ,
        myPlacemark1 = new ymaps.Placemark([56.74146, 37.170678], {
            balloonContentHeader: "СДЭК",
            balloonContentBody: "На Понтекорво",
            balloonContentFooter: "",
            hintContent: "На Понтекорво",
            iden:"DBN4"
        })      
               ,
        myPlacemark2 = new ymaps.Placemark([56.729186, 37.140585], {
            balloonContentHeader: "СДЭК",
            balloonContentBody: "На Боголюбова 44",
            balloonContentFooter: "",
            hintContent: "На Боголюбова 44",
            iden:"DBN5"
        })      
               ;

    
    myMap.geoObjects.add(myPlacemark1),myMap.geoObjects.add(myPlacemark2);
    
    
}

В поле HTML-документа в 1С ловлю событие ПриНажатии, но ДанныеСобытия.Button.ID - пустое.

Как пролечить?
1 Бабрак Кармаль
 
05.06.22
19:41
Прочитать https://yandex.ru/dev/maps/jsbox/2.1/geoobject_events, добавить обработчик, который будет вызывать клик с необходимыми тебе данными.

Вперед. Мы в тебя верим.
2 Гений 1С
 
гуру
05.06.22
19:47
вернее id там есть, но он странный. id_1654445865445849110082
Впрочем из innerHTML элемента можно вытащить вот это (т.е. содержимое:
<ymaps><ymaps class="ymaps-2-1-79-balloon-content__header">СДЭК</ymaps>На Боголюбова 44</ymaps>


(1) как-то чересчур сложно.. мы пойдем другим путем
3 Бабрак Кармаль
 
05.06.22
19:48
(2) > чересчур сложно.. мы пойдем другим путем
Даже не сомневался. Не забудь написать статью про свой колхоз.
4 Гений 1С
 
гуру
05.06.22
19:54
(3) колхоз не мой, а Яндексовый
5 Гений 1С
 
гуру
05.06.22
19:56
(3) https://kakorin.com/blog/svyazat-metki-yandex-kart-so-spiskom  что-то типа этого, гм
6 Гений 1С
 
гуру
05.06.22
20:12
Попробовал вот так - алертует:

unction init () {
    var myMap = new ymaps.Map("map", {
            center: [56.735323, 37.1556315],
            zoom: 10
        }, {
            searchControlProvider: 'yandex#search'
        })
        ,
        myPlacemark1 = new ymaps.Placemark([56.74146, 37.170678], {
            balloonContentHeader: "СДЭК",
            balloonContentBody: "На Понтекорво",
            balloonContentFooter: "",
            hintContent: "На Понтекорво",
            iden:"DBN4"
        })      
               ,
        myPlacemark2 = new ymaps.Placemark([56.729186, 37.140585], {
            balloonContentHeader: "СДЭК",
            balloonContentBody: "На Боголюбова 44",
            balloonContentFooter: "",
            hintContent: "На Боголюбова 44",
            iden:"DBN5"
        })      
               ;

    
    myMap.geoObjects.add(myPlacemark1),myMap.geoObjects.add(myPlacemark2);
        
    
    myPlacemark1.events.add('click' , function(e){

            alert(myPlacemark1.properties.get('iden'));

        });
    
}
7 Гений 1С
 
гуру
05.06.22
20:13
(2) хотя нет, это если по балуну щелкнешь, ладно, реанимирую как-нибудь один проект, там была привязка ID, гляну.
Но если кто знает, свистите
8 Гений 1С
 
гуру
06.06.22
14:57
Выложил за вознаграждение 3 СМ: https://forum.infostart.ru/forum9/topic282387/
9 Конструктор1С
 
06.06.22
15:48
(4) читай документацию, а не лепи костыли
10 Гений 1С
 
гуру
06.06.22
20:35
уфф, вроде получилось, боюсь спугнуть удачу, счас опубликую
11 Гений 1С
 
гуру
06.06.22
20:52
(1) Пришлось все же по твоему методу идти.  Вот итоговый код:

ymaps.ready(init);

function init () {
    var myMap = new ymaps.Map("map", {
            center: [56.735323, 37.1556315],
            zoom: 10
        }, {
            searchControlProvider: 'yandex#search'
        })
        ,
        myPlacemark1 = new ymaps.Placemark([56.74146, 37.170678], {
            balloonContentHeader: "СДЭК",
            balloonContentBody: "На Понтекорво",
            balloonContentFooter: "",
            hintContent: "На Понтекорво",
            iden:"DBN4"
        })      
               ,
        myPlacemark2 = new ymaps.Placemark([56.729186, 37.140585], {
            balloonContentHeader: "СДЭК",
            balloonContentBody: "На Боголюбова 44",
            balloonContentFooter: "",
            hintContent: "На Боголюбова 44",
            iden:"DBN5"
        })      
               ;

    
    myMap.geoObjects.add(myPlacemark1),myMap.geoObjects.add(myPlacemark2);
        
                        
           myPlacemark1.events.add('click' , function(e){
        var evt = document.createEvent('MouseEvents');
        evt.initEvent('click', true, false );
        evt.data = myPlacemark1.properties.get('iden');
        document.dispatchEvent(evt);
   });
     myPlacemark2.events.add('click' , function(e){
        var evt = document.createEvent('MouseEvents');
        evt.initEvent('click', true, false );
        evt.data = myPlacemark2.properties.get('iden');
        document.dispatchEvent(evt);
   });
}


Ну и в 1С:

&НаКлиенте
Процедура дор_ЯндексКартаПриНажатииПосле(Элемент, ДанныеСобытия, СтандартнаяОбработка)
    
    Если ЗначениеЗаполнено(ДанныеСобытия.Event.data) Тогда    
        
        //Осипов Яндекс-карты  2022-06-05
        КодПункта = ДанныеСобытия.Event.data; //Пример: "DBN5"
        
    КонецЕсли;
    
КонецПроцедуры
2 + 2 = 3.9999999999999999999999999999999...