При работе в программах 1С:Управление торговлей 11, 1С:Комплексная автоматизация и 1С:ERP Управление предприятием пользователи часто сталкиваются с ошибкой при проведении документа Сборка (разборка) товаров. Система выдает жесткое предупреждение: «Один и тот же товар не может являться и комплектом, и комплектующей одновременно».
Особенно остро эта проблема встает на предприятиях пищевой промышленности (например, при разделке мясной продукции), химической отрасли или при разукомплектации сложной номенклатуры. В этой статье мы подробно разберем, почему разработчики фирмы 1С добавили это жесткое ограничение, к каким критическим последствиям приведет его отключение «в лоб» через доработку кода и какими методологически правильными способами можно решить эту задачу.
На первый взгляд кажется, что если мы ведем учет по сериям и характеристикам, то при разделке условной полутуши на выходе мы получаем хотя и ту же номенклатуру, но с другой серией и другим весом. Следовательно, ключи аналитики учета номенклатуры в регистрах будут отличаться, и путаницы возникнуть не должно. Однако на уровне архитектуры платформы все обстоит гораздо сложнее.
Рассмотрим подробнее три главные причины существования этого запрета:
РегистрНакопления.ВидыЗапасов. Когда один и тот же товар выступает одновременно и донором, и получателем стоимости в рамках одного документа, система не может корректно сопоставить партию списания (расход) и партию поступления (приход). Это полностью ломает партионный учет по методу ФИФО.Сборка (разборка) товаров по своей сути является простым складским инструментом. Он предназначен для элементарных операций (например, объединить стол и четыре стула в один комплект «Обеденная группа» или наоборот). Этот документ изначально не оснащен сложным математическим аппаратом распределения затрат, который есть в производственном блоке.У многих разработчиков возникает соблазн обойти проверку с помощью расширения конфигурации. Типовой код проверки в модуле менеджера или модуле объекта документа выглядит примерно так:
// Пример концептуальной проверки в типовом решении
Для Каждого СтрокаТаблицы Из Товары Цикл
Если СтрокаТаблицы.Номенклатура = НоменклатураКомплекта Тогда
ВызватьИсключение "Один и тот же товар не может являться и комплектом, и комплектующей одновременно!";
КонецЕсли;
КонецЦикла;
Если мы отключим эту проверку, документ запишется и проведется по складу без видимых проблем. Однако все неприятности начнутся в конце отчетного периода при выполнении регламентной операции «Закрытие месяца». Мы гарантированно столкнемся со следующими последствиями:
Себестоимость товаров из-за бесконечного цикла пересчета партий.Поэтому снимать данное ограничение программно категорически не рекомендуется. Давайте разберем три безопасных и методологически верных решения.
Проанализируем ситуацию: если мы не хотим создавать дубли карточек номенклатуры в справочнике, мы можем разделить исходное сырье и готовую продукцию с помощью механизма характеристик.
Для того чтобы система воспринимала характеристики как разные финансовые сущности, необходимо выполнить следующие настройки:
Полутуша (сырье) и Кусок (разделка)).Благодаря включению обособленного учета, система при расчете себестоимости будет разделять затраты по каждой характеристике отдельно, как если бы это были разные товары. В документе Сборка (разборка) товаров в качестве комплекта мы укажем товар с характеристикой Кусок (разделка), а в качестве комплектующей — тот же товар, но с характеристикой Полутуша (сырье). Программа проведет документ без ошибок, а себестоимость рассчитается корректно.
Если на вашем предприятии внедрена система 1С:ERP или 1С:Комплексная автоматизация, то использовать складской документ сборки для разделки сырья методологически неверно. Для этих целей в системе спроектирован полноценный производственный блок.
Посмотрим на пример решения задачи через производство без заказа:
Производство без заказа.Производственный модуль 1С изначально спроектирован с учетом возможности «встречного выпуска» и возвратных отходов. Математический аппарат распределения затрат в производстве легко справляется с такими циклами, корректно рассчитывая итоговую стоимость выпускаемой продукции.
Классический и самый надежный способ ведения учета, который исключает любые ошибки пользователей и сбои системы — это четкое разделение номенклатурных позиций на уровне справочника.
Вместо того чтобы пытаться отразить весь процесс на одной карточке «Мясо», мы создаем логическую цепочку элементов:
Мясо (сырье / полутуша) — используется только для закупки и хранения на складе сырья;Мясо (кусок / разделка) — используется для складских остатков готовой к продаже продукции.Этот подход имеет множество преимуществ:
Мясо (кусок) получилось из исходного объема сырья Мясо (полутуша), а также оперативно рассчитать процент технологических потерь при разделке.При таком подходе документ Сборка (разборка) товаров отработает моментально, без каких-либо коллизий в партионном учете.