Вставить яндекс карту в 1с

Обновлено: 07.07.2024

Чтобы использовать данную обработку, необходимо получить API-ключ Яндекса в Кабинете разработчика (ссылка на форме обработки).

В таблице "Адреса на карте" вбивается адрес (координаты определяются автоматически).

В таблице "Маршрут" добавляются автоматически из таблицы "Адреса на карте" (при выборе адреса галкой). Можно менять порядок строк маршрута.

При желание обработку можно будет доработать для своих нужд.

Тестирование производилось на платформе 8.3.13 и 8.3.15. Будет работать на любой платформе в обычном и управляемом приложении.

Обработка делает следующее:

- выводятся метки и прокладывается маршрут между метками.

- выводятся разноцветные метки, прокладывается маршрут между метками и подсчитывается расстояние при прокладке маршрута между адресами;

- выводятся метки, на нажатии которых высвечивается балун с содержимым;

- метки на карте группируются (кластеризуются) при уменьшении масштаба.

- построение маршрутов между двумя точками;

- возможно выбрать вид маршрута: автомобильный, общественный транспорт, пешеходный (пеший);

- при автомобильном маршруте есть возможность учитывать пробки.

Работа с Яндекс-картами в 1С (вывод меток, прокладка маршрута, отображение балуна, вывод меток в кластеры) (обычное приложение): Работа с Яндекс-картами в 1С (вывод меток, прокладка маршрута, отображение балуна, вывод меток в кластеры) (управляемое приложение): Работа с Яндекс-картами в 1С (вывод меток, прокладка маршрута, отображение балуна, вывод меток в кластеры) (обычное и управляемое приложение): Маршрутизация Яндекс-карт в 1С (обычные и управляемые формы):

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Автор запретил комментарии

Просмотры 5452

Загрузки 33

Рейтинг 9

Создание 13.01.20 10:50

Обновление 23.02.20 20:44

№ Публикации 1178717

Конфигурация Конфигурации 1cv8

Операционная система Не имеет значения

Вид учета Не имеет значения

Доступ к файлу Абонемент ($m)

Код открыт Да

Полная автоматическая загрузка данных, гибкие настройки списания партий, учтен опыт реальных производителей и оптовиков Обмен с ФГИС Меркурий (Ветис.API) для всех* конфигураций 1С 7.7

См. также

Модуль обмена с QIWI Промо

Компании, которые используют систему моментальных платежей QIWI, ценят ее за удобство по скорости выплат и для платежей по запросу. Но такие переводы сложны для учета, а при большом объеме проводимых операций отнимают много времени и превращаются в дополнительную головную боль. Мы сотрудничали с компаниями, которые отправляют большое количество платеже на QIWI, и часто слышали боль бухгалтеров о том, как им сложно работать с такими переводами. Поэтому мы автоматизировали выплаты через QIWI в 1С и создали модуль интеграции 1С c API QIWI Wallet и QIWI TopUp.

5 стартмани

25.05.2020 8193 0 Neti 10

Расширение конфигурации для Web-доступа к 1С (1С в роли back-end)

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

1 стартмани

01.04.2021 8832 11 SaschaG 4

Работа с картами в 1С на примере бесплатной библиотеки Leaflet

Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.

1 стартмани

31.03.2021 10463 31 Parsec1C 11

1 стартмани

24.03.2021 7109 13 ltfriend 12

BIM: взаимодействие с платформой Autodesk Forge Промо

Предлагаемый пример демонстрирует широкие возможности для взаимодействия «1С:Предприятие» с платформой Autodesk Forge и позволяет вам получить базовые представления о применения технологий информационного моделирования в строительстве. Поддерживаются все версии платформы от 8.3.12 и выше до 8.3.18.

Код Модуля Обработки:
Код 1C v 8.х

Код Формы Управляемой:
Код 1C v 8.2 УП

Разместил: E_Migachev  Версии: | 8.x | 8.2 УП |  Дата: 15.05.2013   Прочитано: 21945

Распечатать

Похожие FAQ

1C и Google Maps  20
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш COM-подключение к базе 7.7 из 8.2 1С  6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D:ВашаБаза1с77" ; Пользователь= Google maps : вывод точек на карту и режим панорамы  7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Авто добавление обработки в справочник Внешних обработок  0
Чтобы не изменять типовую конфигурацию приходится использовать типовой механизм внешних печатных форм и обработок. Данный код проверяет - добавлена ли открываемая обработка в конфигурацию, если нет - задает вопрос и при положительном ответе - автома Автоматизация обмена данных используя обработку "Универсальный обмен данными в формате XML"  10
Автоматизация обмена между базами используя обработку " Универсальный обмен данными в формате XML" В основу данной публикации положены найденные мною материалы по cозданию обмена между двумя базами с использованием обработки " Универсальный обме Посмотреть все результаты поиска похожих

Еще в этой же категории

1C и Google Maps  20
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш QR код в 1С  20
Столкнулся с интересной задачей реализации генерации QR-кода в 1С 8.2 ( QR-код — матричный код (двухмерный штрихкод) ) Для генерации было использовано api от google (http://chart.apis.google.com/chart). Вот сайт , который работает с ним. После тог Как сделать, задать паузу при выполнении кода?  12
Если это какая-нибудь обработка и запускается на клиенте(у пользователя) то можно использовать обработчик ожиданий у встроенных функций: //Самый простой и доступный способ - использовать диалог " Предупреждение" // с заданным в качестве параметра Как подключиться (присоединится) к базе 1С 8 через СОМ  6
//Пример 1 v8 = CreateObject(" V8.COMConnector" ); //Строку подключения можно получить так: Если ФайловаяБазаДанных Тогда СтрокаПодключения = " file=" + КаталогБазыДанных + " ; usr=" + Пользователь + " ; pwd=" + Пароль + " ;" ; Иначе COM-подключение к базе 7.7 из 8.2 1С  6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D:ВашаБаза1с77" ; Пользователь= Посмотреть все в категории COM-объекты, WMI, WSH

Ключевые слова и Изображения

Слова упорядочены по частоте использования в тексте

Изображения

С такой структурой

Яндекс.Получить("/1.x/?geocode=" + ТекАдрес + "&results=10", ВременныйФайл);

Яндекс не работает, сервер возвращает 301 код ошибки, так как идет перенаправление.

Чтобы получить данные XML, покопавшись на форумах, нашел следующий метод:

Знач ПолучитьКакДвоичныеДанные = Ложь, Знач ЗащищенноеСоединение = Ложь) Экспорт

Перем ИмяФайлаОтветаКодированное, ИмяФайлаОтвета, Порт, Логин, Пользователь, Пароль, Прокси, Таймаут;

Если Не ЗначениеЗаполнено(СерверПриемник) Тогда Возврат Неопределено; КонецЕсли;

Если Найти(Нрег(СерверПриемник), "https://") = 1 Тогда ЗащищенноеСоединение = Истина; КонецЕсли;

Протокол = ?(Найти(Нрег(СерверПриемник), "https://") = 1 ИЛИ ЗащищенноеСоединение, "https://", "http://");

Если Лев(НРег(СерверПриемник), СтрДлина(Протокол)) = Протокол Тогда

СерверПриемник = Сред(СерверПриемник, СтрДлина(Протокол) + 1);

Если Позиция > 0 Тогда

СерверПриемник = Лев(СерверПриемник, Позиция - 1);

//Выделяем порт из доменного имени

Если ПозицияДвоеточия > 0 Тогда

Порт = Число(Сред(СерверПриемник, ПозицияДвоеточия + 1));

СерверПриемник = Лев(СерверПриемник, ПозицияДвоеточия - 1);

Если ТипЗнч(ПараметрыСоединения) = Тип("Структура") Тогда

Для каждого КлючЗначение из ПараметрыСоединения Цикл

Значение = КлючЗначение.Значение; Выполнить(КлючЗначение.Ключ + " = Значение;");

Пользователь = ?(ЗначениеЗаполнено(Пользователь), Пользователь, Логин);

?(ЗащищенноеСоединение, Новый ЗащищенноеСоединениеOpenSSL(), Неопределено));

//После получения ответа сервера необходимо проверить статус или код состояния.

//Если сервер вернул один из статусов переадресации

//301 Moved Permanently («перемещено навсегда») или 302 Moved Temporarily («перемещено временно»),

//то в этом случае можно попытаться перейти на ресурс, на который переадресовал сервер

//Адрес страницы переадресации содержится в поле Location заголовка ответа

//вставим их в заголовки для передачи на страницу перехода

Если ЗначениеЗаполнено(Куки) Тогда ЗаголовкиHTTP.Вставить("Cookie", Куки); КонецЕсли;

Если Найти(ТипСодержимого, "text/") = 1 ИЛИ Найти(ТипСодержимого, "/javascript")

ИЛИ Найти(ТипСодержимого, "+xml") ИЛИ Найти(ТипСодержимого, "/xml") <> 0 ИЛИ Найти(ТипСодержимого, "/json") <> 0 Тогда

ИначеЕсли Найти(ТипСодержимого, "image/") = 1 ИЛИ Найти(ТипСодержимого, "video/") = 1

ИЛИ Найти(ТипСодержимого, "application/") = 1 ИЛИ Найти(ТипСодержимого, "audio/") = 1 Тогда

//Если содержимое полученного ответа представляет собой изображение, видео, приложение,

//возвращаем двоичные данные, так как возвращать в виде строки не имеет смысла.

//Некоторые сервера возвращают в типе содержимого имя отданного файла, например image/png; name="Имя файла.jpg"

Если ОтветHTTP.Заголовки["Content-Disposition"] <> Неопределено Тогда

ПозицияИмениФайла = Найти(ТипСодержимого, "filename*=UTF-8");

Если ПозицияИмениФайла <> 0 Тогда

ИмяФайлаОтветаКодированное = Сред(ТипСодержимого, ПозицияИмениФайла + СтрДлина("filename*=UTF-8"));

Если ПозицияДвоеточия <> 0 Тогда

ИмяФайлаОтветаКодированное = Лев(ИмяФайлаОтветаКодированное, ПозицияДвоеточия - 1);

//в ключе filename= содержится обычное имя файла

ПозицияИмениФайла = Найти(ТипСодержимого, "name name ;");

Если ПозицияДвоеточия <> 0 Тогда

ИмяФайлаОтвета = Лев(ИмяФайлаОтвета, ПозицияДвоеточия - 1);

Если ЗначениеЗаполнено(ИмяФайлаОтвета) Тогда ЗаголовкиHTTP.Вставить("FileName", ИмяФайлаОтвета); КонецЕсли;

Если ЗначениеЗаполнено(ИмяФайлаОтветаКодированное) Тогда

Внимание! Перед использованием обработки следует ознакомиться с здесь почитайте комментарии), либо предлагают решение с получением ключа карт. Во многих публикациях для отображения карт используется "Поле HTML документа" на форме 1С. Этот объект уже давно устарел и не поддерживает возможности HTML 5. В итоге, чтобы отобразить страницу на форме 1С приходится долго "плясать с бубном".

Программист, которому впервые дали задание вывести на карту точку будет тратить лишнее время и СтартМани на поиски лучшего варианта, корректировать реестр Windows, как предложено здесь и в итоге столкнётся с тем, что стабильного рабочего варианта найти не удастся.

Мы предлагаем вариант решения, который будет работать везде и без специальных условий. Мы принципиально не используем объект WebBrowser Control, чтобы всё работало всегда и у всех.

Пример 1. Метка на карте

Для добавления метки на карте достаточно знать её координаты.

Параметры для метки на карте

Результат нажатия на кнопку “Показать метку” будет таким:

Метка на карте

Как это работает?

Для кнопки “Показать метку” назначена процедура:

Функция для получения текста HTML:

Подсказки в коде

Все экспортные функции и процедуры обработки описаны вспомогательными комментариями, поэтому будет легко догадаться о назначении параметров.
Функция “ДобавитьМетку” добавляет на карту метку с описанием.
Если необходимо на одной карте показать сразу несколько меток, то функцию “ДобавитьМетку” нужно вызывать несколько раз.
Для отображения результата составленного текста HTML используется процедура “ПоказатьНаКартеНаКлиенте”.

При выполнении этой процедуры в первый раз - появится окно с выбором программы-браузера. После выбора - откроется окно с картой.

Пример 2: Маршрут на карте

Параметры для маршрута

Маршрут на карте

Процедура кнопки “Показать маршрут”:

Пример 3: Получение координат из адреса (геокодирование)

Не всегда в типовой базе 1С имеются данные о координатах пункта назначения. Но зато есть адрес, представленный стройкой. Иногда даже заполненный по всем правилам КЛАДР (ФИАС).
Для таких случаев имеется возможность преобразовать строку почтового адреса в координаты: долготу и широту.

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

Функция “ПолучитьКоординатыПоАдресу” выполняет обращение к сервису геокодирования и разбирает ответ в структуру, содержащую координаты и адрес, для которого были определены координаты.

Пример 4. Расчет длины пути маршрута

Этот пример появился в версии 2.0 нашей обработки.

Эту задачу можно решить тремя способами.

Способ 1 - платный

и убрав директиву вначале текста страницы HTML

Расчёт длины маршрута

Длина маршрута записывается скриптом в отдельный тег <div> с идентификатором "dist", для того, чтобы потом было удобней парсить.

Отображение маршрута на карте не реализовано для повышения производительности. В этом примере карта вообще не нужна для отображения, поэтому в своих разработках вам придётся подумать как её скрыть. К сожалению, нерисовать карту нельзя. Длина не вычислится.

Если вынести операцию получения длины на отдельную базу и опубликовать на ней веб сервис, то можно реализовать псевдо вычисление на сервере. База пользователя будет обращаться к веб сервису, передавая в него точки маршрута. После этого каждые n секунд будет опрашивать веб сервис на появление в нем результата вычисления.
В базе, с опубликованным веб сервисом, должен быть всегда запущен клиент.

При получении точек маршрута web-сервис запишет их как входящее задание на вычисление, например, в свой регистр сведений. Клиент каждые m секунд будет опрашивать регистр сведений на получение новых заданий. При появлении таких - берет первое (самое старое) невыполненное задание и начинает рисовать карту на своей форме. После отрисовки - возвращает результат в регистр сведений.
Примерно так:

Комикс 1

Комикс 2

Комикс 3

Комикс 4

Комикс 5

Способ 3 - возможно, лучше всех

В предыдущем способе формируется текст страницы HTML для выполнения расчёта длины маршрута на клиенте средствами браузера. Этот текст можно попробовать использовать на сервере, применив COM-объект "AltBrowser.Browser". Применив методы простого парсинга можно получить значение из контейнера div и использовать в 1С.

Этот способ в данной статье не рассматривается.

Заключение

Все сложные операции с формированием текста HTML страницы карты и методами взаимодействия с сервисом Яндекс.Карты в нашей обработке имеют открытый код, который всегда можно доработать под свои нужды.

Обработка находится в составе конфигурации. Выложена целая конфигурация, так как в ней находится общая форма с примером использования обработки.


С помощью кнопки «Список карт» (отмечена красной стрелкой) можно просмотреть уже созданные Вами карты.

В левом части страницы располагается область, в которой задается название и описание для карты.

Конструктор позволяет сделать импорт из файла, для этого нажмите кнопку «Импорт», после чего выберите файл. (поддерживаются следующие форматы: XLSX, CSV, KML, GPX или GeoJSON ).


Чтобы правильно наполнить файл для импорта, скачайте доступные шаблоны, и измените адреса на необходимые Вам.

Для добавления адреса вручную, необходимо указать его в поисковой строке.


Далее, в модельном окне можно настроить внешний вид иконки, изменить адрес и добавить подпись к метке, которая будет отображаться рядом с иконкой на сайте.

Чтобы сохранить метку нажимает кнопку «Готово».


Когда все необходимы адреса будут добавлены на карту нажимаем кнопку «Сохранить и продолжить».


Следующим шагом выбираем как будет отображаться карта.

В левой части сайта расположены настройки карты, справа показано отображение карты.


Рассмотрим настройки карты.

  • Интерактивная карта — такая карта будет отзываться на действия пользователей.
  • Статическая карта — карта будет представлена в виде PNG изображения.

Указываем значения ширины и высоты. Если необходимо, чтобы карта растягивалась на ширину контейнера, необходимо поставить галочку «Растянуть по ширине».

Важно. Если вы хотите заменить карту на своем сайте, необходимо сделать ее точно такого же размера, как и уже существующая, иначе может нарушиться вся верстка на странице.

После завершения настроек карты нажимает кнопку «Получить код карты».


Далее, копируем полученный код и вставляем в необходимое место на сайте.

Важно. Не рекомендуется самостоятельно вносить изменения в код сайта. Неправильные действия могут нарушить работоспособность сайта.

Читайте также: