Мы с вами столкнулись с распространенной, но непростой задачей: как организовать учет листового металла в 1С:ERP 2.5, когда листы имеют произвольную длину и ширину, а также различаются по цвету, покрытию и производителю? Дополнительную сложность добавляет необходимость продавать материал в квадратных метрах, закупать его в штуках определенных размеров и учитывать планы по запуску собственного производства. Давайте вместе разберем эту ситуацию и найдем оптимальные решения.
Представьте себе, что длина и ширина могут варьироваться от 30 мм до 5000 мм с шагом в 1 мм, плюс еще цвет, покрытие и производитель. Если мы будем создавать отдельную позицию номенклатуры для каждого такого сочетания, наш справочник разрастется до невероятных размеров, потенциально до миллиарда вариантов. Это, очевидно, неприемлемо для удобной работы и эффективного учета.
Вместо того чтобы плодить номенклатуру, мы предлагаем использовать стандартный механизм 1С:ERP — Характеристики номенклатуры. Этот подход позволяет значительно сократить количество элементов в справочнике и при этом сохранить всю необходимую информацию о каждом листе.
Номенклатура одну общую позицию, например, "Лист металлический" или "Лист кровельный".Цвет (например, "RAL 7024")Покрытие (например, "Полиэстер", "Пурал")Производитель (например, "Северсталь")Толщина (например, "0.5 мм")Важный момент: Длину и ширину листа мы пока не включаем в характеристики, потому что они произвольные и будут задаваться непосредственно в документах.
Виды номенклатуры: Для удобства управления наборами характеристик, рекомендуем использовать Виды номенклатуры. Мы можем создать вид номенклатуры "Листовой металл" и настроить, какие именно характеристики будут доступны для товаров этого вида. Это упрощает ввод данных и предотвращает ошибки, а в случае изменения настроек вам поможет актуализация реквизитов номенклатуры по виду номенклатуры.Таким образом, вместо тысяч или миллионов позиций, у нас будет одна номенклатурная позиция "Лист металлический" с разнообразными характеристиками, покрывающими все типовые признаки.
Одной из ключевых сложностей является необходимость продавать материал в квадратных метрах (м²), но при этом учитывать его физически как листы определенной длины и ширины. Стандартные коэффициенты пересчета в карточке номенклатуры, которые предполагают фиксированное соотношение между единицами (например, 1 лист = 2,5 м²), здесь не подходят, так как размеры листов произвольны. Более подробно проблемы и решения для товаров с плавающим коэффициентом описаны в нашей отдельной статье.
Давайте рассмотрим, как правильно настроить единицы измерения:
Единица хранения: Для основной единицы складского учета, инвентаризации и отпуска в производство, мы рекомендуем использовать "штуки" (листы). Это наиболее удобно для физического контроля и пересчета на складе.Единица для отчетов: Для аналитики и формирования сводных данных, а также для ценообразования, мы можем настроить "м²" (квадратные метры) как дополнительную "единицу для отчетов". Однако, она не будет использоваться напрямую в документах для ввода количества, поскольку мы еще не знаем площадь каждого конкретного листа.Поскольку стандартные коэффициенты пересчета не работают с произвольными размерами, нам потребуется доработка системы для автоматического расчета площади непосредственно в документах.
Самое практичное и часто применяемое решение для учета произвольных размеров — это доработка табличных частей документов. Существуют готовые расширения для динамического расчета площади и веса, которые позволяют внедрить этот функционал без сложного программирования. Мы с вами добавим необходимые поля для ввода длины и ширины, а система будет автоматически рассчитывать площадь.
Мы предлагаем добавить в табличные части основных документов следующие колонки:
ДлинаЛиста (тип число, например, с точностью до миллиметров)ШиринаЛиста (тип число, например, с точностью до миллиметров)Площадь (тип число, будет рассчитываться автоматически)Эти колонки позволят менеджерам указывать требуемые размеры листов непосредственно при оформлении. Например, для этих целей можно использовать расширения, добавляющие вес, объем и площадь в документ "Заказ клиента" или аналогичный функционал, выводящий вес, объем и площадь в документ "Реализация товаров и услуг". О том, как это сделать, не снимая конфигурацию с поддержки, можно прочитать в инструкции по добавлению колонок через расширения.
Для автоматического расчета площади нам потребуется небольшая программная доработка. Мы реализуем обработчик события, который будет срабатывать при изменении значений в колонках ДлинаЛиста или ШиринаЛиста. Этот обработчик будет пересчитывать значение в колонке Площадь.
Как это будет работать:
Заказе клиента менеджер указывает, например, "Лист металлический" (с нужными характеристиками), а затем в дополнительных колонках вводит "Длина: 2500 мм", "Ширина: 1250 мм". Система автоматически рассчитывает площадь (2.5 * 1.25 = 3.125 м²) и использует ее для расчета стоимости по цене за м². Такой подход открывает возможности для гибкого ценообразования на основе вычисляемых параметров.Заказе поставщику мы будем указывать конкретные длины и ширины листов, которые нам необходимо закупить, а рабочее место отдела закупок с ценами предыдущих поставок поможет проконтролировать выгодность сделки.Давайте посмотрим на пример концептуального кода, который можно использовать в расширении или доработанном модуле формы документа:
// Предположим, что мы находимся в модуле формы документа
// и работаем с табличной частью "Товары"
// и у нас есть колонки "ДлинаЛиста", "ШиринаЛиста", "Площадь"
// Обработчик события "ПриИзменении" для полей "ДлинаЛиста" или "ШиринаЛиста"
Процедура ТоварыДлинаЛистаПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если ТекущаяСтрока <> Неопределено Тогда
РассчитатьПлощадьСтроки(ТекущаяСтрока);
КонецЕсли;
КонецПроцедуры
Процедура ТоварыШиринаЛистаПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если ТекущаяСтрока <> Неопределено Тогда
РассчитатьПлощадьСтроки(ТекущаяСтрока);
КонецЕсли;
КонецПроцедуры
Процедура РассчитатьПлощадьСтроки(СтрокаТабличнойЧасти)
Если СтрокаТабличнойЧасти.ДлинаЛиста > 0 И СтрокаТабличнойЧасти.ШиринаЛиста > 0 Тогда
// Делим на 1000000, чтобы перевести мм в м2 (Длина * Ширина / 1000 / 1000)
СтрокаТабличнойЧасти.Площадь = СтрокаТабличнойЧасти.ДлинаЛиста * СтрокаТабличнойЧасти.ШиринаЛиста / 1000000;
Иначе
СтрокаТабличнойЧасти.Площадь = 0;
КонецЕсли;
КонецПроцедуры
Такая доработка позволит гибко работать с произвольными размерами, обеспечивая при этом автоматический расчет площади для ценообразования и учета.
Мы выяснили, что ваше предприятие планирует запуск собственного производства. В этом случае, особо важным становится учет раскроя листового материала. Это не просто списание материала, а сложный процесс оптимизации использования сырья, для которого может потребоваться оперативный анализ списания запасов и продаж с расчетом себестоимости без необходимости ждать закрытия месяца.
Для эффективного управления раскроем, стандартными средствами 1С:ERP часто бывает недостаточно. Мы можем рассмотреть интеграцию со специализированными внешними обработками или модулями, предназначенными для автоматизации учета раскроя и делового остатка. Такие решения позволяют:
Это критически важно для сокращения издержек и повышения эффективности производства.
При раскрое листового металла часто остаются так называемые "деловые обрезки" (reusable scraps) — куски, которые слишком малы для текущего заказа, но достаточно велики, чтобы быть использованными в будущем. Мы можем организовать их учет следующим образом:
Серий, если это применимо, для учета каждой конкретной обрезки с ее уникальными параметрами. Такой подход подробно описан в инструкции по организации учета мерного товара с помощью характеристик и серий.Такой подход позволяет не выбрасывать ценные остатки, а эффективно использовать их в последующем производстве.
При работе с листовым металлом часто возникает вопрос: в чем вести учет — в штуках или килограммах? Компания "1С" обычно рекомендует вести учет листов в штуках, а при необходимости пересчитывать их в килограммы.
Однако, мы должны проанализировать ситуацию: фактический вес листов может варьироваться от партии к партии и даже внутри одной партии из-за допусков по толщине и плотности материала. Это может приводить к расхождениям при попытке вести строгий учет в килограммах. Чтобы своевременно находить такие расхождения, рекомендуем использовать отчет для сравнения товаров на складах и товаров организаций, который особенно полезен при ордерной схеме учета.
Наш вывод: Учет в штуках (листах) обычно более точен для физического контроля и инвентаризации на складе. Но при этом нам потребуется разработать дополнительные механизмы для:
В целом, для эффективного учета листового материала в 1С:ERP 2.5 при наличии произвольных размеров и планов по запуску производства, нам необходимо комбинировать стандартный функционал (характеристики, единицы измерения) с грамотными доработками для динамического расчета площади и, возможно, интеграцией со специализированными модулями для раскроя и учета отходов. Такой комплексный подход позволит нам построить гибкую и точную систему учета.