Бизнес-процессы - Отсутствие типа "Привязка к яндекс-карте" в активити "Запрос доп. информации"
Добрый день!
На коробочной версии портала столкнулся с проблемой некорректной работы запроса дополнительной информации для переменной типа "Привязка к яндекс-карте".
Во-первых, как оказалось этот тип пока не поддерживается для БП, которые создаются при изменении списков.
Код из модуля:
Во-вторых, даже в обычных БП, в которых этот тип есть, все работает плохо.
При попытке отметить точку на карте - создается еще один контейнер для яндекс-карты, и только на второй клик точка ставится.
При этом это все равно ничего не даст, данные переменной не заполняются и не идут дальше. Все работает только, если заполнять координаты руками.
Техподдержка передала баг в отдел разработки, но пока нет обновлений я решил поделитьсякостылем временным решением.
Как оказалось, проблема в том, что хоть переменная и не множественная - для нее все равно грузится js-Функция, как для множественной.
Функция для яндекс-карты определяется в файле /bitrix/modules/fileman/properties.php. В этом файле 2 функции: одна для множественного свойства, другая - нет.
Быстрое решение следующее:
1) копируем шаблона компонента bizproc.task в шаблон сайта bitrix24.
2) открываем template.php и в конец файла добавляем следующий js-код
т.е. по сути переопределяем js-функцию для яндекс-карты.
Возможно, у кого-то есть лучшие решения проблемы? Может можно скопировать активити "Запрос доп. информации" и в ней как-то переопределять этот js?
Надеюсь, кому-то это поможет сэкономить время, ну или кто-то предложит более грамотное решение проблемы.
P.s. Если кому-то нужно быстрое решение, как добавить переменную типа прив. к яндекс-карте в БП именно для списков, то у меня есть один вариант.
Добрый день!
На коробочной версии портала столкнулся с проблемой некорректной работы запроса дополнительной информации для переменной типа "Привязка к яндекс-карте".
Во-первых, как оказалось этот тип пока не поддерживается для БП, которые создаются при изменении списков.
Код из модуля:
$ignoredTypes = array('map_yandex'); foreach (CIBlockProperty::GetUserType() as $ar) { if(in_array($ar["USER_TYPE"], $ignoredTypes)) { continue; } ....... } |
При попытке отметить точку на карте - создается еще один контейнер для яндекс-карты, и только на второй клик точка ставится.
При этом это все равно ничего не даст, данные переменной не заполняются и не идут дальше. Все работает только, если заполнять координаты руками.
Техподдержка передала баг в отдел разработки, но пока нет обновлений я решил поделиться
Как оказалось, проблема в том, что хоть переменная и не множественная - для нее все равно грузится js-Функция, как для множественной.
Функция для яндекс-карты определяется в файле /bitrix/modules/fileman/properties.php. В этом файле 2 функции: одна для множественного свойства, другая - нет.
Быстрое решение следующее:
1) копируем шаблона компонента bizproc.task в шаблон сайта bitrix24.
2) открываем template.php и в конец файла добавляем следующий js-код
<sc ript type="text/javascript"> function setPointValue_map_yandex__(obEvent) { var obPoint = BX.type.isArray(obEvent) ? obEvent : obEvent.get("coordPosition"); if (null == window.obPoint_map_yandex____n0_) { window.obPoint_map_yandex____n0_ = new ymaps.Placemark(obPoint, {}, {draggable:true}); window.GLOBAL_arMapObjects['map_yandex__'].geoObjects.add(window.obPoint_map_yandex____n0_); window.obPoint_map_yandex____n0_.events.add('dragend', updatePointPosition_map_yandex____n0_); } else { window.obPoint_map_yandex____n0_.geometry.setCoordinates(obPoint); } BX('bx_map_hint_novalue_map_yandex__').style.display = 'none'; BX('bx_map_hint_value_map_yandex__').style.display = 'block'; BX('point_control_map_yandex____n0_').style.display = 'inline-block'; updatePointPosition_map_yandex____n0_(obPoint); window.GLOBAL_arMapObjects['map_yandex__'].panTo(obPoint_map_yandex____n0_.geometry.getCoordinates(), {delay:0}); } </sc ript> |
Возможно, у кого-то есть лучшие решения проблемы? Может можно скопировать активити "Запрос доп. информации" и в ней как-то переопределять этот js?
Надеюсь, кому-то это поможет сэкономить время, ну или кто-то предложит более грамотное решение проблемы.
P.s. Если кому-то нужно быстрое решение, как добавить переменную типа прив. к яндекс-карте в БП именно для списков, то у меня есть один вариант.