Механизм взаимодействия с Яндекс-картами. Возможность отображения и работы с районами города или другими административными областями

23.04.20

Интеграция - WEB-интеграция

Механизм работы с картами Яндекс. Возможность просто и быстро инициализировать карту и вывести ее на форму. Возможность расширять функционал согласно своим потребностям просто добавляя макеты JS и описывая процедуры их подключения. Реализовано взаимодействие с ObjectManager, polygonMaker Реализованы примеры по работе с метками, геокодером и пр. Добавлены примеры по выводу областей России, Районов произвольного города и других адм. регионов

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Подсистема взаимодействия с ЯК
.cf 78,03Kb ver:1.0.2
46
46 Скачать (1 SM) Купить за 1 850 руб.

Добрый день,

Столкнувшись с задачей реализации взаимодействия с ЯндексКартами я наткнулся на то, что почти никто не показывал адекватный, удобный для изменения и дополнения модульный механизм работы с сервисом.

Предложенный механизм работает с толстым, тонким и web клиентом, мобильным клиентом на android

Все макеты JS Для работы с ЯК хранятся в макетах.

Вся процедура подключения происходит в ОМ  РаботаСЯндексКартами.

Моделирование текста HTML  происходит примерно так:

&НаСервере
Процедура ВывестиНаКарту()

	ТекстПодключаемыхСкриптов ="";
	РаботаСЯндексКартами.ИнициализироватьКарту(ТекстПодключаемыхСкриптов);
	РаботаСЯндексКартами.ДобавлениеObjectManager(ТекстПодключаемыхСкриптов, Справочники.СуществующиеФОК.СформироватьМассивСтруктурДляВыводаЧерезObjectManager());
	РаботаСЯндексКартами.РазместитьТочкуНаКарте(ТекстПодключаемыхСкриптов);
	РаботаСЯндексКартами.ДобавитьперемещениеТочкиПоКартеКликом(ТекстПодключаемыхСкриптов);
	СтраницаХТМЛ = РаботаСЯндексКартами.ПолучитьТекстHTML(ТекстПодключаемыхСкриптов);				
					
КонецПроцедуры

   

По мере доработки конфигурации я буду обновлять макеты JS, из планов:

Планер мультимаршрута

Вхождение точки в область.

Добавление областей на карту через ObjectManager

Управление параметрами областей

 

Upd 06/04/2020:

Добавлен планер маршрута. 

 

Upd 23/04/2020

Добавлена возможность вывода и выбора административных областей.

Добавлена возможность сохранения ее и последующей модификации.

 

Upd 27/04/2020

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

Регионы ищутся в базе данных OSM, а далее конвертируются в формат YandexMaps.

 

Тестировалось на 1С:Предприятие 8.3 (8.3.15.1565).

Яндекс.карты яндекс api Javascript ПолеHTML OSM

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL, 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    2199    2    0    

9

WEB-интеграция Анализ продаж Системный администратор Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

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

60000 руб.

07.05.2019    34237    64    45    

24

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

57600 руб.

26.11.2024    1947    1    1    

4

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    18811    21    22    

18

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    3433    3    2    

4

WEB-интеграция Программист Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    18544    53    50    

29
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 4809 05.04.20 20:43 Сейчас в теме
я наткнулся на то, что почти никто не показывал адекватный, удобный для изменения и дополнения модульный механизм работы с сервисом.

Ну, я показывал ещё в 2012-м году. Удобный для изменения и дополнения и, смею надеяться, адекватный. Смотрели?
2. Yashazz 4809 05.04.20 20:45 Сейчас в теме
Да и вообще, на этом поприще столько хороших грамотных разработок сделано, разными авторами, что "почти никто" хочется отнести на счёт неудачно или неумело выполненного поиска. Ибо их тут и на других ресурсах было вполне себе. И модульность делали разную, и универсальную генерацию кода js делали, и через eval пробовали, короче говоря - дофига.

Причём, в отличие от этой публикации, во многих случаях всё было выложено открыто и бесплатно.
dock; swenzik; +2 Ответить
3. insurgut 208 06.04.20 10:25 Сейчас в теме
(2) а можно ссылку? Все, что не находил - на деле либо не работает в текущий момент, либо работает не внутри 1С (открывая вкладки браузера). Ни одной корректно работающей обработки, которая возвращает маршрут по списку адресов, вроде нет, только на ветер $m выбрасываются.
Segate; Светлый ум; +2 Ответить
5. Segate 267 06.04.20 12:34 Сейчас в теме
(3) добавил планер маршрута.
(4) Сейчас реализован только стандартный RoutePlaner Который строит маршрут между двумя точками. Multiroute если надо могу собрать,
Но проще его сделать добавлением строк в 1с, а отрисовкой их на карте. Т.к. существующей контрол панельки для мультироута нет.
В ближайшем будущем в плане нариовать виджет для карты =)
Если подробнее опишите задачу, возможно реализую так как нужно вам =) если это не противоречит моей задаче
6. insurgut 208 06.04.20 14:18 Сейчас в теме
(5) задача самая простая и востребованная для 1С. Есть список адресов. Есть начальная точка маршрута (наша организация) и конечная (тоже наша организация). Нужно проложить кратчайший маршрут.

Начальная точка: Наша организация
Точка 1: адрес 2
Точка 2: адрес 5
Точка 3: адрес 1
Точка 4: адрес 3
Точка 5: адрес 4
Конечная точка: Наша организация
7. Segate 267 06.04.20 14:53 Сейчас в теме
(6) Если у вас есть понимание последовательности обхода точек, т.е. сначала мы идем в точку 1, затем 2,... и в конце 5,
То это не сложно и я сделаю пример сегодня к вечеру...
Но если вас интересует решение задачи коммивояжера, то в рамках яндекса - этот сервис платный, нужно покупать подписку. подробнее здесь: https://yandex.ru/dev/routing/vrp/
8. insurgut 208 06.04.20 15:24 Сейчас в теме
(7) я думаю, интересует решение задачи как раз бесплатно :) Наверное я слишком общую задачу написал. Конкретно не хватает функции, которая вернет расстояние между двумя точками. Или может Яндекс умеет отдавать сразу матрицу расстояний? Тогда было бы совсем круто и удобно получить по списку адресов сразу матрицу расстояний, но это не принципиально. Получение расстояния между двумя адресами более чем достаточно. Яндекс вроде это умеет делать на бесплатной основе?

Строим для N-адресов матрицу расстояний, используя функцию, которой не хватает. Дальше уже сами решаем задачу собственными силами как угодно :)
9. Segate 267 06.04.20 15:42 Сейчас в теме
(8) Насколько я знаю, бесплатных адекватных алгоритмов решения популярных нп-полных задач не существует...
Тарифы
Для сервиса «Матрица расстояний и Построение маршрутов между двумя точками» нет бесплатной версии. Чтобы использовать сервис нужно подключить коммерческую лицензию.

Для продукта «Матрица расстояний и Построение маршрутов между двумя точками» доступны два вида лицензии: стандартная и расширенная. При использовании стандартной лицензии запрещается сохранять или изменять данные, полученные через API. В расширенной лицензии это ограничение снято.

Стоимость лицензии зависит от количества запросов к сервису.


Если вы готовы покупать лицензию, мы можем обсудить реализацию сервиса отдельно...
10. insurgut 208 06.04.20 16:16 Сейчас в теме
(9) я же уже написал, неправильно написал. Забудьте про задачу :) Вопрос - можно добавить в данную разработку функцию получения расстояния (в метрах) между двумя адресами?
Вот тут вроде описано: https://yandex.ru/blog/mapsapi/rasstoyanie-mezhdu-tochkami-v-peremennuyu
11. Segate 267 06.04.20 17:17 Сейчас в теме
(10) добавил вывод длинны активного маршрута в реквизит формы
insurgut; +1 Ответить
13. shard 282 07.04.20 00:26 Сейчас в теме
(8) если в матрицу расстояний записывать время в пути с учетом пробок, то весьма вкусно может получиться
14. Segate 267 07.04.20 17:10 Сейчас в теме
(13) основная проблема в этом решении в невозможности реализации его не коммерчески при сколько нибудь объемных масштабах.
Из-за того, что путь из точки "а" в точку "б" совсем не обязательно равен пути из точки "б" в точку "а", сложность задачи и количество запросов растет слишком быстро, и по факту бесплатной версии апи хватит на расчет 5-10 не особо сложных маршрутов из максимум 5 точек... если, внезапно, точек будет хотя бы на одну-две побольше - то количество маршрутов резко сократиться, что не особо применимо в рамках промышленного решения
15. shard 282 07.04.20 22:57 Сейчас в теме
(14) то есть бесплатный api ограничивает и количество запрашиваемых маршрутов из двух точек? Уточняю, т.к. не работал с картами в этом контексте.

уточнил:
В API установлен суточный лимит на использование сервисов геокодирования, маршрутизации и панорам Яндекса. Для бесплатной версии API лимит составляет 25 000 запросов в сутки. Подробнее о том, какие запросы входят в этот лимит, см. в таблице ниже.

25000 это примерно 200 маршрутов из пяти точек обсчитать - вполне хватит, имхо
21. V.Nikonov 121 07.05.20 19:42 Сейчас в теме
(15) Задачу Коммивояжора в первом приближении можно решить используя географические координаты точек маршрута... При этом в первом приближении получить последовательность точек удаляясь от Фиксированной стартовой.
Соответственно можно считать сформированной таблицу:
№пп Тчк Широта Долгота (Адрес)

Можно вывести такой маршрут с расчётом пробега на автомобиле? Укладывается в бесплатную лицензию?
22. shard 282 08.05.20 00:13 Сейчас в теме
(21) Для одного автомобиля бесплатного лимита более чем достаточно, имхо.
Географические координаты обычно лишние, т.к. маршрут строится по адресам. Для построения матрицы расстояний на n=5 точек (без разницы, в километрах или часах) нужно 20 запросов маршрутизации (в предыдущем посте протупил: почему-то думал там n! а не n^2-n). Задача коммивояжера - попробуйте сами исходя из размера автопарка и длины маршрутов.
23. V.Nikonov 121 10.07.20 21:28 Сейчас в теме
(22) Среднестатистический маршрут содержит 15-25 точек. На многих предприятиях таких маршрутов может быть десяток и более.
12. Yashazz 4809 06.04.20 21:50 Сейчас в теме
18. Russian_Santa 17 01.05.20 21:09 Сейчас в теме
19. Segate 267 02.05.20 08:33 Сейчас в теме
(18) там в посте ниже рассказывают, что нужно не просто построение маршрута, а решение задачи комивояжера, и бесплатно )
20. Russian_Santa 17 02.05.20 08:37 Сейчас в теме
(19)бесплатно?:)а отвечал я на сообщение в котором вы говорили что не было ни одного работающего на данный момент,либо открывающее вкладки и т.п.
4. Светлый ум 454 06.04.20 11:53 Сейчас в теме
В маршруте точки нумеруются?
16. Deniskinr83 49 30.04.20 20:24 Сейчас в теме
Здесь https://infostart.ru/public/1204568/ метки адресов нумеруются, рассчитывается длина маршрута между точками.
17. Segate 267 01.05.20 10:15 Сейчас в теме
(16) на данный момент мультимаршрут - это не приоритетная задача. т.к. из за специфики проекта, упор делается именно на геометрию и выделение областей, а так же дальнейшую работу с ними(площадь пересечения, попадание точки в области, и тд)
Как только все расчеты геометрии будут закончены, я добавлю планер мультимаршрута, возможно попытаюсь сделать простенькие матрицы расстояний и тд.
24. RustIG 1836 12.11.21 15:17 Сейчас в теме
(16) раздвоение личности: Денискинр83 и Денр83?...
Оставьте свое сообщение