Документ Маршрутизация для УНФ 1.6 (геокодирует через API Google map, отображает на Яндекс картах)

02.10.19

Интеграция - WEB-интеграция

Расширение конфигурации. По данным из заказ "Адрес доставки" по кнопке "Геокодировать" получает данные адреса (широта, долгота) через Api Google Maps, и отображает на Яндекс карте точки. Выбранные точки меняют цвет на красный. Для геокодирования требуется Api ключ Google Maps.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Документ Маршрутизация для УНФ 1.6 (геокодирует через API Google map, отображает на Яндекс картах):
.cfe 77,93Kb
8 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

По данным из заказ "Адрес доставки" по кнопке "Геокодировать" получает данные адреса (широта, долгота) через Api Google Maps, и отображает на Яндекс карте точки. Выбранные точки меняют (при клике на карте или выборе в табличной части) цвет на красный и отмечаются как выбранные. Для геокодирования требуется Api ключ Google Maps.

Api ключ Google Maps заполняется в карточке организации.

Проверено на УНФ 1.6.18.105.

Геокодирование Google

&НаСервере
Процедура ГеокодироватьНаСервере()
    // Вставить содержимое обработчика.
    Ключ = Объект.Key_API;
    Кол = 0;
    Ном = 1;
    Для Каждого Строка Из Объект.Заказы Цикл
        Строка.НомерПП = Ном;
        Ном = Ном + 1;
        Строка.Выб = Ложь;
        Если ЗначениеЗаполнено(Строка.Широта) и ЗначениеЗаполнено(Строка.Долгота) Тогда Продолжить; КонецЕсли;
        ПараметрПоиска = Строка.Адрес;
        Кол = Кол + 1;
        АдресOutput = ПолучитьИмяВременногоФайла(); 
        Ключ = Ключ;
        
        Координаты = Новый Структура;
        Координаты.Вставить("Адрес",""); 
        Координаты.Вставить("Широта",""); 
        Координаты.Вставить("Долгота","");
        
        СервисРесурс    = "maps/api";
        СервисПараметры = "/geocode/json?language=ru&address="+ПараметрПоиска+"&key="+Ключ;
        
        Сервер = "maps.googleapis.com";
        
        ssl = Новый ЗащищенноеСоединениеOpenSSL(Неопределено,Неопределено);
        
        Соединение = Новый HTTPСоединение(Сервер, , , , , 60,ssl);
        
        ТелоОтвета = "";
        
        Попытка
            HTTPЗапрос = Новый HTTPЗапрос(СервисРесурс+СервисПараметры);
            HTTPОтвет = Соединение.Получить(HTTPЗапрос);
            ТелоОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
        Исключение
            Сообщить("Ошибка! Не удалось установить HTTP-соединение с сервером: "+Сервер+". "+ОписаниеОшибки());
        КонецПопытки; 
        
        //Сообщить(ТелоОтвета);
        
        Если ТелоОтвета="" Тогда
            Сообщить("По заказу " + Строка.Заказ.Номер+ "адрес не найден: "+ТелоОтвета+".");
            Продолжить;
        КонецЕсли;    
        
        //Разбираем JSON
        
        ЧтениеJSON = Новый ЧтениеJSON;
        ЧтениеJSON.УстановитьСтроку(ТелоОтвета);
        СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);
        ЧтениеJSON.Закрыть();
        
        Результат = СтруктураОтвета.status;
        
        Если Результат = "OK" Тогда
            //ошибок нет, адрес обработан и получен хотя бы один геокод.
        ИначеЕсли Результат = "ZERO_RESULTS" Тогда
            Сообщить("По заказу " + Строка.Заказ.Номер+ "адрес не найден: "+Результат+".");
            Продолжить;
        Иначе
            Сообщить("По заказу " + Строка.Заказ.Номер+ " Ошибка: "+Результат+". Возможно не указан или не верный API Key в настройках Геокодера.");
            Продолжить;
        КонецЕсли;
        
        Адрес1    = СокрЛП(СтруктураОтвета.results[0].formatted_address);
        Строка.Широта   = КоординатаВСтроку(Лев(СтруктураОтвета.results[0].geometry.location.lat,9));   
        Строка.Долгота  = КоординатаВСтроку(Лев(СтруктураОтвета.results[0].geometry.location.lng,9));
    КонецЦикла;
КонецПроцедуры

Функция КоординатаВСтроку(Знач Стр)
    
    Стр = СтрЗаменить(Стр,",",".");
    Стр = СтрЗаменить(Стр,Символы.НПП,"");
    
    Возврат Стр;
КонецФункции

 

Вступайте в нашу телеграмм-группу Инфостарт

Гекодирование логистика яндекс карты

См. также

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

57600 руб.

26.11.2024    6372    4    3    

7

SALE! 15%

WEB-интеграция Программист Бизнес-аналитик 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

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

17280 14688 руб.

20.12.2024    3689    17    2    

19

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    21467    29    24    

24

WEB-интеграция 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Россия Платные (руб)

В расширении реализован механизм интеграции между системой поставщика и Личным кабинетом СДТ. Реализован обмен заказами и реализациями (накладными), предусмотрено отслеживание статусов документов. Расширение предназначено для 1С:УТ 11.4.

35856 руб.

27.11.2024    1991    1    0    

1

Оптовая торговля WEB-интеграция Бюджетный учет Обмен с ГосИС Бухгалтер Пользователь 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Государственные, бюджетные структуры Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обмен данными с "Порталом поставщиков" zakupki.mos.ru Москвы и Московской области с целью создания оферт для закупок государственными учреждениями. Модуль устраняет рутину, минимизирует ошибки и помогает выигрывать больше закупок. Работает строго по требованиям 44-ФЗ.

14400 руб.

13.12.2016    41106    54    39    

37

WEB-интеграция Программист 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разработана для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

12000 руб.

02.02.2021    20441    59    52    

36
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. tjurikov_ivan 216 24.09.19 19:52 Сейчас в теме
А почему геокодирование в гугле, а карта на яндексе? яндекс тоже может геокодировать, или наоборот можно точки в гугле вывести. Просто интересно почему именно такой выбор?
2. asamorod 56 24.09.19 20:06 Сейчас в теме
За последние 6 месяцев, яндекс геокодер отказывался работать 2 раза. Блокировался ip.
Метки в яндексе более удобные к использованию (по мнению пользователей). На самом деле реализованы оба варианта с более широким функционалом.
Рабочие примеры документов из разработки.
Прикрепленные файлы:
3. mysm 86 25.09.19 18:57 Сейчас в теме
На какоих релизах платформы проверялось?
4. asamorod 56 25.09.19 20:42 Сейчас в теме
1С:Предприятие 8.3 (8.3.14.1630)
5. ui69 41 27.09.19 05:10 Сейчас в теме
Выложите код как через Google широту долготу получить, буду признателен.
6. asamorod 56 27.09.19 09:50 Сейчас в теме
(5)Добавил в описание продукта.
7. ui69 41 27.09.19 13:25 Сейчас в теме
8. unduty 02.10.19 18:26 Сейчас в теме
На платформа 8.3.15 карта не двигается.
9. asamorod 56 02.10.19 23:14 Сейчас в теме
(8) Похоже проблема в новом движке Webkit.
10. pafftis 14 12.05.25 17:45 Сейчас в теме
Добрый день, ищем некую интеграцию. Которая бы могла следующее: есть у нас за день порядка 150 отгрузок все они в черте города, город имеет некие районы, скажем район №1 и район №2. За день у нас формируется все реализации, у каждой реализации есть свой адрес. Очень хочется выгрузить список этих точек с адресами, назначить точку отправления и точку завершения работы (это как правило одна и та же точка) и что бы маршрут с адресами выставился в том порядке (ну скажем как это делает сам яндекс при прокладке маршрутов). Может так эта обработка? И вообще все мои хотелки имеют ли какое-то ограничение по количеству запросов и так далее в виде расхода денежных средств =)?
Для отправки сообщения требуется регистрация/авторизация