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