Проблема накопления мелких неликвидных отрезков — ткани, труб или кабеля — является классической задачей складской логистики и математики, известной как «Задача об одномерном раскрое». Если резать материал без предварительного планирования, на складе неизбежно копятся куски, которые невозможно продать или использовать в производстве. В этой статье мы проанализируем ситуацию и разберем методы минимизации таких потерь.
Прежде чем приступать к сложным вычислениям, рассмотрим базовые правила организации работы склада. Часто проблема избытка остатков кроется в нарушении последовательности действий кладовщика. Разберем по шагам правильный алгоритм работы:
Проанализируем ситуацию, когда у нас есть длинный список заказов разной длины и несколько бухт. Чтобы минимизировать отходы, необходимо использовать математические методы оптимизации. Рассмотрим популярные подходы:
Алгоритм «Первого подходящего» (First Fit Decreasing): Суть метода заключается в предварительной сортировке всех заказов от самого длинного к самому короткому. Сначала мы берем самый большой заказ и «примеряем» его к имеющимся остаткам. Мелкие заказы в этой системе выполняют роль «заполнителей» пустот, которые остаются после крупных отрезов.
Если задача требует высокой точности (например, при нарезке дорогостоящего кабеля или стальных труб), рекомендуется использовать специализированное ПО для 1D-раскроя, которое интегрируется с 1С. Такие программы перебирают тысячи комбинаций, чтобы суммарный остаток по всем бухтам стремился к нулю.
Выясним, какие инструменты платформы 1С:Предприятие помогают автоматизировать этот процесс. Для эффективного управления отрезками необходимо использовать серийный учет.
Каждому отдельному куску (рулону, бухте, отрезку) присваивается уникальный серийный номер, в свойствах которого указывается текущая длина. Рассмотрим, как это работает в типовых конфигурациях (ERP, УНФ, КА):
Мерный товар. Это заставит систему при проведении складских операций запрашивать точный метраж.Посмотрим на пример логики списания, которую можно реализовать программно:
// Пример логики подбора подходящего отрезка
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СвободныеОстатки.Серия КАК Отрезок,
| СвободныеОстатки.КоличествоОстаток КАК Длина
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Номенклатура = &Номенклатура) КАК СвободныеОстатки
|ГДЕ
| СвободныеОстатки.КоличествоОстаток >= &ТребуемаяДлина
|УПОРЯДОЧИТЬ ПО
| СвободныеОстатки.КоличествоОстаток ВОЗРАСТАНИЕМ"; // Ищем минимально подходящий кусок
Если минимизировать остатки до нуля не удается, проанализируем способы их реализации, чтобы они не замораживали оборотные средства:
Таким образом, эффективная работа с бухтовым товаром требует сочетания строгого серийного учета, использования алгоритмов подбора и гибкой коммерческой политики в отношении неизбежных остатков.