Интеграция 1С и 2ГИС



Возникла необходимость визуализировать клиентскую базу. Выбор пал на 2ГИС.
Результатам стала относительно универсальная обработка для формирования слоя с собственными данными.

Обработка содержит алгоритм и ряд процедур для формирования KMZ файла минималистической структуры:

  1. Формирование стилей отображения меток на карте
  2. Добавление новых меток
  3. Формирование слоя
  4. Компоновка KML слоя и сопутствующих файлов в KMZ

Полноценный пример, который вы можете скачать, был создан для решения более конкретной задачи. Нужно было вывести всех клиентов из базы на карте с учетом их статуса. Статус формировался на основе выполнения ряда условий. Адрес клиента должен быть заполнен по КЛАДРу. В случае, если в одном здании содержится несколько контрагентов, то для них создается единая метка на карте. Общий вид результата можно увидеть на карте.

36 Comments

  1. Angeros

    Почему решили работатьс дубль гис а не с яндексом? яндекс поддерживает больше городов.

    Reply
  2. Infactum

    (1) Angeros, у 2ГИС карты актуальнее. По крайней мере в моем городе. Помимо этого 2ГИС — это оффлайн режим.

    Reply
  3. Angeros

    Согласен… а моего родного там нету. Кстати а как насчет маршрутизации, существует ли возможность через механизм маршрутизации 2гиса проложить маршрут в нем из 1с.

    Reply
  4. seermak

    При повторном открытии информация дублируется((((( В параметрах надо включать дополнительные слои — а то ничего не увидишь

    Reply
  5. Infactum

    (4) seermak, Так слой и не надо каждый раз открывать. Нужно в 2ГИС в дополнительных слоях добавить обновляемую группу. Файлом для обновления будет ваш слой.

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

    Плагин для дополнительных слоев конечно нужно. Кроме как через плагины, взаимодействовать с 2ГИС не получится. Так как этот плагин входит в стандартную поставку, не вижу причин его не использовать.

    (3) Angeros, Прокладку маршрута сделать можно, но тогда придется написать свой плагин, который будет служить прослойкой между 1с И 2ГИС. Можно еще воспользоваться онлайн API, но лицензионное соглашение запрещает его использование в бизнес решениях.

    Reply
  6. seermak

    (5) да, так гораздо лучше))))

    Reply
  7. serega3333

    прикольно, надо будет попробовать, только получается в пределах одного города можно смотреть? если по всем россии контрагенты, лучше я так понимаю яндексом пользоваться

    Reply
  8. Infactum

    (7) serega3333, верно. Одновременно только один город.

    Reply
  9. AlexO

    Ошибки есть?

    Reply
  10. kilokilo

    (9) AlexO,

    Ошибки есть?

    Нет.

    Reply
  11. DimanYa

    Просто отлично, сейчас скачаю и попробую на нашей базе

    Reply
  12. al461sy

    очень полезная вещь, будем тестировать!

    Reply
  13. seermak

    протестировал — работает нормально, единственное адреса править приходится — адресные сокращения убирать(((

    Reply
  14. Infactum

    (13) seermak, так там же была для этого функция с фееричным названием «ДопилитьНапильником». Но к сожалению универсальной ее сделать не получилось.

    Reply
  15. seermak

    (14) вот и пилю…… По Москве еще проблема — с трудом понимает дома с к (19к1 и т.д.) в КЛАДре они все слитно пишутся а в ГИСе раздельно — но это уже глюки ГИСа….

    Reply
  16. fnv

    (14) «ДопилитьНапильником» действительно феерично))))

    Автору публикации спасибо.

    Reply
  17. zarius

    Для оффлайна советую посмотреть в сторону SAS Planet

    Reply
  18. Infactum

    (17) zarius, Как уже было отмечено выше для некоторых городов, в том числе моего, карты 2ГИС актуальнее чем у гугля, яндекса и прочих.

    Если рассмотреть предложенный вами SAS.Planet, то он вроде как не может скачать карту с сайта 2ГИС. Да и смысл это делать если у них уже есть приложение с оффлайн режимом.

    Ну и самое главное — не нашел, может ли SAS.Planet получать координаты дома (для установки метки) зная только его адрес.

    Reply
  19. AVVG

    А скажите пожалуйста вроде нашел то что давно искал, тока если все точки из 1С расставим маршрут уже в 2Гисе проложить можно?

    А так уже бомба а то вечно по географическому положению тока работают.

    Спасибо большое

    Reply
  20. AVVG

    Забыл подписаться

    Reply
  21. Infactum

    (19) AVVG, Можно. Есть варианты автомобильного маршрута и на городском транспорте. Про качество маршрута трудно что-либо сказать, сам редко пользуюсь.

    Reply
  22. omut

    Класс. Замечание только одно возникло: в принципе, то что 2ГИС не понял адрес, это еще пол-беды. А вот как сделать, чтобы это ее непонимание она озвучила? Т.е. создали слой, пользователь смотрит карту. И если адрес не распознается, то точка на карте не появляется. А хотелось бы, чтобы такие адреса где-то можно было увидеть и оперативно в 1С подправить неверные форматы-данные. В противном случае точки просто молча теряются.

    Reply
  23. echonok

    Не могу понять, а как добавить слой в карту 2ГИСа? Плагины дополнительные какие-то нужно скачивать?

    Reply
  24. Infactum

    (23) echonok, Нужный плагин устанавливается вместе с 2ГИС по умолчанию. Опять же по умолчанию 2ГИС сам открывает слои. Самостоятельно можно добавить нажав кнопку «Справочники — дополнительные слои» и далее в списке слева добавить каталог или обновляемый каталог (на ваш выбор).

    Reply
  25. V.Nikonov

    С городами (крупными) проблем нет. А что делать с мелкими городами? А особенно туго с мелкими населёнными пунктами… Получать метки на информационном слое по географическим координатам (Широта-долгота) можно?

    Reply
  26. Infactum

    (25) V.Nikonov, 2ГИС это не карта всей России, как яндекс.карты или google maps. Нет там мелких городов и населенных пунктов (не считая пригородов и ближайшего окружения). Так что ваша проблема из другой области.

    Тем не менее получать по координатам метку можно. Только эту возможность я не включал в обработку. Смысла нет, тут уже полно работ было, реализующих геолокацию на основе более подходящих типов карт.

    Reply
  27. V.Nikonov

    На Яндексе и Гугле нет подробностей для сельской местности (нет улиц и домов), но карта существует…

    В моей ситуации есть ГИС-подсистема для ЭТП бегающих по клиентам для сбора заказов с КПК/планшетами. Оттуда я могу получить географические координаты и привязать их к точкам. Т.к. штатная подсистема просмотра ГИС-информации лицензирована (т.е. ограничено количество рабочих мест), то есть желание воспользоваться информацией (Фактические координаты ТТ) для просмотра на картах из 1с8:УТ… А ТТ находятся не только в областном центре для которого есть 2ГИС карта, но и по области.

    Вторая сложность в том, что далеко не всегда Адрес доставки ТТ пишется в соответствии с КЛАДР. Едва удается добиться того, что бы уточняющие сведения дописывались к стандартному КЛАДР-адресу после адреса… Соответственно, любопытно, «ДопилитьНапильником» не сможет отбросить эти «суфиксы». Как сервис распознавания адреса переварит это излишек?

    Reply
  28. V.Nikonov

    Ещё вопрос про отбрасывание адресных сокращений. Как перевариваются сервисом ситуации с одинаковыми названиями Площади, Улицы, Переулка.. Ведь их Имя собственное может повторяться…

    Reply
  29. Anyxwar

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

    Reply
  30. Infactum

    (30) Anyxwar, Да там все элементарно.

    Открываем модуль обработки, ищем функцию ПолучитьИсходныеДанные(). Вам необходимо описать свой алгоритм формирование ТЗ с исходными данными, а мою заглушку удалить.

    ТЗ должна содержать следующую информацию: Город, Улицу, Дом, Корпус, Контрагента, Информация (просто комментарий), Телефонный код города и телефон, 2 условия (определяют каким цветом выводится информация: красный, желтый, зеленый). Все адреса заполняйте по КЛАДРу.

    Так же надо поправить строку с указанием города в заголовке слоя 2ГИС. У меня там написано «Челябинск», так что по этой фразе можете легко в коде найти и исправить на свой. Либо слегка переделать алгоритм, чтобы он был более универсальным и брал город из исходных данных.

    Все, теперь можно сделать слой и открыть в 2ГИС. Если не знаете как, смотрите прошлые мои комментарии.

    Последнее о чем стоит упомянуть — возможноя разница между адресами в КЛАДР и 2ГИС в вашем городе. Такое можно определить только анализируя адреса контрагентов, которые не вывелись на карту. Для решения этой проблемы есть функция ДопилитьНапильником().

    Reply
  31. Anyxwar

    Спасибо!!! Информативно

    Reply
  32. Дмитрий74Чел

    (31) добавьте описание подключения «для чайников», в описание обработки. Уже не один раз вас спросили.

    Reply
  33. a1ex4ndr

    я тоже думаю, что описание подключения лучше в общем описании обработки искать, а не в комментариях к обработке…

    Reply
  34. capshow

    Какие примеры практического применения этой реализации?

    Насколько я понял, это вывести в 1С оффлайн карту (адрес клиента, местонахождение склада…), когда нет интернета, верно?

    А не собираетесь расширять функционал маршрутами, расчетом оптимальных? Или уже есть? Например, логистическим компаниям было бы очень удобно

    Reply
  35. 1977

    Контрогентов, можно будедет видеть? Можно использовать для CRM….

    Reply
  36. v.a.ryag

    В закладочки, надо обязательно скачать)

    Reply

Leave a Comment

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