Модуль AWZ: Решение конфликтов Яндекс карт предназначен для устранения критических ошибок на сайтах под управлением 1С-Битрикс, возникающих при одновременной работе нескольких расширений, использующих API Яндекс.Карт. Проблема проявляется, когда разные компоненты подключают скрипты карт с разными версиями и ключами, что приводит к появлению сообщений об ошибках, зависанию картографических блоков и некорректному отображению данных. Решение автоматически перехватывает HTML-контент страницы и заменяет все ссылки на api-maps.yandex.ru на единый URL, указанный в настройках администратора. Это гарантирует стабильную загрузку библиотеки ymaps без конфликтов.
Функциональные возможности и совместимость
Продукт разработан для редакций 1С-Битрикс от «Первого сайта» до «Энтерпрайз», включая «Интернет-магазин + CRM». Модуль адаптивен, совместим с композитным режимом и поддерживает мультисайтовость. Ключевые характеристики решения:
- Гибкая фильтрация: настройка исключений по URL (с поддержкой регулярных выражений) и по GET-параметрам, что позволяет отключать замену на конкретных страницах.
- Автоподстановка ключей: при наличии модулей awz.ydelivery, awz.belpost, awz.europost или fileman система автоматически извлекает API-ключи из их настроек.
- Поддержка enterprise-версии: корректная работа с ключами от Яндекс.Бизнес и других тарифных планов.
- Управление активностью: возможность включать и отключать модуль для каждого сайта в многопользовательской среде.
Что получает покупатель после установки
После инсталляции и настройки модуля владелец сайта получает стабильную работу всех картографических сервисов без ручного редактирования кода. Исчезают ошибки типа «Не удалось загрузить API Яндекс.Карт» или «ymaps is not defined», которые снижают пользовательский опыт и влияют на конверсию. Администратору больше не требуется искать и править скрипты в шаблонах или настройках сторонних модулей — решение работает автоматически на уровне вывода контента в браузере.
Для кого подходит решение
Продукт ориентирован на владельцев интернет-магазинов, логистических сервисов и сайтов услуг, где активно используются модули доставки (например, awz.ydelivery для Яндекс.Доставки), карты филиалов или интерактивные маршруты. Особенно актуален для проектов, где одновременно работают три и более модуля от разных разработчиков, подключающих карты с различными ключами. Решение также будет полезно техническим специалистам и веб-мастерам, обслуживающим сложные многокомпонентные сборки на 1С-Битрикс, требующие централизованного контроля за подключением внешних API.
НазначениеМодуль автоматически заменяет подключения к API Яндекс карт на заданный URL, обеспечивая единый и корректный способ подключения библиотеки
ymaps. Это особенно полезно в ситуациях, когда несколько модулей (например,
awz.ydelivery,
awz.belpost,
awz.europost) подключают карты с разными ключами и версиями, что приводит к конфликтам и ошибкам.
Основные возможности- Автоматическая замена скриптов: Модуль перехватывает HTML-контент страницы и заменяет все подключения к api-maps.yandex.ru на единый URL, указанный в настройках.
- Гибкая настройка: Возможность включать/отключать модуль на отдельных сайтах (для мультисайтовых решений).
- Исключения по URL: Настройка страниц, на которых модуль не будет работать, с использованием регулярных выражений.
- Исключения по GET-параметрам: Отключение модуля на страницах с определёнными GET-параметрами.
- Автоматический поиск ключей: При наличии модулей awz.ydelivery, awz.belpost, awz.europost или fileman, модуль пытается автоматически подставить API-ключи из их настроек.
- Поддержка enterprise-версии: При наличии API-ключа для enterprise-версии, модуль автоматически переключается на enterprise.api-maps.yandex.ru.
Принцип работыМодуль подключается к событию
OnEndBufferContent ядра Bitrix. На этапе завершения формирования HTML-страницы он:
- Проверяет, что запрос не из админки, не POST-запрос и не AJAX-запрос.
- Получает настройки для текущего сайта (в мультисайтовых проектах).
- Проверяет, не отключён ли модуль для текущего GET-параметра или URL (через регулярные выражения).
- Ищет в HTML-коде все теги с подключением api-maps.yandex.ru.
- Заменяет первое найденное подключение на указанный в настройках URL (с добавлением #awzfixymap для последующей очистки).
- Удаляет все остальные подключения к Яндекс Картам.
- Удаляет метку #awzfixymap из итогового HTML.
Интеграция с Bitrix CMS- Установка: Модуль регистрируется в системе и подключает обработчик события OnEndBufferContent.
- Настройки: Доступны через раздел "Настройки модулей" → "Настройки модуля AWZ: Решение конфликтов Яндекс карт".
- Мультисайтовость: Настройки хранятся отдельно для каждого сайта (SITE_ID), что позволяет гибко управлять поведением модуля в мультисайтовых проектах.
Настройки и конфигурацияОсновные настройки- Включить модуль (ACTIVE)
- Флажок для включения/отключения модуля на текущем сайте.
- Значение по умолчанию: N (выключено).
- URL путь к библиотеке ymaps (URL)
- Полный URL для подключения библиотеки ymaps.
- Значение по умолчанию: автоматически формируется на основе ключей из других модулей.
- Отключить модуль на страницах с get параметрами (DSBL_GET)
- Список GET-параметров (через запятую), при наличии которых модуль не будет работать.
- Пример: preview,edit — модуль отключится на страницах /catalog/?preview=1 или /product/?edit=true.
- Отключить модуль на страницах по регулярному выражению (DSBL_REJ)
- Список регулярных выражений (каждое с новой строки), при совпадении с текущим URL модуль не будет работать.
- Примеры:
- /catalog/ — точный путь (опубликуется на /catalog/index.php).
- #\/catalog\/*#i — регулярное выражение (не опубликуется на */catalog/*).
- данные правила приоритетнее правил включения
- Включить модуль на страницах по регулярному выражению (ENBL_REJ)
- Список регулярных выражений (каждое с новой строки).
- Если задано хотя бы одно выражение в ENBL_REJ, модуль сработает только на страницах, совпадающих с этими выражениями.
Права доступаВ отдельной вкладке настроек доступна настройка прав доступа для различных групп пользователей.