Почему в 1С:Бухгалтерии 3.0 нарушается равенство БУ = НУ + ПР + ВР на одну копейку и как это исправить?

Бухгалтер 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

Каждый бухгалтер, работающий в программе «1С:Бухгалтерия 3.0» с применением ПБУ 18/02, хотя бы раз сталкивался с ситуацией, когда в проводках документов списания себестоимости (например, при реализации готовой продукции или товаров) нарушается базовое балансовое равенство: БУ = НУ + ПР + ВР. Разница составляет всего одну копейку, но из-за нее программа начинает выдавать ошибки при закрытии месяца, а в оборотно-сальдовой ведомости в строке «Контроль» появляются досадные расхождения. В этой статье мы подробно разберем причины этой проблемы и рассмотрим все доступные способы ее решения.

Выясняем причину: откуда берется «лишняя» копейка?

Давайте проанализируем механизм расчета себестоимости в программе. Проблема кроется вовсе не в дефектах конкретного документа реализации или требования-накладной, а в математических особенностях параллельного ведения бухгалтерского и налогового учета:

  1. При проведении документов списания активов (товаров на счете 41 или готовой продукции на счете 43) программа рассчитывает их себестоимость. Если в учете присутствуют временные (ВР) или постоянные (ПР) разницы, расчет сумм для БУ и НУ происходит параллельно по собственным формулам (например, по средней стоимости за месяц).
  2. При делении общей стоимости партий на количество часто возникают бесконечные или многозначные дробные числа.
  3. Система округляет рассчитанные показатели БУ и НУ до двух знаков после запятой независимо друг от друга, чтобы записать их в регистр бухгалтерии Хозрасчетный.
  4. Показатель разницы (ВР или ПР) вычисляется по формуле: ВР = БУ - НУ. Из-за того что исходные величины БУ и НУ были округлены независимо, полученная разница может математически не сойтись с округленными значениями ровно на 0.01 рубля.

Рассмотрим конкретный пример: в проводке документа сумма БУ равна 77,16 руб., сумма НУ составляет 37,41 руб., а рассчитанная временная разница (ВР) — 39,74 руб. Сложим НУ и ВР: 37,41 + 39,74 = 77,15. Мы видим расхождение с БУ (77,16) ровно на одну копейку. Это и есть результат независимого округления.

К каким последствиям приводит копеечная погрешность?

Несмотря на ничтожную величину расхождения, последствия для автоматизированного учета могут быть весьма неприятными:

Рассмотрим по шагам четыре практических метода устранения этой проблемы — от методологически наиболее правильного до локальных технических корректировок.

Способ 1. Переход на балансовый метод ПБУ 18/02 без отражения ПР и ВР (Рекомендуемый)

Это самое современное и эффективное решение, которое навсегда избавит вас от копеечных погрешностей в проводках документов. Начиная с редакции ПБУ 18/02 (согласно Приказу Минфина № 236н), фирма 1С рекомендует отказаться от фиксации ПР и ВР в каждой проводке.

При использовании этого метода программа ведет учет только по величинам БУ и НУ в течение месяца. Отложенные налоговые активы (ОНА) и обязательства (ОНО) рассчитываются в целом по балансу в конце отчетного периода путем сравнения балансовой и налоговой стоимости активов. Правило БУ = НУ + ПР + ВР в проводках документов больше не проверяется, и копейки физически не могут зависнуть.

Чтобы переключить этот режим, выполните следующие действия:

  1. Перейдите в раздел Главное — Учетная политика.
  2. Найдите пункт Учет отложенных налоговых активов и обязательств (ПБУ 18).
  3. Установите переключатель в положение Балансовый метод (вместо «Балансовый метод с отражением постоянных и временных разниц» или «Затратный метод»).
  4. Сохраните изменения и перепроведите документы за отчетный период.

Способ 2. Восстановление последовательности и корректировка стоимости списания

Если ваша учетная политика жестко требует отражения ПР и ВР в каждой проводке, попробуем решить проблему стандартными регламентными процедурами. Часто копейки возникают из-за проведения документов «задним числом».

Проанализируем последовательность действий для исправления:

  1. Отмените проведение регламентных операций закрытия месяца.
  2. Выполните полное перепроведение документов за месяц (раздел Операции — Групповое перепроведение документов). Это позволит программе заново пересчитать среднюю стоимость партий с учетом правильной хронологии.
  3. Запустите процедуру Закрытие месяца. Особое внимание обратите на выполнение операции Корректировка стоимости списания — именно она отвечает за финальное выравнивание себестоимости и устранение мелких погрешностей округления.

Способ 3. Ручная корректировка разниц

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

Для этого выполним ручную операцию:

  1. Перейдите в раздел Операции — Операции, введенные вручную и создайте новый документ Операция.
  2. В табличной части добавьте проводку. В качестве дебета или кредита укажите проблемный счет (например, 90.02.1 или 43).
  3. Важно: показатели Сумма (БУ), Сумма НУ и количество заполнять не нужно! Заполните только поле Сумма ВР (или Сумма ПР) на величину расхождения (например, 0.01 или -0.01) по дебету или кредиту, чтобы восстановить балансовое равенство на счете.
  4. Запишите документ и повторно запустите закрытие месяца.

Способ 4. Автоматизация с помощью внешней обработки или расширения (для программистов)

Если база имеет огромный документооборот, ручные операции становятся неэффективными. В такой ситуации разработчики используют специализированные обработки, которые в конце месяца анализируют движения регистра бухгалтерии Хозрасчетный, находят проводки с нарушением формулы ПБУ 18/02 на одну копейку и автоматически корректируют ресурс СуммаВР или СуммаПР.

Рассмотрим пример программного кода, который можно использовать в расширении или внешней обработке для автоматического выравнивания записей регистра:


Процедура СкорректироватьКопейкиПБУ18(ДокументСсылка) Экспорт
    НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(ДокументСсылка);
    НаборЗаписей.Прочитать();
    
    Модифицирован = Ложь;
    
    Для Каждого Запись Из НаборЗаписей Цикл
        // Проверяем только проводки, где заполнены суммовые показатели
        Если Запись.Сумма <> 0 Тогда
            // Проверка расхождения по Дебету
            РасхождениеДт = Запись.Сумма - (Запись.СуммаНУДт + Запись.СуммаПРДт + Запись.СуммаВРДт);
            Если Абс(РасхождениеДт) = 0.01 Тогда
                Запись.СуммаВРДт = Запись.СуммаВРДт + РасхождениеДт;
                Модифицирован = Истина;
            КонецЕсли;
            
            // Проверка расхождения по Кредиту
            РасхождениеКт = Запись.Сумма - (Запись.СуммаНУКт + Запись.СуммаПРКт + Запись.СуммаВРКт);
            Если Абс(РасхождениеКт) = 0.01 Тогда
                Запись.СуммаВРКт = Запись.СуммаВРКт + РасхождениеКт;
                Модифицирован = Истина;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
    Если Модифицирован Тогда
        НаборЗаписей.Записать();
    КонецЕсли;
КонецПроцедуры

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

← На главную