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