Как организовать автоматическое планирование доставки и рабочее место логиста в 1С:УТ 10.3 и УПП?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В типовых конфигурациях 1С:Управление торговлей редакции 10.3 и 1С:Управление производственным предприятием (УПП) отсутствует встроенная подсистема транспортной логистики. В отличие от современных решений на управляемых формах (таких как 1С:ERP или УТ 11), здесь нет готовых документов по типу «Задание на перевозку» или справочника «Зоны доставки». При необходимости автоматизировать работу логиста перед предприятием встает выбор: покупать готовое специализированное решение, встраивать внешние картографические сервисы или разрабатывать собственное облегченное рабочее место (АРМ).

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

Вариант 1. Разработка собственными силами: облегченное АРМ логиста на базе районов доставки

Проанализируем ситуацию, когда автопарк компании составляет всего 2–5 машин. Попытка внедрения сложных алгоритмов автоматической маршрутизации (VRP — Vehicle Routing Problem) с динамической загрузкой пробок и геокодированием для небольшого количества ТС часто оказывается избыточной. Ошибки в адресах или отсутствие заполненного веса и объема номенклатуры приведут к тому, что алгоритм построит некорректный маршрут, который водитель все равно будет перестраивать вручную.

Оптимальным решением для небольшого автопарка является создание собственной обработки (АРМ) и документа-контейнера (например, МаршрутныйЛист или Рейс), работающих по принципу географического зонирования:

  1. Классификация адресов по районам: В справочнике Контрагенты или адресах доставки добавляется реквизит привязки к определенному району/зоне (например, «Север», «Центр», «Южная промзона»).
  2. Отбор и группировка заказов: В рабочем месте логиста выводятся невыполненные документы ЗаказПокупателя или РеализацияТоваровУслуг за выбранную дату. Логист фильтрует их по районам доставки.
  3. Формирование документа доставки: Логист выделяет группу заказов одного района и одной кнопкой создает документ Рейс, назначая на него автомобиль из справочника ТранспортныеСредства и водителя.

Приведем пример структуры кода для создания документа Рейс на основании выбранных заказов в обработке АРМ логиста:


// Создание документа Рейс на основании массива выбранных заказов
ДокРейс = Документы.Рейс.СоздатьДокумент();
ДокРейс.Дата = ТекущаяДата();
ДокРейс.Автомобиль = ВыбранныйАвтомобиль;
ДокРейс.Водитель = ВыбранныйВодитель;

Для Каждого ТекЗаказ Из МассивЗаказов Цикл
    СтрокаДок = ДокРейс.Заказы.Добавить();
    СтрокаДок.ЗаказПокупателя = ТекЗаказ;
    СтрокаДок.АдресДоставки = ТекЗаказ.АдресДоставки;
    СтрокаДок.Вес = ТекЗаказ.Товары.Итог("Вес");
    СтрокаДок.Объем = ТекЗаказ.Товары.Итог("Объем");
КонецЦикла;

ДокРейс.Записать(РежимЗаписиДокумента.Запись);

Вариант 2. Интеграция с внешними гео-сервисами и автоматическое планирование

Если автопарк насчитывает от 15–20 машин и требует оптимизации пробега с учетом пробок, временных окон клиентов и габаритов грузов, имеет смысл подключить внешние API картографии и маршрутизации (Яндекс.Маршрутизация, OpenStreetMap и др.).

Разберем по шагам технические нюансы такой интеграции в обычных формах 1С 8.2 / 8.3:

  1. Подготовка НСИ: Все адреса контрагентов должны быть геокодированы (получены их точные широта и долгота). Для каждого товара в справочнике Номенклатура должны быть строго заполнены реквизиты Вес и Объем, а для ТС — грузоподъемность и вместимость.
  2. Отображение карты на обычной форме: На формах 1С 8.2 / 8.3 для вывода карт используется элемент формы типа ПолеHTMLДокумента (ActiveX-компонент WebBrowser). Поскольку современный Internet Explorer устарел, в реестре Windows настраивается эмуляция актуальной версии браузера для процесса 1cv8.exe, либо карта выносится во внешний браузер.
  3. Обмен данными по REST API: Из 1С передается массив заказов с координатами и окнами доставки с помощью объектов HTTPСоединение и HTTPЗапрос. Сервис возвращает JSON с готовой последовательностью объезда точек, который разбирается средствами платформы или через ЧтениеJSON.

Пример отправки данных о точках доставки во внешний сервис маршрутизации:


// Отправка JSON-запроса в сервис оптимизации маршрутов
Соединение = Новый HTTPСоединение("api.routing-service.com", 443, , , , Истина);
Запрос = Новый HTTPЗапрос("/v1/optimize_route");
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Запрос.УстановитьТелоИзСтроки(ТекстJSON, КодировкаТекста.UTF8);

Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Если Ответ.КодСостояния = 200 Тогда
    СтрокаОтвета = Ответ.ПолучитьТелоКакСтроку();
    // Разбор JSON и заполнение порядка точек в маршрутном листе
КонецЕсли;

Вариант 3. Использование готовых отраслевых модулей

Для крупных компаний, не планирующих разработку с нуля, существуют готовые программные продукты, интегрируемые с 1С:УТ 10.3 и УПП:

  1. БИТ.Управление транспортной логистикой (БИТ.УТЛ): Полнофункциональный модуль, добавляющий в конфигурацию подсистему учета рейсов, путевых листов, расчет затрат на ГСМ и планирование маршрутов.
  2. ИТОБ:Центр контроля транспорта: Решение для мониторинга GPS/ГЛОНАСС и автоматического построения оптимальных маршрутов с наглядным рабочим местом логиста.

Передача маршрутных листов водителям

Выясним, как передать сформированный маршрут водителю. Вместо распечатки бумажных накладных все чаще применяется отправка ссылок (deep links) в мобильные приложения или мессенджеры. При нажатии на такую ссылку на смартфоне водителя автоматически запускается Навигатор (Яндекс.Навигатор, 2GIS и др.) с построенным маршрутом до следующей точки доставки.

Для небольшого парка техники (до 5 машин) достаточно реализовать простую группировку по районам и документ Рейс. При увеличении масштабов следует переходить на API-интеграцию с картографическими сервисами или готовые отраслевые решения.

← На главную