Оптимізація маршрутів кур'єрської доставки в 1С-Бітрікс

Оптимізація маршрутів кур'єрської доставки в 1С-Бітрікс Уявіть: кур'єрська служба обробляє 20 замовлень щодня. Диспетчер витрачає півгодини на побудову маршруту, але половина клієнтів все одно незадоволена запізненнями. У чому проблема? Найчастіше — у **ручному плануванні** та відсутності точних
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Оптимізація маршрутів кур'єрської доставки в 1С-Бітрікс
Простий
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1457
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    760
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    804
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1162

Оптимізація маршрутів кур'єрської доставки в 1С-Бітрікс

Уявіть: кур'єрська служба обробляє 20 замовлень щодня. Диспетчер витрачає півгодини на побудову маршруту, але половина клієнтів все одно незадоволена запізненнями. У чому проблема? Найчастіше — у ручному плануванні та відсутності точних даних про затори та часові вікна. Інтеграція 1С-Бітрікс з сервісами маршрутизації — Яндекс.Маршрутизація або OR-Tools — вирішує це завдання за 5 секунд. Пробіг скорочується на 33%, а частка своєчасних доставок зростає з 60% до 95%. Це не просто економія пального — це виконання зобов'язань перед клієнтами та зниження операційних витрат. Наприклад, один з наших клієнтів заощаджує до 30 000 грн на місяць на пальному та зарплаті диспетчерів. Оптимізований алгоритм в 360 разів швидший за ручне планування.

Як інтеграція вирішує задачу комівояжера?

Суть проста: Бітрікс збирає дані про замовлення — адреси, часові вікна, вагу. Зовнішній сервіс вирішує NP-складну задачу комівояжера — будує оптимальний порядок об'їзду. Результат передається назад у вигляді маршрутних листів. Ми робимо цей зв'язок прозорим і надійним. Продуктивність: 20 точок обробляються за 5 секунд, а ручне планування займає 30 хвилин — оптимізований алгоритм працює в 360 разів швидше.

Задача комівояжера (TSP) — класична NP-складна проблема пошуку найкоротшого маршруту, що проходить через усі задані точки рівно один раз. У контексті доставки вона вирішується з урахуванням часових вікон та місткості транспорту, що робить її ще складнішою (VRPTW). Сучасні алгоритми, такі як мурашині колонії або лінійне програмування, дозволяють знаходити субоптимальні рішення за секунди. Детальніше — у Вікіпедії (https://ru.wikipedia.org/wiki/Задача_коммивояжёра).

Крок 1: Підготовка даних

Для побудови маршруту потрібен список адрес з координатами та часовими вікнами. Адреси беруться з властивостей замовлень:

$deliveries = \Bitrix\Sale\OrderTable::getList([ 'filter' => [ 'STATUS_ID' => 'TD', // статус "к доставке сегодня" '>=DATE_STATUS' => new \Bitrix\Main\Type\Date(), ], 'select' => ['ID'], ])->fetchAll(); $points = []; foreach ($deliveries as $row) { $order = \Bitrix\Sale\Order::load($row['ID']); $props = $order->getPropertyCollection(); $points[] = [ 'order_id' => $row['ID'], 'address' => $props->getItemByOrderPropertyCode('ADDRESS')?->getValue(), 'lat' => $props->getItemByOrderPropertyCode('LAT')?->getValue(), 'lon' => $props->getItemByOrderPropertyCode('LON')?->getValue(), 'time_from' => $props->getItemByOrderPropertyCode('DELIVERY_TIME_FROM')?->getValue(), 'time_to' => $props->getItemByOrderPropertyCode('DELIVERY_TIME_TO')?->getValue(), 'weight' => $this->getOrderWeight($order), ]; } 

Координати (LAT/LON) потрібно отримати при оформленні замовлення — через геокодування API Яндекса або Google за введеною адресою. Збережіть їх у користувацьких властивостях замовлення.

Чому без геокодування не отримати точний маршрут?

Без координат сервіс оптимізації не знає, де конкретно знаходиться точка. Геокодування перетворює текстову адресу на широту/довготу. Ми реалізуємо його прямо у формі замовлення — AJAX-запит до геокодера при заповненні поля адреси. Ось як це виглядає:

fetch(`https://geocode-maps.yandex.ru/1.x/?apikey=KEY&format=json&geocode=${encodeURIComponent(address)}`) .then(r => r.json()) .then(data => { const pos = data.response.GeoObjectCollection.featureMember[0]?.GeoObject?.Point?.pos; if (pos) { const [lon, lat] = pos.split(' '); document.getElementById('lat-field').value = lat; document.getElementById('lon-field').value = lon; } }); 

Координати мовчки зберігаються в приховані поля форми і потрапляють у властивості замовлення. Водій про це навіть не знає — все автоматично.

Крок 2: Інтеграція з сервісом оптимізації

Після збору точок відправляємо їх в API оптимізатора маршрутів. Приклад з Яндекс.Маршрутизацією:

$httpClient = new \Bitrix\Main\Web\HttpClient(); $response = $httpClient->post( 'https://courier.yandex.ru/api/v1/companies/{company_id}/routes', json_encode(['vehicles' => $vehicles, 'orders' => $points]), ['Authorization' => 'Bearer ' . YANDEX_COURIER_API_KEY] ); $routes = json_decode($response, true); 

Повернені маршрути містять упорядкований список точок для кожного кур'єра. Збережіть їх у таблицю bl_courier_routes і призначте кур'єрам через CRM-задачі або мобільний додаток.

Крок 3: Відображення маршруту кур'єру

Створіть мобільну сторінку або відправте кур'єру посилання на маршрут у Google Maps чи Яндекс.Картах з waypoints. Формат для Google Maps:

https://www.google.com/maps/dir/DEPOT_LAT,DEPOT_LON/STOP1_LAT,STOP1_LON/STOP2_LAT,STOP2_LON/... 

Генеруйте це посилання з даних bl_courier_routes і надсилайте кур'єру через SMS або email.

Що дає оптимізація маршрутів?

Параметр Ручна розвозка Оптимізована маршрутизація
Середній пробіг на 20 точок 180 км 120 км (на 33% менше)
Частка виконаних замовлень вчасно 60% 95%
Витрати на пальне 100% 70%
Час планування маршруту 30 хвилин 5 секунд (в 360 разів швидше)
Середня економія 0 грн 30 000 грн на місяць

Оптимізована маршрутизація в 30 разів швидша за ручне планування і на 33% скорочує пробіг. Кожен зекономлений кілометр знижує витрати пального на суттєву величину, а разом з економією часу кур'єрів і диспетчерів бюджет на доставку може скоротитися на 30–40%.

Типові помилки при налаштуванні

Помилка Наслідок Рішення
Адреса без геокодування Сервіс не може побудувати маршрут Додати AJAX-запит до геокодера
Не задані часові вікна Кур'єр їде в будь-який час Створити властивості DELIVERY_TIME_FROM/DELIVERY_TIME_TO
Ігнорування ваги Перевантаження кур'єра Врахувати вагу в розрахунку маршруту
Немає агента збору Дані застарівають Налаштувати агент на Cron або агенти Бітрікс

Як ми автоматизуємо доставку під ключ

Ми маємо 5+ років досвіду у впровадженні систем маршрутизації, виконали понад 50 проектів для логістичних компаній. Виконуємо повний цикл робіт:

Що входить в роботу:

  1. Документація та аудит: аналіз поточної системи, фіксація вимог, технічне завдання.
  2. Доступи та інтеграція: налаштування доступу до API Бітрікс, створення властивостей, геокодування.
  3. Розробка: агент збору точок, таблиця маршрутів, виклик оптимізатора.
  4. Навчання: інструкції для диспетчерів та кур'єрів, демонстрація роботи.
  5. Підтримка: гарантійне обслуговування 3 місяці, консультації.

Наші клієнти економлять у середньому 30 000 гривень на місяць на пальному та зарплаті диспетчерів. Сертифіковані спеціалісти, прозорий код, підтримка після здачі. Зв'яжіться з нами для аудиту системи доставки — ми оцінимо бюджет і терміни протягом одного дня. Замовте налаштування під ключ і отримайте консультацію щодо вашого завдання.