---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.kz/routing/doc/en/vrp/planned-route.md
  - https://yandex.kz/routing/doc/kk/vrp/planned-route.md
  - https://yandex.kz/routing/doc/ru/vrp/planned-route.md
  - https://yandex.kz/routing/doc/tr/vrp/planned-route.md
  - href: ru/vrp/planned-route.md
    type: text/markdown
    title: Markdown version
  - href: llms.txt
    type: text/markdown
    title: llms.txt
title: Яндекс Маршрутизация — возможные логистические сценарии - допланирование (устаревшая версия)
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.kz/routing/doc/ru/llms.txt


# Допланирование (устаревшая версия)

Используется при работе с шаблонами Excel или для ознакомления с принципом допланирования. Данный способ поддерживается, но больше не развивается. Для автоматизации задач допланирования (при работе через API) мы рекомендуем использовать [периодическое допланирование](https://yandex.kz/routing/doc/ru/vrp/additional-planning.md).

## Фиксация порядка заказов {#visited_locations}

Если порядок следует сохранить, используйте поле `vehicles.visited_locations`. Если новые заказы могут быть перемешаны со старыми в произвольном порядке, используйте поле `vehicles.planned_route`. В `planned_route` можно указывать не только заказы, но и [склады для дозагрузки](https://yandex.kz/routing/doc/ru/vrp/properties-of-vehicles-depot.md#visit-additional-depot), которые нужно посетить курьеру при движении по маршруту. Для них нужно указать опцию `is_middle_depot` = `true`.

В `planned_route` не поддерживается [добавление перерывов](https://yandex.kz/routing/doc/ru/vrp/properties-of-vehicles-rest-schedule.md#rest-schedule). Если при допланировании нужно учитывать режим труда и отдыха курьера, используйте [периодическое допланирование](https://yandex.kz/routing/doc/ru/vrp/additional-planning.md) (`initial_routes`).

## Текущее местоположение курьера {#courier-position}

Если курьер находится на складе, чтобы сформировать запрос, необходимо знать:

- уже распределенные заказы для каждого автомобиля;
- новые заказы, поступившие с момента прошлого планирования.

В новом запросе на допланирование для каждого автомобиля в поле `planned_route` (`visited_locations`) укажите идентификаторы (`locations` или `id`) уже распределенных заказов (из предыдущей итерации планирования).

Если курьер в пути, чтобы сформировать запрос, необходимо знать:

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

В новом запросе на допланирование:

1. Для каждого автомобиля в поле `planned_route` (`visited_locations`) укажите идентификаторы (`locations` или `id`) уже распределенных заказов (из предыдущей итерации планирования), но **не выполненных на момент допланирования**.

2. В список заказов добавьте «фиктивные» заказы, соответствующие точкам текущего местонахождения для каждого автомобиля. Это можно не делать, если точка текущего местонахождения — последний доставленный или следующий по очередности заказ.

3. Для каждого автомобиля в поле `visited_locations` первым элементом укажите идентификатор точки текущего местонахождения и время старта из нее.

    Чтобы задать время отъезда с точки, используйте параметр `planned_route.start_time` (или `visited_locations.N.time`).

    Возможные форматы указания времени:

    - относительный: [D.]HH[:MM[:SS]], где D — сдвиг даты относительно даты начала маршрута;
    - абсолютный: в формате ISO 8601 (например, `2018-09-06T10:15:00+03:00`).

    [Подробнее о форматах указания времени](https://yandex.kz/routing/doc/ru/vrp/properties-of-time-window.md) 

    {% cut "Пример" %}

    В данном случае будет запланирован выезд с точки маршрута 1001 в 10:20.

    ```json
    "visited_locations": [
        {
            "id": "1001",
            "shift_id": "1",
            "time": "10:20"
        },
    ...
    ]
    ```

    {% endcut %}

    {% note info %}

    Для не использованных ранее автомобилей нужно задать корректные параметры выезда: либо сдвинуть время начала смены, либо указать текущее местонахождение на складе в `visited_locations`.

    {% endnote %}

4. Из списка заказов удалите уже выполненные заказы (с учетом п. 2: если в качестве точки текущего местонахождения используется последний доставленный заказ, то его удалять не нужно).

## Примеры {#examples}

**Базовая задача**

В задаче 70 заказов и 9 доступных курьеров, используется опция балансировки `balanced_groups`.

Получаем 5 курьеров в решении.

Результат планирования:

#|
||   **Курьер** | **Количество заказов** | **Последовательность заказов**    ||
||   Курьер&nbsp;3 | 15 | 27, 70, 53, 64, 65, 40, 60, 4, 43, 28, 29, 49, 33, 56, 48   ||
||   Курьер&nbsp;4 | 13 | 45, 31, 58, 52, 24, 54, 39, 47, 19, 30, 44, 16, 63  ||
||   Курьер&nbsp;5 | 10 | 14, 41, 8, 10, 1, 12, 13, 22, 9, 46 ||
||   Курьер&nbsp;6 | 15 | 11, 3, 23, 51, 42, 55, 36, 68, 66, 61, 25, 7, 67, 57, 62    ||
||   Курьер&nbsp;7 | 17 | 18, 37, 38, 17, 2, 59, 35, 34, 32, 26, 20, 69, 5, 50, 15, 21, 6 ||
|#

[Пример Excel](https://doc-static.yandex.net/src/dev/routing/doc-examples/mvrp-example-planned_route_base.xlsx) ⋅ [Запрос API (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/25cdf71b-f0709b5e-151f2b11-977c81f2) ⋅ [Ответ API](https://courier.yandex.ru/vrs/api/v1/result/25cdf71b-f0709b5e-151f2b11-977c81f2) ⋅ [Открыть на карте](https://courier.yandex.ru/mvrp-map#25cdf71b-f0709b5e-151f2b11-977c81f2)

Далее рассмотрим различные способы допланирования относительно базовой задачи.

**Пример 1**

Допланирование на складе **с изменением** порядка заказов в маршрутах.

В запросе задаем 110 заказов (из них 40 новых относительно базовой задачи) и 9 доступных курьеров. У 5 курьеров указываем распределение из базовой задачи в `planned_route`. Также используем опцию балансировки `balanced_groups`.

Получаем 7 курьеров в решении.

Результат планирования:

#|
||   **Курьер** | **Количество заказов** | **Последовательность заказов относительно базовой задачи**    ||
||   Курьер&nbsp;1 | 14 | Новый маршрут   ||
||   Курьер&nbsp;3 | 19 | Добавилось 4 заказа:
27, 70, 53, 64, 65, 40, **99**, 60, 4, 43, 28, **95**, 29, 49, 33, 56, **88**, 48, **84** ||
||   Курьер&nbsp;4 | 16 | Добавилось 3 заказа:
45, 31, 58, 52, **87**, 24, 54, 39, **100**, 47, 19, 30, 44, 16, **102**, 63  ||
||   Курьер&nbsp;5 | 13 | Добавилось 3 заказа, сильно изменена последовательность:
_46_, **80**, **71**, _12_, 1, _10_, _8_, _41_, **83**, _14_, 13, 22, 9    ||
||   Курьер&nbsp;6 | 17 | Добавилось 2 заказа:
11, 3, 23, **79**, 51, 42, 55, 36, 68, 66, 61, 25, 7, **108**, 67, 57, 62 ||
||   Курьер&nbsp;7 | 18 | Добавился 1 заказ:
18, 37, 38, 17, 2, 59, 35, 34, 32, 26, 20, 69, **104**, 5, 50, 15, 21, 6 ||
||   Курьер&nbsp;9 | 13 | Новый маршрут   ||
|#

{% note info %}

Заказы, спланированные в базовой задаче, остались закрепленными за теми же курьерами, но при этом:

- у курьеров из базового решения новые заказы добавились **среди других точек маршрута**;

- у курьеров из базового решения изменилась ранее спланированная последовательность заказов;

- добавилось 2 новых маршрута.

{% endnote %}


[Пример Excel](https://doc-static.yandex.net/src/dev/routing/doc-examples/mvrp-example-planned_route1.xlsx) ⋅ [Запрос API (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/645e497-d6f41786-e08a69e7-6ed7b3ce) ⋅ [Ответ API](https://courier.yandex.ru/vrs/api/v1/result/645e497-d6f41786-e08a69e7-6ed7b3ce) ⋅ [Открыть на карте](https://courier.yandex.ru/mvrp-map#645e497-d6f41786-e08a69e7-6ed7b3ce)

**Пример 2**

Допланирование на складе **без изменения** порядка заказов в маршрутах.

В запросе задаем 110 заказов (из них 40 новых относительно базовой задачи) и 9 доступных курьеров. У 5 курьеров указываем распределение из базовой задачи в `visited_locations`. Также используем опцию балансировки `balanced_groups`.

Получаем 7 курьеров в решении.

Результат планирования:

#|
||   **Курьер** | **Количество заказов** | **Последовательность заказов относительно базовой задачи**    ||
||   Курьер&nbsp;3 | 19 | Добавилось 4 заказа:
27, 70, 53, 64, 65, 40, 60, 4, 43, 28, 29, 49, 33, 56, 48, **84**, **88**, **96**, **85**  ||
||   Курьер&nbsp;4 | 15 | Добавилось 2 заказа:
45, 31, 58, 52, 24, 54, 39, 47, 19, 30, 44, 16, 63, **102**, **89**    ||
||   Курьер&nbsp;5 | 14 | Добавилось 4 заказа:
14, 41, 8, 10, 1, 12, 13, 22, 9, 46, **80**, **71**, **79**, **108**  ||
||   Курьер&nbsp;6 | 15 | Маршрут без изменений:
11, 3, 23, 51, 42, 55, 36, 68, 66, 61, 25, 7, 67, 57, 62 ||
||   Курьер&nbsp;7 | 17 | Маршрут без изменений:
18, 37, 38, 17, 2, 59, 35, 34, 32, 26, 20, 69, 5, 50, 15, 21, 6 ||
||   Курьер&nbsp;8 | 14 | Новый маршрут   ||
||   Курьер&nbsp;9 | 16 | Новый маршрут   ||
|#

{% note info %}

Заказы, спланированные в базовой задаче, остались закрепленными за теми же курьерами, но при этом:

- у курьеров из базового решения новые заказы добавились **в конец маршрута**;

- добавилось 2 новых маршрута.

{% endnote %}


[Пример Excel](https://doc-static.yandex.net/src/dev/routing/doc-examples/mvrp-example-visited_locations.xlsx) ⋅ [Запрос API (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/bc499a50-30a9cb8-d12cd951-c06d6e39) ⋅ [Ответ API](https://courier.yandex.ru/vrs/api/v1/result/bc499a50-30a9cb8-d12cd951-c06d6e39) ⋅ [Открыть на карте](https://courier.yandex.ru/mvrp-map#bc499a50-30a9cb8-d12cd951-c06d6e39)

**Пример 3**

Допланирование, когда курьеры уже выехали со склада (**без изменения** порядка заказов в маршрутах).

На момент планирования считаем, что доставлено 15 заказов (по 3 заказа на каждого из 5 курьеров из базовой задачи), и удаляем их из задачи допланирования.

Итого в запросе задаем 100 заказов (из них 40 новых заказов, 55 еще не доставленных заказов из базовой задачи, 5 точек старта курьеров) и 9 доступных курьеров. У 5 курьеров указываем распределение из базовой задачи в `visited_locations`. Также используем опцию балансировки `balanced_groups`.

Получаем 8 курьеров в решении (из них 3 новых курьера, которые стартуют со склада).

Результат планирования:

#|
||   **Курьер** | **Количество заказов*** | **Последовательность заказов относительно базовой задачи**   ||
||   Курьер&nbsp;2 | 9 | Новый маршрут    ||
||   Курьер&nbsp;3 | 13 | Маршрут без изменений:
_27, 70, 53 (выполненные заказы)_, 1003 (точка старта), 64, 65, 40, 60, 4, 43, 28, 29, 49, 33, 56, 48   ||
||   Курьер&nbsp;4 | 11 | Добавлен 1 заказ:
_45, 31, 58 (выполненные заказы)_, 1004 (точка старта), 52, 24, 54, 39, 47, 19, 30, 44, 16, 63, **101**  ||
||   Курьер&nbsp;5 | 10 | Добавлено 3 заказа:
_14, 41, 8 (выполненные заказы)_, 1005 (точка старта), 10, 1, 12, 13, 22, 9, 46, **80**, **71**, **79**    ||
||   Курьер&nbsp;6 | 13 | Добавлен 1 заказ:
_11, 3, 23 (выполненные заказы)_, 1006 (точка старта), 51, 42, 55, 36, 68, 66, 61, 25, 7, 67, 57, 62, **108**    ||
||   Курьер&nbsp;7 | 14 | Маршрут без изменений:
_18, 37, 38 (выполненные заказы)_, 1007 (точка старта), 17, 2, 59, 35, 34, 32, 26, 20, 69, 5, 50, 15, 21, 6 ||
||   Курьер&nbsp;8 | 12 | Новый маршрут   ||
||   Курьер&nbsp;9 | 13 | Новый маршрут   ||
|#

\* — не считая выполненных и точку старта.

{% note info %}

В данном решении все курьеры стартуют с 11:00, а новые заказы добавляются в конец маршрута.

{% endnote %}

[Пример Excel](https://doc-static.yandex.net/src/dev/routing/doc-examples/mvrp-example-visited_locations2.xlsx) ⋅ [Запрос API (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/c1917443-8971f40a-35df0fac-e3541fa3) ⋅ [Ответ API](https://courier.yandex.ru/vrs/api/v1/result/c1917443-8971f40a-35df0fac-e3541fa3) ⋅ [Открыть на карте](https://courier.yandex.ru/mvrp-map#c1917443-8971f40a-35df0fac-e3541fa3)

<!-- source: ru/vrp/_includes/feedback.md -->
<a href="feedback">
  <span class="button">Написать в службу поддержки</span>
</a>




<!-- source: ru/_includes/neuroexpert.md -->



<!-- endsource: ru/_includes/neuroexpert.md -->
<!-- endsource: ru/vrp/_includes/feedback.md -->
