Современные бизнес-процессы в 1С, особенно в блоках управления торговлей (УТ), ERP или специализированных логистических модулях, тесно завязаны на картографические сервисы. Долгое время Google Maps Platform оставался стандартом де-факто благодаря своему щедрому ежемесячному кредиту. Однако ситуация кардинально меняется. Разберем, какие именно изменения нас ждут, почему старые схемы интеграции перестанут быть выгодными и на какие инструменты стоит переходить разработчикам 1С уже сегодня.
Выясним причину массового беспокойства разработчиков. До текущего момента Google предоставлял единый кредит в размере 200 долларов США, который покрывал практически любые запросы (карты, маршруты, места) для небольших и средних проектов. С 1 марта 2025 года эта модель упраздняется. Вместо единого кошелька вводятся категории Essentials, Pro и Enterprise.
Проанализируем, как это отразится на типичных задачах 1С:
Учитывая сложности с оплатой зарубежных сервисов и новые тарифы, рассмотрим альтернативные пути развития инфраструктуры внутри 1С.
Наиболее радикальный и надежный способ — это развертывание собственного сервера маршрутизации. Это позволяет полностью избавиться от зависимости от внешних API и ежемесячных платежей. Рассмотрим подробнее связку PostgreSQL + OSM + OSRM.
OpenStreetMap (OSM) — это бесплатная карта мира, создаваемая сообществом. Для работы в 1С мы можем не просто подключать внешние тайлы (картинки), но и загрузить всю базу данных дорог РФ в свою инфраструктуру.
Разберем алгоритм действий:
PostgreSQL с расширением PostGIS.Проанализируем преимущества такого подхода для 1С: интеграция происходит через обычные HTTP-запросы к вашему локальному серверу. Пример формирования запроса из кода 1С может выглядеть следующим образом:
Соединение = Новый HTTPСоединение("ваш_сервер_osrm", 5000);
Запрос = Новый HTTPЗапрос("/route/v1/driving/" + КоординатыТочек + "?overview=full&geometries=geojson");
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
ДанныеМаршрута = ПрочитатьJSON(ЧтениеJSON);
// Обработка координат и дистанции
КонецЕсли;
Если стандартных возможностей OSRM недостаточно (например, требуется учет габаритов транспортных средств, веса груза или специфических ограничений для фур), проанализируем более гибкие движки.
GraphHopper — отлично подходит для интеграции с 1С:УАТ. Он потребляет меньше оперативной памяти и позволяет на лету менять профили машин. Рассмотрим ситуацию: нам нужно построить маршрут для грузовика, которому запрещен въезд в центр города. GraphHopper позволяет передать параметры профиля в запросе, что в Google Maps API стоило бы значительно дороже.
Valhalla — это выбор для высоконагруженных систем. Главная особенность заключается в поддержке динамического изменения весов. Если в вашу 1С поступают данные о перекрытиях дорог, Valhalla позволяет учесть их без полной пересборки графа дорог, что экономит часы работы сервера.
Не всегда есть возможность поддерживать собственный сервер. В таких случаях рассмотрим отечественные API. Важно помнить, что бесплатное использование API Яндекс.Карт в коммерческих целях (внутри закрытых систем 1С) официально запрещено лицензией.
Проанализируем особенности каждого сервиса:
ПолеHTMLДокумента, где инициализируется SDK карты.Независимо от выбранного поставщика данных (OSM, Mapbox или свой сервер), для отображения карты в управляемой форме 1С лучше всего использовать JavaScript-библиотеку Leaflet. Она легкая, быстрая и стабильно работает в ПолеHTMLДокумента.
Разберем по шагам, как вывести карту OSM в 1С:
ПоказатьКарту() для отрисовки объектов.Пример упрощенного шаблона для вывода карты:
<html>
<head>
<link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet/dist/leaflet.js"></script>
</head>
<body>
<div id="map" style="width: 100%; height: 100vh;"></div>
<script>
var map = L.map('map').setView([55.75, 37.61], 13);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
</script>
</body>
</html>
В 1С мы можем передавать данные в эту карту через механизм ЭтаФорма.Элементы.КартаHTML.Документ.parentWindow или используя современные методы взаимодействия с Полем HTML документа в платформе 8.3. Важный момент: использование векторных тайлов (через MapLibre GL JS) вместо растровых позволит сделать карту в 1С более плавной и интерактивной, что критично при отображении сотен точек заказов на одном экране.
Выясним ситуацию с лицензированием OpenStreetMap. Данные распространяются под лицензией ODbL. Это означает, что если вы исправляете ошибку в геометрии дороги на карте внутри своей системы, вы должны вернуть это исправление в сообщество OSM. Однако ваши коммерческие данные (маршруты курьеров, базы клиентов), наложенные поверх этой карты в 1С, остаются вашей интеллектуальной собственностью и не подлежат раскрытию.
Подводя итог, можно сказать: уход от Google Maps API — это не только вынужденная мера из-за стоимости, но и отличный повод повысить автономность вашей системы. Переход на OSRM или GraphHopper дает разработчику 1С полный контроль над логикой построения маршрутов, позволяя учитывать специфику конкретного бизнеса без оглядки на лимиты запросов.