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

28.01.14

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

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

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

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

Идеей послужила публикация Яндекс-карты: примеры работы с 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 Платные (руб)

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

2400 руб.

29.06.2020    14786    18    4    

25

Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)

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

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

6000 руб.

18.01.2022    7674    1    2    

6

Редактор граф

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

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

1500 руб.

06.10.2020    8758    6    7    

8

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

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

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

2 стартмани

10.04.2023    7379    141    acces969    31    

106

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

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

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

1 стартмани

05.07.2022    2098    kalyaka    2    

19

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

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

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

3600 руб.

29.04.2022    10524    1    5    

9

Программный интерфейс для доработки форм

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

Реализовал простой способ программного создания новых элементов, команд и реквизитов на форме.

25.11.2021    7769    AtamanovYS    19    

129

[mobile] Переносим HTML интерфейс на 1С

Работа с интерфейсом Мобильная разработка Платформа 1С v8.3 Мобильная платформа Конфигурации 1cv8 Бесплатно (free)

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

02.11.2020    15017    leobrn    83    

113
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. maxx 980 04.02.14 22:45 Сейчас в теме
Можете подсказать возможно ли по адресу контрагента (например, фактический адрес контрагента) отобразить его на карте? Умеет ли такое делать Yandex
2. pimenushka 24 04.02.14 22:50 Сейчас в теме
Если адрес указан корректно, т.е. область, город, улица, дом то проблем нет. По крайней мере для google. Не думаю, что в яндексе хуже.
3. maxx 980 05.02.14 10:19 Сейчас в теме
(2) pimenushka, а как понять что адрес указан правильно с точки зрения карт?
4. ilyav 05.02.14 16:13 Сейчас в теме
(3) maxx, http://maps.yandex.ru/ написать его тут
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 240 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 81 19.04.14 18:20 Сейчас в теме
Хорошо сделано. Только не нашел возможности получения GPS координат.
13. AlexandrIII 19.04.14 18:58 Сейчас в теме
(12) rsergio, есть там в структуре "ОтветГеокодера".
14. BigB 187 20.08.14 12:11 Сейчас в теме
Валится по ошибке:
{Форма.Форма.Форма(373)}: Поле объекта недоступно для записи (ЭтотОбъект)
ЭтотОбъект = РеквизитФормыВЗначение("Объект");
Платформа: 8.3.5.924
Конфигурация: Библиотека стандартных подсистем", редакция 2.2 (2.2.3.14)

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

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

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

ну и помнить о том, что бесплатный API запрещен к использованию в 1с
27. BenGunn 240 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 99 29.02.16 12:45 Сейчас в теме
(28) Strellson, не помогает..
Что именно нужно сделать?
Попробовал заменить на предыдущую версию 2.0.41 - результат тот же.
Попробовал ваш вариант с 2.1.34 - карта вообще не прорисовывается.
31. Strellson 29.02.16 16:18 Сейчас в теме
(30) Действительно... сейчас попробовал - карта не отрисовалась... Еще вчера все работало на ура
Со второго раза отрисовалась - что-то ругнулась на сертификат и нарисовалась. Все работает
33. cmax 99 29.02.16 21:36 Сейчас в теме
(31) Strellson, у меня вместо карты - серое поле( так и не прорисовывается.. кроме "<script src="https://api-maps.yandex.ru..." еще что-нибудь меняли?
34. Smaylukk 181 29.02.16 23:51 Сейчас в теме
(33) cmax, попробуйте прописать в макете яндекс-карты поддержку IE8, если не прописано. У меня работает и открывается.
В области "HEAD", <meta http-equiv="X-UA-Compatible" content="IE=8"/>.
35. cmax 99 01.03.16 00:35 Сейчас в теме
(34) Smaylukk, да, отображаться стала! НО постоянно при работе вываливается ошибка (

36. cmax 99 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 240 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 240 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 Сейчас в теме
(46) а как быть ?
47. cmax 99 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 Сейчас в теме
Свою иконку балуна в этой обработке можно подсунуть?
Интересует как тонкий так и веб клиенты.
Оставьте свое сообщение