Рабочее место логиста

Публикация № 1152928

Учет и отчетность - Оптовая торговля

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

Обработка умеет отображать адреса доставки на карте Гугл, позволяет вручную разбивать их по маршрутам (машинам и водителям) , в том числе и зрительно, раскрашивая точки на карте в цвета машин, строить по каждой машине подробный маршрут, оптимизированный по порядку посещения точек доставки (решая "задачу коммивояжера" для каждого маршрута). Обработка не использует никаких метаданных конфигураций - адреса доставки и данные машин и водителей загружаются из файлов экселя, итоговые маршруты также выгружаются в эксель. В архиве находятся -- сама обработка, примеры экселевских файлов с адресами и данными водителей и машин, а также один файл итоговой выгрузки получившегося маршрута.

Данная обработка создана с целью упростить решение задачи разбиения точек доставки на рейсы логистом ВРУЧНУЮ с использованием карт и сервисов Гугл. Обработка не использует никаких метаданных конфигураций -- адреса доставки и данные машин и водителей загружаются из файлов экселя, итоговые маршруты также выгружаются в эксель -- поэтому она будет работать на любой конфигурации, использующей управляемые формы и на любой платформе, начиная с 8.3

ВНИМАНИЕ – для работы сервисов Гугл необходим ключ. В данной обработке ЕСТЬ ключ, но он исключительно тестовый, для проверки работы обработки. Как только по нему пройдет первая сотня запросов (т.е. примерно 5  запусков обработки) ключ будет отключен. Поэтому ключ Вы должны получить сами.  Подробную инструкцию по получению ключа Гугл я писать не буду, любой айтишник думаю справится  с этим без труда. Уточню только то что для нормальной работы обработки к ключу должны быть привязаны три API -- Geocoding API, Directions API и Maps JavaScript API и к проекту, по которому получен ключ должны обязательно подключена ОПЛАТА. В режиме без оплаты Гугл эти три сервиса просто НЕ ПРЕДОСТАВЛЯЕТ. Впрочем, вы можете воспользоваться т.н. «тестовым периодом» и получить от Гугл безвозмездный кредит на услуги сервисов в размере 300 долларов. Один запрос  к одному сервису стоит 0.14 цента, тысяча запросов соответственно стоят $1.4.      

 

Исходные данные – есть N адресов доставки и K автомобилей с водителями. Требуется разбить все точки доставки по автомобилям и составить маршруты движения для каждого автомобиля.  Еще раз напоминаю, что  обработка специально сделана без привязки к какой бы то ни было конфигурации, поэтому предполагаем что и адреса и водители загружаются в неё из экселевских файлов.

Структура файлов экселя

  1. Адреса, колонки – «Контрагент, адрес доставки, адрес отправки, вес груза, объем груза»
  2. Перевозчики – «Водитель, автомобиль, грузоподъемность, объем кузова»

 (образцы файлов есть в архиве)

 

Открываем обработку, и сразу же на первой вкладке загружаем в нее адреса из файлика с адресами. Если структура файла соответствует образцам, то все загружается без ошибки. Дальше на выбор или проверяем каждый адрес с помощью кнопки «Показать адрес на карте» или нажимаем кнопку «Проверить все адреса без отображения на карте». Во втором случае на карте ничего не показывается,  но тем не менее пропустить этот этап нельзя – по этой кнопке каждый адрес геокодируется, определяются его широта и долгота, а также расстояние от точки отправки до точки доставки.

После того, как все точки проверены и геокодированы, в правом верхнем углу нажимаем кнопку «Адреса проверены». Обработка открывает вторую вкладку и начинает добавлять уже проверенные точки на вторую карту – ту, на которой собственно и будет проходить основная работа по созданию маршрутов. Добавление точке проходит довольно медленно – примерно секунда-полторы на каждую точку. За это время можно загрузить из второго экселевского файла список перевозчиков, нажав на кнопку «Загрузить перевозчиков»

Перевозчики загружаются в таблицу слева и каждая строка таблицы раскрашивается в свой цвет. Теперь осталось только подождать пока обработка не сообщит «Все точки добавлены на карту» (в окне сообщений справа), закрыть это окно сообщений и начать разбивать точки по водителям и  машинам.

Делается это очень просто – в таблице перевозчиков курсор ставится на строчку с машиной, а на карте мышкой нажимается нужная точка адреса. Она сразу же окрашивается в тот же цвет что и строка таблицы, а в таблице внизу под картой добавляется строка с параметрами точки. Набрав все точки для данного водителя/машины переходим на следующую строчку таблицы перевозчиков и повторяем все процедуру пока не останется ни одной «свободной» точки. Свободные точки отличаются и цветом и (немного) формой маркера, так что перепутать их с уже разнесенными по машинам не получится. Разнесение можно многократно корректировать – то есть точку которую скажем уже разнесли на машину 1, можно спокойно переразнести на машину 3 или 5 – достаточно просто нажать на нее еще раз выбрав в таблице слева третью или пятую строку. При этом из таблицы снизу для  первой строки перевозчиков эта точка исчезнет и соответственно добавится в таблицу для строки 3 или 5.

 Кроме того, при наборе точек обработка проверяет заполненность машину уже набранными точками – если добавление новой точки превысит вместимость машины по весу или объему добавить её не удастся – точка не окрасится  в цвет машины,  а вместо этого вы увидите сообщение – «Машина заполнена, выберете другую»

После того как все точки разнесены по машинам, необходимо создать для каждой строки таблицы перевозчиков маршрут на карте. Для этого ставим курсор на строку таблицы и нажимаем внизу под картой кнопку «Показать маршрут на карте». На карте строится маршрут, затем ждем еще 2-3 секунды пока под картой не появятся цифры длины маршрута в км и времени передвижения в часах. Затем передвигаемся на следующую строку и повторяем нажатие кнопки. При нажатии кнопки «Показать маршрут на карте»  предыдущий маршрут с карты исчезает, но в данных обработки все характеристики маршрута сохраняются, включая оптимизационное упорядочивание точек маршрута (решение т.н. «задачи коммивояжера») .

 

После того как все строки таблицы перевозчиков  «прощелканы», остается только получить итоговые результаты. Нажимаем кнопку «Выгрузить маршруты в эксель», программа предлагает выбрать каталог для выгрузки. Каждый  маршрут выгружается в отдельный файл эксель в виде подробной таблицы этапов движения практически аналогичный инструкциям «навигатора»

1

Направляйтесь на юг по пр-д Краснополянский в сторону ул. Ленина

335,00

58,00

2

Поверните направо на ул. Шереметьевская

1 331,00

99,00

3

Продолжайте движение по ш. лобненское

1 687,00

185,00

4

ш. лобненское поворачивает направо и переходит в ул. Авиационная

1 359,00

143,00

5

Поверните направо на ш. Шереметьевское

2 898,00

161,00

6

Направляйтесь по съезду в сторону M-11Платная дорога

1 130,00

106,00

7

На развилке держитесь левее и выезжайте на M-11Платная дорога

16 599,00

733,00

8

Держитесь левее

5 220,00

280,00

9

Плавный поворот направо

557,00

61,00

10

Поверните налево в сторону ш. Дмитровское

31,00

2,00

11

Поверните направо на ш. Дмитровское

2 732,00

256,00

12

Продолжайте движение по ул. Бутырская

1 514,00

161,00

13

Плавный поворот налево, продолжайте движение по ул. Бутырская

345,00

25,00

14

Сверните на съезд БУТЫРСКИЙ ВАЛ ул.

56,00

10,00

15

На развилке держитесь правее и следуйте по знакам на 3-е КОЛЬЦО-налево МИРА пр-т

159,00

34,00

16

Продолжайте движение по пл. Савеловского Вокзала

87,00

30,00

17

Выезжайте на 3-е кольцо

6 844,00

501,00

 

Всё, на этом работа обработки закончена.

Я прекрасно понимаю, что в таком виде обработка практически бесполезна – она никак не встроена ни в  какую реальную учетную систему, загрузка в неё данных из экселя не особенно удобна, а выгруженные из неё данные практически и вовсе бесполезны . Однако на её основе вы сможете создать свои собственные обработки,  уже способные «напрямую» работать с вашей текущей учетной системой на основе 1С. Как вариант – вы можете заказать создание такой «персонифицированной под Вас» обработки мне. Пишите, звоните -- договоримся.

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

Наименование Файл Версия Размер
Рабочее место логиста:
.rar 54,60Kb
12.11.19
12
.rar 54,60Kb 12 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. insurgut 189 13.11.19 06:22 Сейчас в теме
Каким алгоритмом решается задача коммивояжера?
2. Torin99 259 13.11.19 06:32 Сейчас в теме
Не знаю --- это делает Гугл при построении маршрута. В запросе на построение маршрута передается параметр -- "optimizeWaypoints: true" (оптимизировать порядок точек = истина ) и гугл как-то его оптимизирует.

Я проверял "жадным алгоритмом" -- у гугла получается лучше
3. Terve!R 13.11.19 09:58 Сейчас в теме
Спасибо, интересно!
Но для нашей страны Яндекс карты все же более актуальны.

И что такое один запрос?
На показ каждой точки на карте - это запрос? Или группу точек показать можно одним запросом? Или запрос - это расчет маршрута?
4. Torin99 259 13.11.19 10:07 Сейчас в теме
Показ одной точки -- это один запрос. И расчет маршрута -- это один запрос. В среднем один цикл работы обработки с тестовыми параметрами для данной обработки (20 адресов, 8 машин) -- это около 50 запросов, что обойдется вам в 7 центов или примерно 4 рубля. Более менее реальные параметры -- скажем собственный транспортный цех в 40-60 машин и несколько сотен точек доставки -- полное составление маршрутов будет стоить раз в 10 дороже -- т.е. рублей 40 ежедневно. Вот такие финансовые затраты на работу обработки

Что касается большей актуальности Яндекса по сравнению с Гуглом, то простите, не могли бы Вы объяснить В ЧЕМ ИМЕННО эта "большая актуальность" проявляется? Я проверял обработку в общей сумме на нескольких тысячах адресов. Гугл не выдал ни одной ошибки геокодирования. Наверное и Яндекс бы не выдал, но чем Гугл хуже, если результат одинаков?
5. user1166203 13.11.19 13:08 Сейчас в теме
(4)
Информацией о трафике на дорогах.
frkbvfnjh; +1 Ответить
18. serejkin 20.11.19 18:09 Сейчас в теме
(4)
В среднем один цикл работы обработки с тестовыми параметрами для данной обработки (20 адресов, 8 машин) -- это около 50 запросов, что обойдется вам в 7 центов или примерно 4 рубля.

откуда такие тарифы? Гугл говорит о том, что для запросов до 1 тысячи - бесплатно, а свыше - уже плати...
решение от меня пока не забанили... свой "счетчик" и когда контролька по ключу подбирается к заветной тысяче - ключик автоматически исключается из вариантов.
....
6. Torin99 259 13.11.19 14:15 Сейчас в теме
(5)
При построении маршрутов Яндекс НЕ УЧИТЫВАЕТ информацию о пробках. Не знаю почему, но это так... У компании, в которой я сейчас работаю, есть ключ Яндекса для автоматической разбивки на маршруты, так что я это абсолютно точно знаю. И, кстати необходимость в ручной разбивке возникла у наших логистов именно потому что Яндекс, не учитывая пробки, при автоматической разбивке зачастую не укладывается ни в какие временные нормативы по суммарному времени маршрута -- водителю приходится проводить за рулем по 12-14 часов вместо восьми
7. triviumfan 16 13.11.19 20:55 Сейчас в теме
(6) С трудом верится. Может имеет смысл обратиться в ТП яндекса? Может нужно что-то дополнительно указывать в парметрах или есть другие методы api.
cleaner_it; +1 Ответить
44. user1331669 23.12.19 19:42 Сейчас в теме
(6)прошу мне перезвонить - есть заказ +7-926-408-9541
8. Torin99 259 13.11.19 21:08 Сейчас в теме
Ну может быть и так, я не совсем в курсе. Этой обработкой занимаюсь не я -- у нас в компании восемь программистов, из которых четыре 1с-ника. Попробую завтра уточнить у коллеги-прогера, который отвечает за связь с яндексом -- мож он и правда чего-то не доделал. Но логисты ругаются матом на то, что приходит от Яндекса по ключу автоматического разбиения на маршруты...
13. Intercititude 18.11.19 10:38 Сейчас в теме
(8) Разве яндекс не требует мани за API?
9. Oldsad 14.11.19 03:50 Сейчас в теме
не знаю как там с автоматическими сервисами, но если вы зайдете вручную в гугл карты, и составите маршрут, то будет выбран оптимальный с учетом пробок на дорогах, так что информация о трафике на дорогах у гугла точно есть
другой вопрос что маршрут строится с учетом ТЕКУЩИХ пробок, а если вы планируете маршрут на день с утра, когда пробок нет, то результат такого планирования предсказать не сложно
10. Torin99 259 14.11.19 06:31 Сейчас в теме
(9) Вроде как и у Гугла и у Яндекса есть функция ПРОГНОЗИРОВАНИЯ пробок на определенное время на основе средних показателей за предыдущие периоды. Но если она и есть, я её не нашел и поэтому в этой обработке .не использую.
14. Torin99 259 18.11.19 10:40 Сейчас в теме
Требует. И гугл требует. Я об этом и пишу
15. KontoraB 18.11.19 11:05 Сейчас в теме
А код в обработке открыт ?
P S есть фирмочка кот сидит на 1с 7.7 - хочу попробовать перепелить на семерку
16. Torin99 259 18.11.19 11:07 Сейчас в теме
17. serejkin 20.11.19 18:04 Сейчас в теме
коллеги, я тут открываю форму, а у меня поле карты чистенькое. при этом сохраненный макет в файл открывается просто прекрасно и без мата...
догадываюсь, что гдет настройка, но где и какая...
19. Torin99 259 20.11.19 18:09 Сейчас в теме
Какие у Вас, сударь, платформа и операционка? Одно должно соответствовать другому. Если у Вас в операционке по умолчанию в качестве браузера используется EDGE, а не IE, то платформа должна быть не ниже 14-ой.
serejkin; +1 Ответить
20. serejkin 20.11.19 18:21 Сейчас в теме
(19) "вот где собака покопалась..." (с) М.С.Г

ось: Вынь2012 и по-умолчанию установлен браузер FireFox, но это браузер профиля. в оси вот поменял.
Платформа ниже 14й. правда.
ситуация не изменилась.
21. serejkin 20.11.19 18:34 Сейчас в теме
мдя, картина маслом. Проблема устраняется только при открытии в платформе выше. в данном случае 14 и 15.
блин, а в них же глюков...
22. Torin99 259 20.11.19 20:07 Сейчас в теме
(21)
Ну извините... моя конторка на 14 платформе уже почти год как -- ничего, справляемся.
Кстати, не сочтите за мелочность -- вроде как среди списка скачавших мою обработочку Вас нет.
23. phsin 183 25.11.19 10:36 Сейчас в теме
Задача коммивояжера не решает поставленной "задачи разбиения точек доставки на рейсы логистом"

Это классическая задача vehicle routing problem https://en.wikipedia.org/wiki/Vehicle_routing_problem является NP сложной = простым перебором не решить

Варианты решения:
Optaplanner https://www.optaplanner.org/ = open source решение

OpenDoorLogistics https://www.opendoorlogistics.com/people/ = еще одно интересное решение на java

строит "оптимальные" маршруты https://maxoptra.ru/ за сравнительно небольшие деньги.

Интересно кто-то использует построение "оптимальных" маршрутов ? и как это все выглядит на практике?
25. Torin99 259 25.11.19 11:21 Сейчас в теме
(23)
Конечно не решает. Я же здесь многократно написал что данная обработка для РУЧНОГО разбиения на машины. А задача коммивояжера работает только для оптимизации маршрута обхода УЖЕ отобранных точек по каждой машине. Обработку разбивки на машины с использованием трех основных алгоритмов (Кларка-Райта, "заметания" и "метода потенциалов") собираюсь выложить в ближайшие пару недель
45. malinko.vasiliy 7 17.01.20 10:42 Сейчас в теме
(25)
овных алгоритмов (Кларка-Райта, "заметания" и "метода потенциалов") собираюсь выложить в ближайшие пару недель


Сделали уже или когда планируете? (в описании не вижу)
24. phsin 183 25.11.19 10:58 Сейчас в теме
в своё время пытался обобщить опыт в https://redmine.kb99.pro/projects/cvrp
но пришел к выводу, что основная проблема "оптимальных маршрутов" находится в плоскости людей принимающих решение = через логистов проходит очень много МЦ и никто не захочет просто так отдать этот сладкий кусок
26. Torin99 259 25.11.19 11:22 Сейчас в теме
(24)
И это тоже есть. Но это за пределами зоны ответственности программиста...
27. Glagoleva 09.12.19 11:06 Сейчас в теме
Скачал не работает, 1С:Предприятие 8.3 (8.3.15.1747)... Страница не отображается ,hfepth IE =11
28. Torin99 259 09.12.19 11:39 Сейчас в теме
Видимо проблема в "несовпадении" операционки (т. е. используемого операционкой эксплорера) и платформы. Какая у Вас платформа? Для IE7 подойдет любая 8.3, а вот для IE =11 платформа должны быть не ниже 8.3.14
29. Glagoleva 09.12.19 11:43 Сейчас в теме
8.3.15.1747 ИЕ =11... Хрен пойми что 1С нужно
30. Glagoleva 09.12.19 11:44 Сейчас в теме
На сервере и на клиенте браузер по умолчанию ИЕ = 11
31. Torin99 259 09.12.19 11:45 Сейчас в теме
Посмотрите настройки безопасности эксплорера. Там используются три сайта (посмотрите в макете Гугл), все они должны быть добавлены в список доверенных сайтов
32. Glagoleva 09.12.19 12:11 Сейчас в теме
Загружаю список адресов, становлюсь на строчку, давлю "показать на карте" карта пустая
https://*google.ru
https://*google.com в безопасных узлах на сервере 1С и на терминальном сервере... Я не сомневаюсь что ваша обработка работает но хрен его как заставить ее работать у себя
33. Torin99 259 09.12.19 12:41 Сейчас в теме
Давайте начнем с начала. Просто карту показывает? Не точки на карте, а просто саму карту Гугл без точек?
34. Glagoleva 09.12.19 12:44 Сейчас в теме
36. Torin99 259 09.12.19 12:48 Сейчас в теме
(34) это проблемы совместимости. Или безопасности. Но скорее всего совместимости. Попробуйте запустить на каком-нить ДРУГОМ компутере -- с другой операционкой
35. Torin99 259 09.12.19 12:45 Сейчас в теме
Вот это сайты -- не через звездочку, а точно по наименованию
developers.google.com
maps.google.com

должны быть добавлены в список доверенных

Еще. откройте макет (который макет гугл), найдите в нем вот эту строку
<met a http-equiv="X-UA-Compatible" content="IE=10">

и попробуйте поменять на
<met a http-equiv="X-UA-Compatible" content="IE=11">

возможно это поможет
37. Torin99 259 09.12.19 12:49 Сейчас в теме
Ключ гугла Вы используете мой? Или получили свой?
38. Glagoleva 09.12.19 12:52 Сейчас в теме
Свой, апи гугла работают, все считается не отображается результат в поле html документа
39. Torin99 259 09.12.19 12:57 Сейчас в теме
А вот этот АПИ -- Maps JavaScript API -- вы подключили? Посмотрите в консоли проектов гугла -- есть по нему запросы?
40. Glagoleva 09.12.19 13:44 Сейчас в теме
Maps JavaScript API
Google
Maps for your website
API включен
javascript:void(0);
41. Torin99 259 09.12.19 14:39 Сейчас в теме
То есть АПИ включен, а запросов к нему ноль. Это однозначно настройки безопасности -- ваш компутер блокирует попытки обращения к этому сервису. Вы не пробовали то, что я выше написал -- запустить обработку на компутере с другой операционкой или другими настройками безопасности?
42. Glagoleva 10.12.19 10:11 Сейчас в теме
На другом компе работает, хотя на своем тоже настроил
43. Torin99 259 10.12.19 10:59 Сейчас в теме
Напишите, что пришлось изменить -- вдруг пригодится еще кому-то объяснять
Оставьте свое сообщение

См. также

daСклонение: склонение ФИО, должностей, чисел, прилагательных, существительных на языке 1С + ТестЦентр Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

14.02.2015    99076    96    daMaster    88    

Сравнение реального дохода со средним доходом из API.HH.RU

Зарплата Управленческие v8 v8::СПР ЗУП3.x УУ Абонемент ($m)

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с HH.RU используя HH REST API. Ключевые функции: получение списка вакансий по должностям (Ключ для работы не нужен); расчет среднего дохода; Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.13.1513) Зарплата и управление персоналом, редакция 3.1 (3.1.11.68) совместно с API.HH.RU.

1 стартмани

11.11.2019    3645    4    solaru    2    

Конфигурация для рекламного агентства

Управление услугами и сервисом Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) v8 Реклама, PR и маркетинг УУ Абонемент ($m)

Данная конфигурация выполнена для решения тестового задания: Цель задания: 1) Понять, на каком из клиентов сколько мы заработали;  2) Понять, по какому виду СМИ сколько мы заработали;  3) Проследить по каждой услуге: у кого за сколько купили и кому за сколько продали, с возможностью перейти в соответствующий документ. Реализовано с помощью: 1. Справочники - контрагенты, номенклатура 2. Документы - Поступление услуг, реализация услуг 3. Отчеты - отчет по контрагентам, номенклатуре и движений.

1 стартмани

21.05.2019    3923    0    solaru    0    

Загрузка номенклатуры в УТ 10.3 из Excel файла с генерацией штрихкодов

Загрузка и выгрузка в Excel Обработка справочников Оптовая торговля Розничная торговля Учет ТМЦ Оптовая торговля Розничная торговля Учет ТМЦ v8 УТ10 Россия Абонемент ($m)

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

1 стартмани

24.03.2017    7528    6    solaru    0    

Под капотом управляемых форм

Практика программирования v8 1cv8.cf Бесплатно (free)

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

26.08.2013    260463    0    Evil Beaver    266    

[NotaBene] Универсальный отчет по таблице значений

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

1C v.7.7 Готовое решение. Не требует настройки. Не требует допрограммирования. Данная обработка решает часто встречающуюся задачу вывода в "красивом" виде таблицы значений (полученной, например, из запроса). Поддерживается произвольное группирование данных, отключение/включение группировок, в т.ч и создание "шахматок" (типа "продажи понедельно"). Обработка может использоваться как и в отладочных целях (для нормального просмотра ТЗ), так и в составе вполне рабочих отчетов. По крайней мере, я неоднократно клиентам данную обработку ставил вместо того, чтобы каждый раз писать замороченные выводы данных. И клиенты довольны, и мне - проще...

2 стартмани

07.05.2007    27912    1    CheBurator    61