Многие разработчики, использующие в своих конфигурациях 1С элемент Поле HTML документа для отображения карт Google, столкнулись с внезапными ошибками сценариев. Давайте вместе разберемся, почему это происходит и как вернуть работоспособность вашего кода.
Основная проблема заключается в том, что Google постоянно обновляет требования к безопасности и способам доступа к своим сервисам. Старые скрипты, которые еще несколько лет назад работали безупречно, сегодня вызывают критические ошибки. Главные причины, которые мы выявили:
API Key.Поле HTML документа в среде 1С по умолчанию использует системный движок Internet Explorer. В старых версиях этого браузера современные стандарты JavaScript просто не могут корректно исполниться.http больше не является стандартом и блокируется многими сервисами.Первым делом мы должны заставить системный браузер использовать более современный движок для рендеринга страницы. Для этого в секцию <head> вашего HTML-кода необходимо добавить специальный мета-тег.
Рассмотрим, как это выглядит в коде:
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
Использование IE=edge дает команду движку Internet Explorer работать в режиме самой актуальной версии, доступной в данной операционной системе, что критически важно для исполнения современных скриптов Google Maps.
Для дальнейшей работы нам необходимо получить ключ в консоли Google Cloud Platform. После получения ключа нам нужно заменить старую строку подключения скрипта на актуальную. Обязательно используйте https.
Пример правильного подключения скрипта:
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=ВАШ_КЛЮЧ_API&callback=initMap">
</script>
Давайте соберем все полученные знания воедино. Ниже представлен шаблон минимально рабочего кода, который можно использовать в обработке 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>
При настройке и использовании карт в 1С придерживайтесь следующих правил:
HTTP-реферерам или IP-адресам вашего сервера, чтобы исключить возможность кражи вашего ключа.Поле HTML документа и проверьте консоль разработчика (если это позволяют средства отладки 1С) на наличие сообщений об ошибках аутентификации API.Надеемся, что это подробное руководство поможет вам успешно восстановить работу карт в ваших разработках на платформе 1С. Если текущая задача не является критичной для использования именно Google Maps, рассмотрите также альтернативные картографические сервисы, которые могут предложить более гибкие условия для интеграции.