Как реализовать функционал маршрутных листов в «1С:Управление торговлей 10.3»?

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

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

Выбор архитектуры: документ или обработка?

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

Рекомендуемый подход — использование полноценного документа Маршрутный лист. Разберем преимущества этого решения:

  1. Хранение данных: В документе фиксируются параметры рейса (водитель, экспедитор, автомобиль, дата и время выезда).
  2. Очередность: В табличной части документа можно задать строгий порядок объезда точек.
  3. Печатные формы: На основании документа легко формировать и перепечатывать реестры доставок и путевые листы.
  4. Связь с заказами: Документ позволяет «забронировать» заказы за конкретной машиной, чтобы они не попали в другие маршруты.

Проектирование структуры справочников

Прежде чем приступать к созданию документов, проанализируем необходимые аналитические разрезы. Нам понадобятся следующие объекты:

1. Справочник «Транспортные средства»: Здесь мы будем хранить информацию о собственном или наемном транспорте. Важно добавить реквизиты Грузоподъемность и ОбъемКузова. Эти данные позволят системе автоматически контролировать перегруз при формировании маршрута.

2. Справочник «Маршруты»: Это справочник стандартных направлений (например, «Север», «Центр», «Область Юг»). Рассмотрим целесообразность указания маршрута непосредственно в Заказе покупателя. Если маршруты клиентов заранее известны, добавим реквизит Маршрут в справочник Контрагенты или АдресаДоставки, чтобы он автоматически подставлялся в заказы.

3. Регистр сведений «Расстояния между точками»: Для расчета планового пробега и расхода ГСМ полезно создать периодический регистр, где будет храниться информация о километраже между складом и основными зонами доставки.

Разработка документа «Маршрутный лист»

Рассмотрим структуру документа более детально. Шапка документа должна содержать стандартные реквизиты: Организация, Подразделение, Автомобиль, Водитель и Склад. В табличную часть СоставМаршрута включим следующие поля:

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

Автоматизация рабочего места логиста

Создание документов вручную — трудоемкий процесс. Выясним, как упростить жизнь пользователю. Создадим обработку «Рабочее место логиста», разделенную на две части. В левой части отобразим список нераспределенных Заказов покупателей. Проанализируем типичный запрос для получения этого списка:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	ЗаказПокупателя.Ссылка КАК Заказ,
    |	ЗаказПокупателя.Контрагент КАК Контрагент,
    |	ЗаказПокупателя.СуммаДокумента КАК Сумма
    |ИЗ
    |	Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |ГДЕ
    |	ЗаказПокупателя.Проведен = ИСТИНА
    |	И ЗаказПокупателя.ДатаОтгрузки = &ДатаОтгрузки
    |	И ЗаказПокупателя.Ссылка НЕ В (ВЫБРАТЬ МаршрутныйЛистСостав.ЗаказПокупателя ИЗ Документ.МаршрутныйЛист.Состав КАК МаршрутныйЛистСостав)";

В правой части обработки отобразим список уже созданных Маршрутных листов на выбранную дату. Реализуем механизм Drag-and-drop, чтобы логист мог перетаскивать заказы из левой таблицы в правую, тем самым наполняя маршруты. При переносе система должна автоматически суммировать вес и объем заказов в машине и сравнивать их с грузоподъемностью из справочника Транспортные средства.

Работа с весогабаритными характеристиками (ВГХ)

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

Интеграция с картами и геокодирование

Современная логистика невозможна без визуализации. Разберем, как добавить карту в обычные формы УТ 10.3. Мы можем использовать элемент формы типа ПолеHTMLДокумента. При выборе маршрута 1С может генерировать HTML-код, который обращается к API Яндекс.Карт или Google Maps. Передавая координаты точек доставки, мы получим визуальное отображение маршрута прямо в интерфейсе программы. Это позволит логисту увидеть «петли» и неоптимальные пути, которые сложно заметить в таблице.

Сводная ведомость на комплектацию

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

Групповая печать и создание реализаций

Посмотрим на финальный этап работы. Когда машина готова к выезду, необходимо распечатать пакет первичных документов. В УТ 10.3 это удобно реализовать через механизм групповой печати. Из документа Маршрутный лист запустим процедуру, которая:

  1. Проверит наличие документов Реализация товаров и услуг для каждого заказа.
  2. Если реализаций нет — создаст их автоматически на основании заказов.
  3. Проведет реализации и сформирует счета-фактуры.
  4. Отправит на печать комплект: ТОРГ-12, Счет-фактура и ТТН (транспортно-товарная накладная) для всех точек маршрута в одном потоке.

Такой подход исключает ошибки ручного ввода и гарантирует, что водитель уедет с полным и корректным пакетом документов.

Учет возвратов и статусов доставки

Выясним, как обрабатывать ситуацию, когда клиент отказался от части товара. Добавим в табличную часть Маршрутного листа реквизит СтатусДоставки со значениями: Доставлено, Частичный отказ, Полный возврат. По возвращении водителя диспетчер проставляет эти статусы. Если зафиксирован отказ, система должна автоматически инициировать создание документа Возврат товаров от покупателя или корректировку реализации. Это обеспечит актуальность складских остатков в режиме реального времени.

Резюмируем: реализация маршрутных листов в УТ 10.3 требует комплексного подхода — от создания структуры хранения в виде документов до разработки удобного интерфейса логиста. Использование связки Заказ - Маршрутный лист - Реализация позволяет создать надежный контур управления доставкой, не перегружая систему избыточным функционалом тяжелых ERP-решений.

← На главную