Яндекс-карта (API 2) + геокодер Яндекс

28.01.14

Разработка - Работа с интерфейсом

Пример использования Яндекс-карт с возможностью поиска по строке или получением адреса по клику на карте

Скачать файлы

Наименование Файл Версия Размер
Яндекс-Карта
.epf 23,02Kb
1822
.epf 23,02Kb 1822 Скачать бесплатно

Идеей послужила публикация Яндекс-карты: примеры работы с API 2.0. Но "прикручивание" этого примера к тонкому клиенту вызвало огромное количество проблем. После долгих танцев с бубном, мной был написан небольшой  фреймворк, который практически без проблем позволяет использовать Яндекс-карту в тонком клиенте. В результате получилось следующее:

  1. Отключены сообщения об ошибках на стороне карты
  2. При открытии, карта центрируется по ip клиента.
  3. Есть возможность управлять типом карты и элементами управления на карте из 1С (последнее состояние запоминается).
  4. По строке поиска отбираются точные (и не только) объекты на карте, которые отображаются на карте и в списке.
  5. Все метки на карте перемещаемые. При перемещении метки, также изменяется соответствующий объект в списке.
  6. К стандартному набору кнопок добавлена "Информация об объекте". В этом режиме курсор мыши приобретает вид стрелки со знаком вопроса и по клику на карте отображается информация об объекте (идея из примера в API 1.x). Этот объект можно добавить в список выбранных.

 

Цвета в списке выбранных объектов:
- черный – адрес найден по строке поиска точно;
- серый – адрес найден по строке поиска не точно;
- коричневый – адрес выбран на карте или получен при перемещении маркера в указанное место.

Цвета маркеров:
- черный – объект найден по строке поиска;
- коричневый – адрес выбран на карте или получен при перемещении маркера в указанное место;
- красный – активный маркер (соответствует текущей строке с списке объектов).

 

Обработка использует функции из БСП (конфигурации: УНФ, БП 3, УТ 11; примеры использования БСП с диска ИТС).

Если карта не работает как надо (или вообще не реагирует ни на какие действия пользователя), то нужно очистить кеш 1С (запуск с ключом /ClearCache не всегда помогает - приходится удалять полностью папки с кешированными данными; почему - остается загадкой). Также, рекомендую очистить кеш, если вы уже использовали какие нибудь другие обработки с Яндекс-картой.

Тестировал на 1C 8.2.19.68 и 8.3.3.721. На web-клиенте и на linux-платформах не тестировал. Буду признателен, если пришлете отзывы.

Данная обработка представлена как пример для ознакомления с API Яндекс-карт (согласно Пользовательскому соглашению).

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61797    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54403    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

2400 руб.

29.06.2020    16698    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    10738    750    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

10.04.2023    9615    151    acces969    31    

118

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3666    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12080    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. maxx 991 04.02.14 22:45 Сейчас в теме
Можете подсказать возможно ли по адресу контрагента (например, фактический адрес контрагента) отобразить его на карте? Умеет ли такое делать Yandex
2. pimenushka 24 04.02.14 22:50 Сейчас в теме
Если адрес указан корректно, т.е. область, город, улица, дом то проблем нет. По крайней мере для google. Не думаю, что в яндексе хуже.
3. maxx 991 05.02.14 10:19 Сейчас в теме
(2) pimenushka, а как понять что адрес указан правильно с точки зрения карт?
4. ilyav 05.02.14 16:13 Сейчас в теме
7. pimenushka 24 10.02.14 22:47 Сейчас в теме
(3) maxx,названия географических объектов должны соответствовать названиям на яндекс-карте
5. krosaf4eg 46 08.02.14 18:29 Сейчас в теме
на веб-клиенте карта отображается, но кнопки "Добавить", "Показать все", "Обновить" и т. д. не доступны. При переключении типа карты, или элементов управления, или при клике на карту выскакивает ошибка "Метод объекта не обнаружен (eval)"

вылетает на строке

ПоследняяКоманда = Элементы.ЯндексКарта.Документ.parentWindow.eval("theMap?theMap.getLastEvent():null");

в процедуре ЯндексКартаПриНажатии(...)
user970646; +1 Ответить
6. krosaf4eg 46 08.02.14 20:58 Сейчас в теме
решил проблему с помощью трюка, описаного здесь и использованного здесь
user970646; +1 Ответить
10. BenGunn 247 27.02.14 16:15 Сейчас в теме
(6) krosaf4eg, А можно глянуть на код?
11. krosaf4eg 46 24.03.14 04:13 Сейчас в теме
(10) BenGunn, ой, а уведомления-то не приходят на почту о новых комментариях. Некропостинг получается, но на всякий случай оставлю. Я встраивал эту обработку в конфу, поэтому код еще тот говнокод сильно почикан, но, надеюсь, суть уловите, тем более, что я закомментировал первоначальный код в модуле форму Оффтоп для всех 1Сников: пользуйтесь инструментом Сравнить по содержимому в файловом менеджере Total Цоммандер

модуль формы, макет HTML
8. nastyY 11.02.14 00:09 Сейчас в теме
всеже в гугл более точно роботает . я бы выбрал гугл
9. ITEkb 26.02.14 08:37 Сейчас в теме
Нужная обработка. Забираю!
12. rsergio 80 19.04.14 18:20 Сейчас в теме
Хорошо сделано. Только не нашел возможности получения GPS координат.
13. AlexandrIII 19.04.14 18:58 Сейчас в теме
(12) rsergio, есть там в структуре "ОтветГеокодера".
14. BigB 191 20.08.14 12:11 Сейчас в теме
Валится по ошибке:
{Форма.Форма.Форма(373)}: Поле объекта недоступно для записи (ЭтотОбъект)
ЭтотОбъект = РеквизитФормыВЗначение("Объект");
Платформа: 8.3.5.924
Конфигурация: Библиотека стандартных подсистем", редакция 2.2 (2.2.3.14)

Ошибку исправил так:
&НаСервере
Процедура ИнициализацияЯндексКарты()
	ДвоичныеДанныеКартинки = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ПоказатьВсе");
	НавигационнаяСсылкаКартинки = ПоместитьВоВременноеХранилище(Новый Картинка(ДвоичныеДанныеКартинки));
	ЯндексМакет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("HTML");
	ЯндексКарта = СтрЗаменить(ЯндексМакет.ПолучитьТекст(), "%КартинкаИнформация%", НавигационнаяСсылкаКартинки);
КонецПроцедуры
user970646; +1 Ответить
15. BigB 191 20.08.14 14:29 Сейчас в теме
Протестировал в вебе.
Результат - не работает.
А жаль.
Прикрепленные файлы:
16. foralex2004 12.01.16 16:21 Сейчас в теме
На web-клиенте не работает.
17. foralex2004 12.01.16 16:28 Сейчас в теме
экран
Прикрепленные файлы:
18. k9260130000 27 23.02.16 12:53 Сейчас в теме
Перестала работать обработка, запускается но элементы управления (кнопки,масштабирование) не видны. Метки при поиске также проставляются. Причем неделю назад все работало на тех же конфигах. Почините пожалуйста, ибо обработка понравилась - хотел на ее базе формирование маршрутных листов для курьеров запилить.
19. draspopov 24.02.16 14:46 Сейчас в теме
Да, работало и перестало.
20. rabanik 2 24.02.16 15:45 Сейчас в теме
Добрый день, а может кто нибудь подсказать почему перестало работать? Спасибо, большое!
21. BenGunn 247 24.02.16 16:49 Сейчас в теме
Добрый день всем!

Перестали работать все скрипты яндекс-карт 2.0 и 2.1. Причем, инициализация карт все же происходит. Причину объяснить не могу. Если кто-нибудь что-нибудь узнает, сообщите.
22. oldfornit 24.02.16 17:53 Сейчас в теме
(21) BenGunn, если не ошибаюсь, то это произошло из-за смены API
23. BenGunn 247 25.02.16 15:49 Сейчас в теме
Насколько я понял, то да, из-за смены API .

Попытаюсь объяснить. В качестве ядра html-поля 1С для windows взят IE7. Он поддерживает не все инструкции html5. Видимо, одно изменение в API (как мне кажется в методе onclick) повлекло за собой полную неработоспособность яндекс-карт в 1С. Мнение сугубо личное и, возможно, ошибочное. Проверить мою догадку могут те, кто работает на линукс-платформе (ядро html-поля - mozila).
25. cmax 104 29.02.16 09:45 Сейчас в теме
(23) BenGunn, а есть какие-нибудь варианты исправить это?
26. oldfornit 29.02.16 09:55 Сейчас в теме
(25) cmax,
1. получить ключ для API
2. заключить лицензионный договор с яндексом

ну и помнить о том, что бесплатный API запрещен к использованию в 1с
27. BenGunn 247 29.02.16 10:34 Сейчас в теме
(26) oldfornit, спасибо за совет. Сам проверил? Работает?

Но, на самом деле, от яндекса надо отходить. Я сейчас буду юзать OpenStreetMap
29. oldfornit 29.02.16 11:32 Сейчас в теме
(27) BenGunn,нет, не проверял. Просто наткнулся случайно
24. Rustavelli 17 28.02.16 14:39 Сейчас в теме
Добрый день! Тоже ищу решение проблемы, в один прекрасный день карта перестала работать, выходит вот такая ошибка:
28. Strellson 29.02.16 11:06 Сейчас в теме
Можно просто загружать последний работоспособный вариант API - у меня вновь стало работать:
<script src="https://api-maps.yandex.ru/2.1.34/?lang=ru_RU" type="text/javascript"></script>
30. cmax 104 29.02.16 12:45 Сейчас в теме
(28) Strellson, не помогает..
Что именно нужно сделать?
Попробовал заменить на предыдущую версию 2.0.41 - результат тот же.
Попробовал ваш вариант с 2.1.34 - карта вообще не прорисовывается.
31. Strellson 29.02.16 16:18 Сейчас в теме
(30) Действительно... сейчас попробовал - карта не отрисовалась... Еще вчера все работало на ура
Со второго раза отрисовалась - что-то ругнулась на сертификат и нарисовалась. Все работает
33. cmax 104 29.02.16 21:36 Сейчас в теме
(31) Strellson, у меня вместо карты - серое поле( так и не прорисовывается.. кроме "<script src="https://api-maps.yandex.ru..." еще что-нибудь меняли?
34. Smaylukk 185 29.02.16 23:51 Сейчас в теме
(33) cmax, попробуйте прописать в макете яндекс-карты поддержку IE8, если не прописано. У меня работает и открывается.
В области "HEAD", <meta http-equiv="X-UA-Compatible" content="IE=8"/>.
35. cmax 104 01.03.16 00:35 Сейчас в теме
(34) Smaylukk, да, отображаться стала! НО постоянно при работе вываливается ошибка (

36. cmax 104 01.03.16 00:44 Сейчас в теме
(34) Smaylukk, если такой ошибки нет как у меня - можете скинуть, пожалуйста, свой макет HTML для карты. возможно я где-то что-то наменял и теперь просто запутался.. моя почта max.max@bk.ru
37. Rustavelli 17 01.03.16 13:26 Сейчас в теме
(34) Smaylukk, мне тоже скиньте пожалуйста на 6981873@gmail.com
32. rabanik 2 29.02.16 18:38 Сейчас в теме
попробую, тоже карта перестала работать.
38. lextor 5 20.12.16 11:11 Сейчас в теме
Кто-нибудь решил проблему эту проблему?
39. janibeg 2 02.02.17 15:46 Сейчас в теме
скиньте пожалуйста рабочую версию на angel_link соба4ка mail.ru
40. Night_Trap 16.09.17 17:01 Сейчас в теме
Здравствуйте. И можно мне тоже рабочую версию пожалуйста night.tdk соба4ка gmail.com
41. user1131763 16.01.19 19:34 Сейчас в теме
Обработка вообще не запускается, никак не реагирует. Кэш почистил. В чем может быть проблема ?1С:Предприятие 8.3 (8.3.13.1513)
42. BenGunn 247 16.01.19 21:16 Сейчас в теме
Предполагаю, что "кризис назрел". Дело в том, что api карт ориентирован исключительно для web приложений и сервисов. Яндекс периодически вносит какие-то изменения в api, которые делают его неработоспособным в десктопных приложениях. Такое уже было не раз. Раньше я следил за этим, но, в связи с тем, что я ушел из логистики, этот процесс перестал иметь место. Есть готовая карта на api 2.1. Но времени публиковать ее сейчас просто нет
43. vynt 27.07.19 18:25 Сейчас в теме
Win 8 и 10 политика безопасности блокирует доступ к доменам третьего уровня (кроме тех, которым MS доверяет). Нужно просто в IE добавить исключение для сайтов *.yandex.ru
p.s.
можно напрямую в реестре, но путь не помню
44. zharkin 5 12.08.19 12:10 Сейчас в теме
(43) Добавление исключения для сайтов *.yandex.ru помогло?
45. Jen1978 19 18.02.20 19:33 Сейчас в теме
не работает программа
46. BenGunn 247 20.02.20 12:34 Сейчас в теме
Если вы перешли на платформу 8.3.14 и старше, про Яндекс-карты можно забывать. В движке новых релизов платформы вместо старого движка от ИЕ стал использоваться новый, написанный самой 1С, на базе Webkit. Часть функционала JS потеряна (в том числе и тот, который используется в картах яндекса). Разработчики от 1С поставили данную задачу по доработке функционала в число выполняемых, но когда это произойдет - никто не знает

https://wonderland.v8.1c.ru/blog/perevod-klientskikh-prilozheniy-dlya-windows-na-ispolzovanie-webkit-optimizatsiya-otobrazheniya-html/?sphrase_id=144726
48. SvetaBr 22.10.20 22:11 Сейчас в теме
47. cmax 104 20.02.20 16:04 Сейчас в теме
Карты работают и на 8.3.15 и на 8.3.16. Но надо дописывать, включая указание API-ключа для геокодера яндекса.
В качестве основы брал эту разработку и дальше дописывал под свои нужды:
Работа с картами 1С 4 в 1
49. SvetaBr 22.10.20 22:12 Сейчас в теме
{ВнешняяОбработка.ЯндексКарта.Форма.Форма.Форма(609)}: Ошибка при вызове метода контекста (eval)
Элементы.ЯндексКарта.Документ.parentWindow.eval(
по причине:
Неизвестная ошибка
50. alf2006x 25 17.02.23 17:12 Сейчас в теме
Свою иконку балуна в этой обработке можно подсунуть?
Интересует как тонкий так и веб клиенты.
Оставьте свое сообщение