Транспортная логистика в 1С:ERP из коробки — это контур доставки: справочник транспортных средств, распоряжения на доставку (в том числе поручения экспедитору), задания на перевозку, которые собирают распоряжения в рейсы, и рабочее место логиста для распределения и контроля этапов. Учёт самого автопарка — путевые листы, ГСМ, страховки, техосмотры, зарплата водителей — в типовую ERP не входит. Его добавляют отраслевым решением или доработкой.

Ниже — где проходит граница типового функционала, какие доработки встречаются чаще всего и как их проектировать, чтобы ERP оставалась обновляемой. С примерами кода для двух типовых задач: контроль сроков документов ТС и распределение стоимости рейса.

Что умеет типовая 1С:ERP

ОбъектНазначение
Транспортные средстваСобственный и наёмный транспорт: грузоподъёмность, объём, тип
Распоряжения на доставкуЗаказы клиентов, перемещения, поручения экспедитору, которые нужно доставить или забрать
Поручение экспедиторуСамостоятельное распоряжение на перевозку, не связанное с документом продажи или закупки
Задание на перевозкуРейс: какие распоряжения, на какой машине, в каком порядке, статусы выполнения
Рабочее место управления доставкойРаспределение распоряжений по заданиям и контроль этапов

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

Где начинаются доработки

Производственные предприятия со своим автопарком, крупногабаритными грузами и сложными маршрутами упираются в типовой контур довольно быстро. Частые запросы:

  • Документы ТС: полисы ОСАГО, диагностические карты, сроки действия, страховщики, история продлений.
  • Путевые листы с пробегом, расходом топлива, временем в наряде.
  • Нормы расхода ГСМ с учётом сезона, типа местности, загрузки; учёт прицепов.
  • Списание топлива на основании закрытых путевых листов без ручного ввода.
  • Переменная часть зарплаты водителя по пробегу, тоннажу, времени.
  • Распределение стоимости рейса (собственного или наёмного) между заказами клиентов.
  • Согласование дорогих перевозок и путевых листов: ПЭО, бухгалтерия, оплата.
  • Отчёты: истекающие полисы, техосмотры, карточка работы автомобиля, стоимость километра.

Если почти весь список актуален, сравните стоимость доработки с отраслевым продуктом для управления автотранспортом, интегрированным с ERP. Если нужно три-четыре пункта — доработка обычно дешевле и ближе к процессу.

Принципы проектирования доработок

  1. Данные — в регистрах. Нормы и тарифы — в периодических регистрах сведений, чтобы видеть историю изменений. Пробег и расход — в регистрах накопления: из них быстро строятся отчёты и остатки.
  2. Расширение вместо изменения типовых объектов. Новые документы, регистры, подписки на события и дополнения форм делаются в расширении конфигурации. Обновление ERP тогда не превращается в ручное сравнение.
  3. Отдельные роли. Не одна роль «Транспорт», а раздельные права: работа с полисами, утверждение путевых листов, установка тарифов.
  4. Автоматизация вместо напоминаний на бумаге: регламентные задания для контроля сроков, автозаполнение из предыдущих документов.
  5. Сквозная связь с продажами, складом и затратами, а не изолированный модуль.

Пример 1. Контроль сроков документов ТС

Допустим, в расширении есть регистр сведений СрокиДокументовТС с измерениями ТранспортноеСредство и ВидДокумента (перечисление: ОСАГО, диагностическая карта) и ресурсом ДействуетДо. Регламентное задание раз в день выбирает документы, срок которых истекает в ближайшие 30 дней.

1С
// Обработчик регламентного задания «Контроль сроков документов ТС».
Процедура КонтрольСроковДокументовТС() Экспорт

	ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(
		Метаданные.РегламентныеЗадания.КонтрольСроковДокументовТС);

	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Сроки.ТранспортноеСредство КАК ТранспортноеСредство,
	|	Сроки.ВидДокумента КАК ВидДокумента,
	|	Сроки.ДействуетДо КАК ДействуетДо
	|ИЗ
	|	РегистрСведений.СрокиДокументовТС КАК Сроки
	|ГДЕ
	|	Сроки.ДействуетДо МЕЖДУ &Сегодня И &ГраницаКонтроля
	|
	|УПОРЯДОЧИТЬ ПО
	|	ДействуетДо";
	Запрос.УстановитьПараметр("Сегодня", НачалоДня(ТекущаяДатаСеанса()));
	Запрос.УстановитьПараметр("ГраницаКонтроля", КонецДня(ТекущаяДатаСеанса() + 30 * 86400));

	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		ТекстСообщения = СтрШаблон(НСтр("ru = '%1: %2 действует до %3'"),
			Выборка.ТранспортноеСредство, Выборка.ВидДокумента, Формат(Выборка.ДействуетДо, "ДЛФ=D"));
		ОтправитьУведомлениеОтветственному(Выборка.ТранспортноеСредство, ТекстСообщения);
	КонецЦикла;

КонецПроцедуры

ОтправитьУведомлениеОтветственному — ваша процедура: письмо, задача пользователю или сообщение в корпоративный мессенджер, в зависимости от того, где ответственные реально читают уведомления. Вызов ПриНачалеВыполненияРегламентногоЗадания из БСП обязателен в начале обработчика: он проверяет, можно ли выполнять задание в текущей базе.

Пример 2. Распределение стоимости рейса по заказам

Транспортная логистика в 1С:ERP: стоимость рейса распределяется между заказами
Транспортная логистика в 1С:ERP: стоимость рейса распределяется между заказами

Стоимость рейса делится между заказами пропорционально весу груза, умноженному на расстояние до точки доставки. Функция принимает таблицу значений с колонками Заказ, Вес, Расстояние и возвращает её с колонкой Сумма.

1С
// Распределяет стоимость рейса между заказами пропорционально весу и расстоянию.
//
// Параметры:
//  СтоимостьРейса - Число - сумма к распределению.
//  Грузы - ТаблицаЗначений - колонки Заказ, Вес, Расстояние.
//
// Возвращаемое значение:
//  ТаблицаЗначений - исходная таблица с заполненной колонкой Сумма.
//
Функция РаспределитьСтоимостьРейса(СтоимостьРейса, Грузы) Экспорт

	Грузы.Колонки.Добавить("Сумма", ОбщегоНазначения.ОписаниеТипаЧисло(15, 2));
	Грузы.Колонки.Добавить("Коэффициент", Новый ОписаниеТипов("Число"));

	Для Каждого Строка Из Грузы Цикл
		Строка.Коэффициент = Строка.Вес * Строка.Расстояние;
	КонецЦикла;

	Распределено = ОбщегоНазначения.РаспределитьСуммуПропорциональноКоэффициентам(
		СтоимостьРейса, Грузы.ВыгрузитьКолонку("Коэффициент"), 2);
	Если Распределено = Неопределено Тогда
		ВызватьИсключение НСтр("ru = 'Не удалось распределить стоимость: нулевые вес или расстояние.'");
	КонецЕсли;

	Для Индекс = 0 По Грузы.Количество() - 1 Цикл
		Грузы[Индекс].Сумма = Распределено[Индекс];
	КонецЦикла;

	Грузы.Колонки.Удалить("Коэффициент");
	Возврат Грузы;

КонецФункции

Функция БСП РаспределитьСуммуПропорциональноКоэффициентам сама разбрасывает копейки округления, поэтому сумма по строкам совпадает со стоимостью рейса. Писать собственный «доводчик» остатка не нужно.

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

Типичные ошибки

  • Новые реквизиты добавлены прямо в типовые документы основной конфигурации — каждое обновление ERP становится проектом.
  • Нормы ГСМ хранятся в реквизитах справочника без истории: после изменения нормы прошлые путевые листы пересчитываются по новой.
  • Распределение затрат на лету в отчёте: цифры «плавают» при изменении веса в карточке номенклатуры.
  • Одна роль на весь транспортный отдел — нельзя разделить ответственность за полисы и утверждение путевых листов.
  • Контроль сроков полисов через ежемесячную выгрузку в Excel вместо регламентного задания.

С чего начинать проект

Порядок, который я предлагаю заказчикам:

  1. Пройти типовой сценарий доставки ERP с логистами и бухгалтерией.
  2. Составить перечень отклонений: чего не хватает и почему это важно для денег или рисков.
  3. Оценить объём: несколько точечных доработок или полноценный модуль управления автопарком.
  4. Реализовать в расширении, начиная с того, что быстрее окупается: обычно контроль сроков и автоматическое списание ГСМ.

Если ERP ещё только внедряется, логистику лучше закладывать в проект внедрения 1С:ERP сразу, а не дорабатывать после запуска. Точечные задачи на работающей системе решаются в рамках доработки 1С.

Итог

  • Типовая транспортная логистика 1С:ERP закрывает доставку: транспортные средства, распоряжения, поручения экспедитору и задания на перевозку.
  • Учёт автопарка — путевые листы, ГСМ, страховки, техосмотры — добавляется доработкой или отраслевым продуктом.
  • Нормы и тарифы храните в периодических регистрах сведений, пробег и расход — в регистрах накопления.
  • Доработки делайте в расширении и с раздельными ролями.
  • Распределение стоимости рейса фиксируйте документом, используя функции БСП для корректного округления.