Почему перестали работать Google Карты в 1С и как это исправить?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Многие разработчики, использующие в своих конфигурациях 1С элемент Поле HTML документа для отображения карт Google, столкнулись с внезапными ошибками сценариев. Давайте вместе разберемся, почему это происходит и как вернуть работоспособность вашего кода.

Выясняем причины сбоя

Основная проблема заключается в том, что Google постоянно обновляет требования к безопасности и способам доступа к своим сервисам. Старые скрипты, которые еще несколько лет назад работали безупречно, сегодня вызывают критические ошибки. Главные причины, которые мы выявили:

  1. Обязательное наличие ключа API: Google больше не поддерживает анонимный доступ к своим картам. Теперь для каждого вызова обязательно требуется индивидуальный ключ API Key.
  2. Устаревший движок браузера: Элемент Поле HTML документа в среде 1С по умолчанию использует системный движок Internet Explorer. В старых версиях этого браузера современные стандарты JavaScript просто не могут корректно исполниться.
  3. Переход на безопасный протокол: Использование протокола http больше не является стандартом и блокируется многими сервисами.

Шаг 1: Настройка режима совместимости

Первым делом мы должны заставить системный браузер использовать более современный движок для рендеринга страницы. Для этого в секцию <head> вашего HTML-кода необходимо добавить специальный мета-тег.

Рассмотрим, как это выглядит в коде:


<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>

Использование IE=edge дает команду движку Internet Explorer работать в режиме самой актуальной версии, доступной в данной операционной системе, что критически важно для исполнения современных скриптов Google Maps.

Шаг 2: Получение и подключение ключа API

Для дальнейшей работы нам необходимо получить ключ в консоли Google Cloud Platform. После получения ключа нам нужно заменить старую строку подключения скрипта на актуальную. Обязательно используйте https.

Пример правильного подключения скрипта:


<script async defer 
    src="https://maps.googleapis.com/maps/api/js?key=ВАШ_КЛЮЧ_API&callback=initMap">
</script>

Шаг 3: Полный пример исправленного кода

Давайте соберем все полученные знания воедино. Ниже представлен шаблон минимально рабочего кода, который можно использовать в обработке 1С. Мы разберем его структуру: установка мета-тега, стилевое оформление контейнера и инициализация функции отрисовки карты.


<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <style>
      #map { height: 100%; width: 100%; }
      html, body { height: 100%; margin: 0; padding: 0; }
    </style>
  </head>
  <body>
    <div id="map"></div>
    <script async defer src="https://maps.googleapis.com/maps/api/js?key=ВАШ_КЛЮЧ&callback=initMap"></script>
    <script>
      function initMap() {
        var map = new google.maps.Map(document.getElementById('map'), {
          center: {lat: 55.75, lng: 37.61},
          zoom: 10
        });
      }
    </script>
  </body>
</html>

Важные рекомендации по работе с Google Maps API

При настройке и использовании карт в 1С придерживайтесь следующих правил:

Надеемся, что это подробное руководство поможет вам успешно восстановить работу карт в ваших разработках на платформе 1С. Если текущая задача не является критичной для использования именно Google Maps, рассмотрите также альтернативные картографические сервисы, которые могут предложить более гибкие условия для интеграции.

← На главную