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