Каждый бухгалтер, работающий в программе «1С:Бухгалтерия 3.0» с применением ПБУ 18/02, хотя бы раз сталкивался с ситуацией, когда в проводках документов списания себестоимости (например, при реализации готовой продукции или товаров) нарушается базовое балансовое равенство: БУ = НУ + ПР + ВР. Разница составляет всего одну копейку, но из-за нее программа начинает выдавать ошибки при закрытии месяца, а в оборотно-сальдовой ведомости в строке «Контроль» появляются досадные расхождения. В этой статье мы подробно разберем причины этой проблемы и рассмотрим все доступные способы ее решения.
Давайте проанализируем механизм расчета себестоимости в программе. Проблема кроется вовсе не в дефектах конкретного документа реализации или требования-накладной, а в математических особенностях параллельного ведения бухгалтерского и налогового учета:
41 или готовой продукции на счете 43) программа рассчитывает их себестоимость. Если в учете присутствуют временные (ВР) или постоянные (ПР) разницы, расчет сумм для БУ и НУ происходит параллельно по собственным формулам (например, по средней стоимости за месяц).Хозрасчетный.ВР = БУ - НУ. Из-за того что исходные величины БУ и НУ были округлены независимо, полученная разница может математически не сойтись с округленными значениями ровно на 0.01 рубля.Рассмотрим конкретный пример: в проводке документа сумма БУ равна 77,16 руб., сумма НУ составляет 37,41 руб., а рассчитанная временная разница (ВР) — 39,74 руб. Сложим НУ и ВР: 37,41 + 39,74 = 77,15. Мы видим расхождение с БУ (77,16) ровно на одну копейку. Это и есть результат независимого округления.
Несмотря на ничтожную величину расхождения, последствия для автоматизированного учета могут быть весьма неприятными:
99.Рассмотрим по шагам четыре практических метода устранения этой проблемы — от методологически наиболее правильного до локальных технических корректировок.
Это самое современное и эффективное решение, которое навсегда избавит вас от копеечных погрешностей в проводках документов. Начиная с редакции ПБУ 18/02 (согласно Приказу Минфина № 236н), фирма 1С рекомендует отказаться от фиксации ПР и ВР в каждой проводке.
При использовании этого метода программа ведет учет только по величинам БУ и НУ в течение месяца. Отложенные налоговые активы (ОНА) и обязательства (ОНО) рассчитываются в целом по балансу в конце отчетного периода путем сравнения балансовой и налоговой стоимости активов. Правило БУ = НУ + ПР + ВР в проводках документов больше не проверяется, и копейки физически не могут зависнуть.
Чтобы переключить этот режим, выполните следующие действия:
Если ваша учетная политика жестко требует отражения ПР и ВР в каждой проводке, попробуем решить проблему стандартными регламентными процедурами. Часто копейки возникают из-за проведения документов «задним числом».
Проанализируем последовательность действий для исправления:
Корректировка стоимости списания — именно она отвечает за финальное выравнивание себестоимости и устранение мелких погрешностей округления.В случаях, когда массовое перепроведение невозможно или не дало результатов, а копейка мешает закрыть период, можно прибегнуть к ручному выравниванию показателей разниц.
Для этого выполним ручную операцию:
90.02.1 или 43).Если база имеет огромный документооборот, ручные операции становятся неэффективными. В такой ситуации разработчики используют специализированные обработки, которые в конце месяца анализируют движения регистра бухгалтерии Хозрасчетный, находят проводки с нарушением формулы ПБУ 18/02 на одну копейку и автоматически корректируют ресурс СуммаВР или СуммаПР.
Рассмотрим пример программного кода, который можно использовать в расширении или внешней обработке для автоматического выравнивания записей регистра:
Процедура СкорректироватьКопейкиПБУ18(ДокументСсылка) Экспорт
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ДокументСсылка);
НаборЗаписей.Прочитать();
Модифицирован = Ложь;
Для Каждого Запись Из НаборЗаписей Цикл
// Проверяем только проводки, где заполнены суммовые показатели
Если Запись.Сумма <> 0 Тогда
// Проверка расхождения по Дебету
РасхождениеДт = Запись.Сумма - (Запись.СуммаНУДт + Запись.СуммаПРДт + Запись.СуммаВРДт);
Если Абс(РасхождениеДт) = 0.01 Тогда
Запись.СуммаВРДт = Запись.СуммаВРДт + РасхождениеДт;
Модифицирован = Истина;
КонецЕсли;
// Проверка расхождения по Кредиту
РасхождениеКт = Запись.Сумма - (Запись.СуммаНУКт + Запись.СуммаПРКт + Запись.СуммаВРКт);
Если Абс(РасхождениеКт) = 0.01 Тогда
Запись.СуммаВРКт = Запись.СуммаВРКт + РасхождениеКт;
Модифицирован = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если Модифицирован Тогда
НаборЗаписей.Записать();
КонецЕсли;
КонецПроцедуры
Данный алгоритм деликатно находит расхождения величиной ровно в 1 копейку и относит их на временные разницы, полностью восстанавливая математическое равенство и гарантируя беспрепятственное проведение регламентных операций в конце месяца.