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

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

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

Почему возникает это ограничение: анализируем логику системы

Первым делом выясним причину такого жесткого запрета. В более старых версиях, например в УТ 10.3, подобные операции были допустимы, но современная архитектура программ 1С предъявляет более строгие требования к данным. Основная причина кроется в алгоритме расчета себестоимости.

Проанализируем ситуацию: программа рассчитывает себестоимость методом решения системы линейных уравнений (СЛУ). Если товар «А» состоит из товара «А» и дополнительных деталей «Б», возникает циклическая ссылка. Стоимость «выхода» напрямую зависит от стоимости «входа». При закрытии месяца это может привести к бесконечной рекурсии или ошибке «Обнаружен цикл в графе затрат». Система просто не понимает, какую первичную стоимость взять за основу, так как объект учета один и тот же.

Кроме того, рассмотрим аспект складского учета. Если у вас на складе лежит 10 штук «Оборудования 1», и вы делаете сборку, где из 1 штуки «Оборудования 1» получается 1 штука «Оборудования 1» (но с добавлением уголков), то для системы количество не меняется, а стоимость должна вырасти. Однако аналитика учета (номенклатура, склад) остается прежней, что создает сложности при подборе партий по методу ФИФО.

Способ 1: Использование характеристик (Рекомендуемый метод)

Если нам необходимо сохранить одну карточку номенклатуры в справочнике (чтобы не плодить тысячи похожих позиций), оптимальным решением будет использование характеристик. Разберем по шагам, как это настроить:

  1. Включим использование характеристик для данного вида номенклатуры (или конкретной карточки).
  2. Создадим несколько характеристик, отражающих состояние товара. Например: Базовая комплектация и Полная комплектация (с уголками).
  3. В документе Сборка (разборка) товаров укажем в поле «Товар» номенклатуру с характеристикой Полная комплектация, а в табличной части комплектующих — ту же номенклатуру, но с характеристикой Базовая комплектация.

Почему это работает: С точки зрения системы 1С, комбинация «Номенклатура + Характеристика» — это разные ключи аналитики. Цикл разрывается, так как стоимость перетекает с одного объекта учета на другой. Это позволяет корректно рассчитать себестоимость, добавить стоимость «Уголков» к стоимости «Оборудования» и при этом не создавать новую карточку в справочнике.

Способ 2: Работа через «Качество» и «Порчу товаров»

Рассмотрим ситуацию с разборкой сложного оборудования, например, вертолета или автомобиля, когда мы снимаем запчасть, но само изделие остается тем же самым. Если характеристики по каким-то причинам использовать неудобно, можно применить механизм изменения качества.

Проанализируем этот сценарий: мы можем использовать документ Порча товаров (который по сути является пересортицей по качеству). Товар «Вертолет» с качеством Новый превращается в «Вертолет» с качеством Б/У или Разукомплектован. После этого через документ Сборка (разборка) мы можем «дособрать» его или, наоборот, отразить снятие комплектующих. Хотя этот метод чаще применяется для брака, в управленческом учете он помогает разделить состояния одного и того же объекта.

Способ 3: Программное отключение контроля (Для разработчиков)

Как показывают обсуждения опытных специалистов, в версиях УТ 11.5.12 и выше программное отключение этой проверки через расширение часто не приводит к фатальным ошибкам при закрытии месяца. Если бизнес-процесс требует именно такого поведения, и вы готовы взять на себя риски, можно внести изменения.

Посмотрим на пример того, как найти это ограничение. Проверка обычно располагается в модуле менеджера документа СборкаТоваров или в обработке проверки заполнения. Найдем фрагмент кода, отвечающий за сравнение комплектующих с основным товаром:


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

Для обхода создадим расширение и используем аннотацию &Вместо или &Перед для метода ОбработкаПроверкиЗаполнения. Однако помните: перед внедрением этого решения обязательно проведите тестовое закрытие месяца на копии базы. Нужно убедиться, что регистр Себестоимость товаров закрылся без остатков по количеству с нулевой стоимостью и без «зависших» сумм. Если при закрытии месяца все же возникнут ошибки учета, можно воспользоваться обработкой для выравнивания отрицательных остатков товаров организации.

Сценарий с кабельной продукцией и бухтами

Разберем еще один частый случай: бухта кабеля 5000 метров, которую нужно разделить на несколько бухт по 1000 метров. Здесь товар один и тот же, и создавать новую номенклатуру под каждый метраж — безумие.

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

Резюме и выводы

Подводя итог, можно сказать, что ограничение 1С — это не просто каприз разработчиков, а защита финансового результата компании от математических ошибок. Рассмотрим краткий алгоритм выбора решения:

Помните, что правильная методология учета в 1С:УТ 11 всегда строится на уникальности ключа аналитики. Соблюдая это правило, вы избавите себя от проблем с регламентированной отчетностью и расчетом валовой прибыли в будущем.

← На главную