Идеей послужила публикация Яндекс-карты: примеры работы с API 2.0. Но "прикручивание" этого примера к тонкому клиенту вызвало огромное количество проблем. После долгих танцев с бубном, мной был написан небольшой фреймворк, который практически без проблем позволяет использовать Яндекс-карту в тонком клиенте. В результате получилось следующее:
- Отключены сообщения об ошибках на стороне карты
- При открытии, карта центрируется по ip клиента.
- Есть возможность управлять типом карты и элементами управления на карте из 1С (последнее состояние запоминается).
- По строке поиска отбираются точные (и не только) объекты на карте, которые отображаются на карте и в списке.
- Все метки на карте перемещаемые. При перемещении метки, также изменяется соответствующий объект в списке.
- К стандартному набору кнопок добавлена "Информация об объекте". В этом режиме курсор мыши приобретает вид стрелки со знаком вопроса и по клику на карте отображается информация об объекте (идея из примера в API 1.x). Этот объект можно добавить в список выбранных.
Цвета в списке выбранных объектов:
- черный – адрес найден по строке поиска точно;
- серый – адрес найден по строке поиска не точно;
- коричневый – адрес выбран на карте или получен при перемещении маркера в указанное место.
Цвета маркеров:
- черный – объект найден по строке поиска;
- коричневый – адрес выбран на карте или получен при перемещении маркера в указанное место;
- красный – активный маркер (соответствует текущей строке с списке объектов).
Обработка использует функции из БСП (конфигурации: УНФ, БП 3, УТ 11; примеры использования БСП с диска ИТС).
Если карта не работает как надо (или вообще не реагирует ни на какие действия пользователя), то нужно очистить кеш 1С (запуск с ключом /ClearCache не всегда помогает - приходится удалять полностью папки с кешированными данными; почему - остается загадкой). Также, рекомендую очистить кеш, если вы уже использовали какие нибудь другие обработки с Яндекс-картой.
Тестировал на 1C 8.2.19.68 и 8.3.3.721. На web-клиенте и на linux-платформах не тестировал. Буду признателен, если пришлете отзывы.
Данная обработка представлена как пример для ознакомления с API Яндекс-карт (согласно Пользовательскому соглашению).