Как обойти ограничение «Один и тот же товар не может являться и комплектом, и комплектующей одновременно» в 1С:УТ 11 и ERP?

Бизнес-аналитик 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет Торговля и дистрибуция
← На главную

При работе в программах 1С:Управление торговлей 11, 1С:Комплексная автоматизация и 1С:ERP Управление предприятием пользователи часто сталкиваются с ошибкой при проведении документа Сборка (разборка) товаров. Система выдает жесткое предупреждение: «Один и тот же товар не может являться и комплектом, и комплектующей одновременно».

Особенно остро эта проблема встает на предприятиях пищевой промышленности (например, при разделке мясной продукции), химической отрасли или при разукомплектации сложной номенклатуры. В этой статье мы подробно разберем, почему разработчики фирмы 1С добавили это жесткое ограничение, к каким критическим последствиям приведет его отключение «в лоб» через доработку кода и какими методологически правильными способами можно решить эту задачу.

Выясним причину: зачем разработчики ввели это ограничение?

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

Рассмотрим подробнее три главные причины существования этого запрета:

  1. Циклические ссылки при расчете себестоимости («петли себестоимости»). Расчет себестоимости в современных конфигурациях 1С выполняется в конце месяца с использованием сложных математических алгоритмов (решение систем линейных уравнений в РАУЗ). Если программа видит, что товар списывается сам на себя в рамках одной хозяйственной операции (так называемый «выпуск хлеба из хлеба» или встречный выпуск), возникает циклическая зависимость. Алгоритм расчета себестоимости упирается в бесконечный цикл. В лучшем случае система выдаст ошибку сходимости и прекратит расчет, в худшем — мы получим нулевую или «космическую» себестоимость на выходе.
  2. Конфликт в механизме партионного учета и видов запасов. Вся логика списания товаров базируется на регистре РегистрНакопления.ВидыЗапасов. Когда один и тот же товар выступает одновременно и донором, и получателем стоимости в рамках одного документа, система не может корректно сопоставить партию списания (расход) и партию поступления (приход). Это полностью ломает партионный учет по методу ФИФО.
  3. Складское предназначение документа. Документ Сборка (разборка) товаров по своей сути является простым складским инструментом. Он предназначен для элементарных операций (например, объединить стол и четыре стула в один комплект «Обеденная группа» или наоборот). Этот документ изначально не оснащен сложным математическим аппаратом распределения затрат, который есть в производственном блоке.

Что произойдет, если снять ограничение программным путем?

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


// Пример концептуальной проверки в типовом решении
Для Каждого СтрокаТаблицы Из Товары Цикл
    Если СтрокаТаблицы.Номенклатура = НоменклатураКомплекта Тогда
        ВызватьИсключение "Один и тот же товар не может являться и комплектом, и комплектующей одновременно!";
    КонецЕсли;
КонецЦикла;

Если мы отключим эту проверку, документ запишется и проведется по складу без видимых проблем. Однако все неприятности начнутся в конце отчетного периода при выполнении регламентной операции «Закрытие месяца». Мы гарантированно столкнемся со следующими последствиями:

Поэтому снимать данное ограничение программно категорически не рекомендуется. Давайте разберем три безопасных и методологически верных решения.

Решение №1. Использование характеристик с обособлением себестоимости

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

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

  1. Перейдем в настройки вида номенклатуры и включим использование характеристик.
  2. Создадим необходимые характеристики (например: Полутуша (сырье) и Кусок (разделка)).
  3. Важный шаг: в настройках учетной политики или в карточке номенклатуры (в зависимости от версии конфигурации) обязательно установим флаг «Обособленный учет себестоимости по характеристикам».

Благодаря включению обособленного учета, система при расчете себестоимости будет разделять затраты по каждой характеристике отдельно, как если бы это были разные товары. В документе Сборка (разборка) товаров в качестве комплекта мы укажем товар с характеристикой Кусок (разделка), а в качестве комплектующей — тот же товар, но с характеристикой Полутуша (сырье). Программа проведет документ без ошибок, а себестоимость рассчитается корректно.

Решение №2. Использование производственного функционала (для ERP и КА)

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

Посмотрим на пример решения задачи через производство без заказа:

  1. Создадим документ Производство без заказа.
  2. На вкладке «Продукция» укажем полученный кусок мяса (нашу целевую номенклатуру).
  3. На вкладке «Материалы и работы» укажем исходный кусок мяса (ту же самую номенклатуру), который пошел в переработку.
  4. Укажем долю стоимости для распределения затрат, если на выходе мы получаем несколько видов продукции из одного сырья.

Производственный модуль 1С изначально спроектирован с учетом возможности «встречного выпуска» и возвратных отходов. Математический аппарат распределения затрат в производстве легко справляется с такими циклами, корректно рассчитывая итоговую стоимость выпускаемой продукции.

Решение №3. Разделение карточек номенклатуры в справочнике

Классический и самый надежный способ ведения учета, который исключает любые ошибки пользователей и сбои системы — это четкое разделение номенклатурных позиций на уровне справочника.

Вместо того чтобы пытаться отразить весь процесс на одной карточке «Мясо», мы создаем логическую цепочку элементов:

Этот подход имеет множество преимуществ:

  1. Операторам склада и менеджерам по продажам гораздо проще ориентироваться в остатках, исключается путаница при подборе товаров в документы.
  2. Руководство получает прозрачную аналитику по выходу готовой продукции. Мы всегда можем построить отчет и увидеть, сколько именно килограммов готовой продукции Мясо (кусок) получилось из исходного объема сырья Мясо (полутуша), а также оперативно рассчитать процент технологических потерь при разделке.

При таком подходе документ Сборка (разборка) товаров отработает моментально, без каких-либо коллизий в партионном учете.

← На главную