Логистика (Распределение груза и прокладка оптимального маршрута с использованием API 2.0 Яндекс карт)



Оптимизация транспортировки товара (нагрузка на транспорт и расстояние маршрута) от продавца к покупателю.

Данная обработка исключительно для ознакомления использования API 2.0 Яндекс карт в 1С Предприятии т.к. лицензионным соглашением Яндекс запрещено использовать «Карты» в стороннем программном обеспечении, а также кэшировать полученные данные, что использует данная обработка для ускорения расчета расстояния.

API 2.0 не требует ключа для работы с картами.

Предназначение: оптимизация транспортировки товара (нагрузка на транспорт и расстояние маршрута) от продавца к покупателю.

Конфигурация: Писалась и тестировалась на «Управление торговлей 10.2»

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

 

Настройка:

При первом запуске обработки необходимо зайти в настройки и указать:

— Каталог кэширования

— Ограничение точек доставки товара (максимальное количество точек доставки на одно транспортное средство, 0=без ограничения)

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

— Забить справочник транспорта. Указав: наименование, гос. номер, и грузоподъемность.

Нижняя таблица для редактирования координат контрагентов, ее заполнять не нужно.

 

Запуск обработки:

— Выбрать организацию «продавца».

— Установить дату отгрузки.

— Выбрать «флажками» транспорт доставки.

Нажать кнопку «Далее»

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

 

Работа с отчетом:

— При клике на «Точки маршрута» отображается карта с маршрутом и точками доставки для данного транспортного средства.

— При клике на «Стрелки» открывается окно перемещения товара на другое транспортное средство.

15 Comments

  1. Angeros

    Судя по описанию серьезная разработка! А как реализован механизм call back ответов от яндекса в 1с, былили использованы какие нибудь внешние компоненты?

    Reply ↓
  2. cvmbackup

    (1) Angeros, Внешних компонент не использовалось, обрабатывается ожиданием. На счет серьезности разработки говорить рановато, это только зародыш, т.к. логистика требует многих нюансов и массу настроек зависящих от грузоподъемности, маршрута и времени доставки. Если у людей проснется интерес, буду продолжать разработку. И конечно если легализовать её она автоматом становится платной т.к. «Яндекс» не стремиться быть бесплатной и наверняка нужно заключать с ними какой то договор что и будет выражать стоимость программы. Ну и конечно в этом случае разработку можно будет создавать для разных конфигураций и платформ а не только для «Управление торговлей» как в настоящий момент.

    Можно ещё попробовать использовать OpenStreetMap тогда разработка будет бесплатной, но там настолько слабо API и детализация России что появляются сомнения в исходе полноценного продукта.

    Reply ↓
  3. automatizator

    Сильно. Оптимизация производится методами «транспортной задачи»?

    Reply ↓
  4. cvmbackup

    (3) automatizator, Методом «Ближайшая точка доставки»

    Reply ↓
  5. filipp

    Решил проверить как работает в УТ 10.3.18 и вот что вышло {Форма.ГлавнаяФорма.Форма(562)}: Деление на 0

    ПроцентИндикатораНаЕдиницу = 100/(КоличествоМашин*КоличествоКонтрагентов+КоличествоКонтрагентов)*1000;

    Reply ↓
  6. cvmbackup

    (5) filipp, 99% что это КоличествоКонтрагентов = 0, т.к. без машин алгоритм бы не запустился. Возможно что реквизиты документа «ЗаказПокупателя» между версией 10.2 (на которой тестировалось) и версией 10.13.18 не совпадают.

    Будет время подпилю под 10.13 !!!

    Reply ↓
  7. rmp2007

    Обработка очень интересная!

    Но у меня, почему то, не работает.

    После нажатия кнопки «далее», выдает сообщение: «Нет Адреса начальной точки отправки»

    Подскажите, что я не правильно делаю?

    Reply ↓
  8. ak0710

    (4) Методом «Ближайшая точка доставки», а что вы делали с пропущенными точками при таком методе? Например Точка № 1 находится в 1 км от тек. положения, Точка № 2 в 2 км от тек. положения, а точка № 3 в 3 км от тек. положения , мы двигаемся к точке № 1 , точка № 2 (расстояние от точки № 2 до № 1) 3 км , а от точки до точки № 3 — 2 км , мы двигаемся к точке № 3 , проскакивая точку № 2 и так далее , по методу ближайшая точка

    Reply ↓
  9. ak0710

    Я видел для поиска оптимального маршрута используют генетический алгоритм как в этих публикациях :

    http://forum.infostart.ru/forum24/topic77246/

    http://infostart.ru/public/168946/

    Самому интересна эта тема , занимаюсь ее реализацией в данный момент.

    Reply ↓
  10. NoN098

    Обработка рассчитывает маршрут нормально, но есть проблема при самом расчете — при запросе к yandex, после каждого контрагента выходит ошибка «На этой странице произошла ошибка сценария», символ 1, строка 1, объект не поддерживает это свойство или метод. Как победить?

    Reply ↓
  11. gosizo

    Яндекс карта. допустим я поставил несколько меток, можно ли как-то смасштабировать карту (не руками, а программно), что бы масштаб был максимально увеличен и в тоже время все метки были видны (в границах карты)?

    Reply ↓
  12. sdwggg

    у меня несколько вопросов..

    1. есть ли какие-то ограничения на количество точек в маршруте?

    2. можно ли рисовать на карте одновременно несколько маршрутов и отображать их линиями разного цвета?

    3. вопрос по выводу карты на печать. например, отмечены точки в разных концах города. как сделать, чтобы на печать вывести карту с заданным масштабом, а если она не помещается целиком на лист А4, чтобы печаталась кусками на нескольких листах

    Reply ↓
  13. vervolf9

    Видали вещи помощнее, на управляемых формах генетическим алгоритмом, источник — http://www.1c-logist.com.ua/

    Reply ↓
  14. vervolf9

    (13) sdwggg, Зачем карту печатать если можно напечатать навигационный лист — . Источник http://www.1c-logist.com.ua/

    Reply ↓
  15. vervolf9

    (12) gosizo, Можно, в апи есть метод специально.

    Reply ↓

Leave a Comment

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