Как исправить проведение корректировки реализации прошлого периода прошлым периодом в НУ в 1С:УПП 1.3

Программист 1С v8.3 (Обычные формы) Налоговый учет
← На главную

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

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

Выясняем причину: почему УПП разделяет БУ и НУ при корректировках

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

  1. Корректировка в сторону увеличения (доплата): ведет к занижению налоговой базы и суммы налога в прошлом периоде. В этом случае налогоплательщик обязан пересчитать налоговую базу именно за тот период, в котором была совершена исходная отгрузка. Проводки в НУ прошлым периодом здесь технически и методологически необходимы, так как требуется подача уточненной декларации по налогу на прибыль.
  2. Корректировка в сторону уменьшения (скидка, возврат, уценка): не приводит к занижению налога в прошлом периоде (налог был излишне уплачен). Закон разрешает отражать такие изменения в текущем налоговом периоде — в момент подписания соглашения или выявления факта изменения стоимости.

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

Интересно, что если корректируется количество товара (то есть происходит фактический возврат части ТМЦ), программа регистрирует поступление активов на склад текущей датой и не пытается лезть в закрытый период. Но как только корректировка затрагивает только стоимость (цену), алгоритм партионного учета пересчитывает финрезультат по дате реализации.

Ниже мы рассмотрим три варианта решения проблемы: от программного изменения логики проведения до стандартных методологических обходов.

Решение 1. Программная корректировка модуля (для разработчиков)

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

Нам потребуется изменить логику функции формирования проводок по налоговому учету в общем модуле УправлениеЗапасамиПартионныйУчет. Найдем процедуру, отвечающую за проведение корректировки реализации (в типовых конфигурациях это может быть метод ПроведениеКорректировкиРеализации или аналогичные вызовы формирования проводок по выручке).

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

Заменим стандартный вызов формирования проводок следующим блоком кода:


// Проверяем, закрыт ли прошлый период для БУ и выбрана ли операция согласованного изменения
Если ДокументОбъект.ОтчетностьПодписана И ДокументОбъект.ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.СогласованноеИзменение Тогда
    
    // Формируем проводки по собственной выручке текущей датой документа корректировки
    Документы.КорректировкаРеализации.СформироватьПроводкиПоСобственнойВыручке(
        СтруктураШапкиДокумента, 
        ПроводкиНУ, 
        Партия, 
        ДокументОбъект.Дата, // Вместо даты исходной реализации передаем дату текущего документа
        "НУ",  
        Ложь, 
        Истина, 
        Ложь
    );
    
    // Рассчитываем финансовый результат
    ФинРезультат = Партия.SуммаБУ - Партия.НДС - ?(ОтразитьВУчетеМПЗ, Партия.Стоимость, 0);
    
    // Записываем финансовый результат по НУ текущей датой корректировки
    Документы.КорректировкаРеализации.СформироватьФинансовыйРезультат(
        "НУ", 
        ПроводкиНУ, 
        ДокументОбъект.Дата, // Передаем текущую дату документа
        СтруктураШапкиДокумента.Организация, 
        ФинРезультат
    );
                         
Иначе
    // Стандартный типовой алгоритм для всех остальных случаев (откат на дату исходной реализации)
    Документы.КорректировкаРеализации.СформироватьПроводкиПоСобственнойВыручке(
        СтруктураШапкиДокумента, 
        ПроводкиНУ, 
        Партия, 
        СтруктураШапкиДокумента.ДокументРеализацииДата, 
        "НУ",  
        Ложь, 
        Истина, 
        Ложь
    );
    
    ФинРезультат = Партия.СуммаБУ - Партия.НДС - ?(ОтразитьВУчетеМПЗ, Партия.Стоимость, 0);
    
    Документы.КорректировкаРеализации.СформироватьФинансовыйРезультат(
        "НУ", 
        ПроводкиНУ, 
        СтруктураШапкиДокумента.ДокументРеализацииДата, 
        СтруктураШапкиДокумента.Организация, 
        ФинРезультат
    );
КонецЕсли;

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

Решение 2. Обходной путь через временное открытие периода (Регламентный метод)

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

Проанализируем этот алгоритм по шагам:

  1. Перейдите в настройки даты запрета изменения данных и временно сдвиньте границу назад, чтобы разрешить редактирование для налогового учета в нужном периоде. При этом дату запрета для бухгалтерского учета можно оставить закрытой.
  2. В документе КорректировкаРеализации убедитесь, что установлен флаг «Бухгалтерский учет прошлого года закрыт для корректировок».
  3. Проведите документ. При этом проводки по БУ автоматически запишутся текущей датой (на счета 91.02 / 91.01 через убытки/прибыли прошлых лет), а проводки по НУ запишутся датой исходной отгрузки в прошлый период.
  4. Верните дату запрета изменения данных для НУ на исходное значение.
  5. Перезаполните и подайте уточненную декларацию по налогу на прибыль за прошлый период. Для предприятия это полностью безопасный вариант, исключающий расхождения между бухгалтерскими регистрами и налоговой отчетностью.

Решение 3. Использование документа «Возврат товаров от покупателя»

Если корректировка реализации по согласованию сторон фактически вызвана полным или частичным возвратом ценностей от контрагента, использование механизма корректировки реализации не всегда оправданно. В 1С:УПП 1.3 для этих целей предусмотрен специализированный документ.

Рассмотрим порядок действий:

Решение 4. Корректировка в режиме «Только НДС» с ручным допроведением

В случаях, когда период НУ закрыт жестко (например, аудит уже пройден, и изменения вносить запрещено категорически), можно использовать комбинированный ручной метод:

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

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

← На главную