Работа с прослеживаемыми товарами в 1С:УПП представляет собой сложную задачу из-за того, что механизм был добавлен в уже существующую «тяжелую» архитектуру. Разберем, как устроены эти процессы, почему возникают вопросы к регистрам и как анализировать типовые алгоритмы.
Один из частых вопросов разработчиков касается того, зачем в запросах ищется разница между данными основания и уведомлениями. Рассмотрим пример логики, которая встречается в коде:
ВЫБОР
КОГДА ТаблицаТоваровПоОснованию.Количество - ЕСТЬNULL(ТаблицаТоваровПоУведомлениям.Количество, 0) < 0
ТОГДА 0
ИНАЧЕ ТаблицаТоваровПоОснованию.Количество - ЕСТЬNULL(ТаблицаТоваровПоУведомлениям.Количество, 0)
КОНЕЦ КАК Количество,
ВЫБОР
КОГДА ТаблицаТоваровПоОснованию.Количество - ЕСТЬNULL(ТаблицаТоваровПоУведомлениям.Количество, 0) < 0
ТОГДА 0
ИНАЧЕ ТаблицаТоваровПоОснованию.Сумма - ЕСТЬNULL(ТаблицаТоваровПоУведомлениям.Сумма, 0)
КОНЕЦ КАК Сумма
Данная конструкция используется для предотвращения записи отрицательных значений в регистры. Суть проста: система проверяет, сколько товара было заявлено в документе-основании, и вычитает из него количество, по которому уведомление уже было сформировано. Если получается отрицательное число, значит, произошла ошибка или несоответствие данных, поэтому система принудительно обнуляет показатели. Это критически важно для корректного формирования отчетности в ФНС.
В конфигурации 1С:УПП основную роль играют два типа регистров:
Проанализируем основные проблемы, с которыми сталкиваются разработчики при работе с этими данными:
Для того чтобы разобраться в процессах прослеживаемости в вашей нетиповой конфигурации, воспользуйтесь следующими шагами:
РНПТ, с вашим кодом.РНПТ остается «активным» после того, как товар продан и подтвержден, это приведет к ошибкам в отчетах.Помните, что прослеживаемость — это в первую очередь статистический учет для налоговой службы. Ваша задача как разработчика — обеспечить соответствие данных в регистрах фактическим движениям товара. Если вы видите, что типовой механизм выдает ошибку, не пытайтесь «заплатать» её локально — анализируйте цепочку движений от документа ВвозТоваровИзЕАЭС или ИнвентаризацияТоваров до финальной реализации.
Разбирая логику работы, всегда задавайте вопрос: «Должен ли этот товар сейчас отражаться в остатках по РНПТ?». Если ответ «нет», а в регистре он есть, значит, алгоритм проведения документа списания или корректировки содержит дефект, требующий вмешательства в модули проведения.