В процессе автоматизации пищевых производств, особенно в мясной промышленности, специалисты часто сталкиваются со специфической задачей — деконструкцией сырья. В отличие от классического машиностроения или сборки мебели, где из множества комплектующих создается одно изделие, в мясопереработке происходит обратный процесс. Из одной единицы сырья (например, свиной или говяжьей туши) на выходе получается широкий ассортимент готовой продукции: вырезка, окорок, грудинка, ребрышки, а также сопутствующие материалы — кости, жир, шкуры и субпродукты.
В этой статье мы подробно разберем, как правильно отразить операцию разруба (обвалки) туши в программе 1С:Управление нашей фирмой (1С:УНФ), настроить спецификации, корректно распределить себестоимость на полученные части и решить проблему с автоматическим расчетом потребностей под заказы покупателей.
Для решения задачи деконструкции сырья в 1С:УНФ используется стандартная операция «Разборка». Давайте проанализируем ситуацию: нам необходимо из одного объекта получить множество других. С точки зрения системы, исходная туша будет являться разбираемым сырьем, а получаемые части — результатом разборки.
Рассмотрим по шагам, как правильно настроить спецификацию для такого процесса:
Номенклатура и найдем нашу исходную позицию (например, «Туша свиная полужирная»).Продукция указываем саму разбираемую позицию — «Туша свиная полужирная».Тип операции (если оно доступно в вашей версии) или непосредственно в документе выпуска мы будем использовать вид операции «Разборка».Материалы. Именно здесь кроется главное отличие от классического производства. Нам необходимо перечислить все позиции, которые получаются в результате разруба этой туши, и указать их нормативный выход.Заполним табличную часть спецификации (вкладку «Материалы») для условной туши весом 100 кг:
Если мы просто проведем документ разборки, программа столкнется с проблемой: как распределить финансовую стоимость исходной туши между полученными материалами? Очевидно, что 1 кг ценнейшей вырезки не может стоить столько же, сколько 1 кг суповой кости или жира-сырца.
Для решения этой проблемы в 1С:УНФ предусмотрен крайне важный механизм — Доля стоимости. Нам необходимо вручную задать коэффициенты ценности для каждой получаемой позиции в спецификации или в самом документе выпуска:
0.5 (50% стоимости туши уйдет на этот объем);0.3 (30%);0.12 (12%);0.06 (6%);0.02 (2%);0 (0%). В этом случае стоимость усушки и отходов автоматически распределится на полезный выход, увеличив себестоимость коммерческого мяса.При проведении документа «Производство» с операцией «Разборка» и последующем закрытии месяца программа возьмет накопленную себестоимость исходной туши и распределит ее на выпущенные части строго пропорционально указанным долям стоимости.
Рассмотрим, как оформляется фактический разруб на складе. Для этого мы создаем документ Производство:
Операция обязательно выбираем значение «Разборка».Продукция указываем разбираемую тушу, ее количество и выбранную ранее спецификацию разборки.Заполнить по спецификации.Материалы автоматически появится весь список получаемой мясной продукции.Важный нюанс («Крестьянский забой» vs Калиброванное сырье): На практике вес получаемых частей от туши к туше всегда колеблется. Спецификация в 1С:УНФ служит лишь нормативом для быстрого заполнения. После фактической обвалки технолог или кладовщик должен взвесить реальный выход и скорректировать количество в табличной части «Материалы» вручную в соответствии с показаниями весов. Для анализа отклонений фактического выхода от нормативов можно использовать отчет для контроля расхождений выпуска и спецификаций в 1С:УНФ.
Основная сложность, с которой сталкиваются пользователи 1С:УНФ при такой схеме — это расчет потребностей в запасах. Стандартная система планирования в УНФ работает по принципу «от заказа к производству». Когда клиент заказывает 50 кг «Вырезки свиной», программа анализирует ее спецификацию. Но у вырезки нет спецификации «сборки», так как мы ее не собираем из компонентов! Из-за этого система не понимает, что для обеспечения заказа на вырезку необходимо закупить целые туши.
Выясним, какими путями можно решить эту проблему в стандартной конфигурации без доработок кода.
Для конечной продукции (например, «Вырезка свиная») мы можем создать спецификацию с типом операции «Сборка». В качестве материала для получения 1 кг вырезки мы указываем «Тушу свиную» в дробном количестве (например, 0.10 туши на 1 кг выпуска).
При запуске обработки «Расчет потребностей» система увидит эту связь и сформирует виртуальную потребность в тушах. Однако этот метод имеет существенный минус: реальный выход продукции из туш крайне вариативен, поэтому нормативные остатки сырья на складах будут постоянно расходиться с фактическими, требуя регулярных корректировок.
Многие успешные предприятия мясопереработки отказываются от поштучного планирования под каждый чих покупателя и переходят на планирование «от закупаемого сырья»:
Заказ на производство с операцией «Разборка» на планируемое количество туш (например, 15 штук).Если ваше производство растет, объемы увеличиваются, а ручной ввод долей стоимости и корректировка веса при обвалке отнимают слишком много времени, стоит рассмотреть специализированные отраслевые решения на базе УНФ (например, модули для общепита или пищевого производства).
В таких решениях реализован полноценный документ Заказ на разделку, который умеет автоматически транслировать потребность в кусковом мясе в объем необходимого к закупке живого веса или полутуш, а также содержит удобные рабочие места для интеграции с конвейерными весами.
Для понимания масштаба возможной кастомизации приведем пример концептуального кода, который разработчики используют для автоматизации расчета сырья при разделке на основе зарегистрированных заказов клиентов:
// Пример упрощенного алгоритма расчета необходимого сырья
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПокупателяЗапасы.Номенклатура КАК ГотоваяПродукция,
| Сумма(ЗаказПокупателяЗапасы.Количество) КАК КоличествоВЗаказе
|ИЗ
| Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы
|ГРУППИРОВАТЬ ПО
| ЗаказПокупателяЗапасы.Номенклатура";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
// Проверяем наличие связи номенклатуры с сырьем через регистр сведений или доп. свойства
КоэффициентВыхода = ПолучитьКоэффициентВыхода(Выборка.ГотоваяПродукция);
Если КоэффициентВыхода > 0 Тогда
НеобходимыйОбъемТуш = Выборка.КоличествоВЗаказе / КоэффициентВыхода;
ЗаписатьПотребностьВЗакупке(Справочники.Номенклатура.НайтиПоНаименованию("Туша свиная"), НеобходимыйОбъемТуш);
КонецЕсли;
КонецЦикла;
Подводя итог, можно утверждать, что стандартный функционал 1С:УНФ вполне позволяет вести детальный и качественный учет разруба мясного сырья. Главное — правильно использовать инструмент «Разборка», не забывать о долях стоимости для корректного расчета себестоимости и выбрать наиболее подходящую для вашей бизнес-модели схему планирования закупок.