После обновления конфигурации «Управление производственным предприятием» (УПП) до релиза 1.3.127.1 (и последующего 1.3.128.1) многие пользователи столкнулись с критической проблемой. Документ Корректировка поступления с видом операции «Корректировка по согласованию сторон» начал формировать некорректные бухгалтерские проводки. Если раньше система делала привычное сторно по счетам 10.05, 19.03 и 60.01, то в новых версиях появились странные обороты по дебету и кредиту, которые не только затрудняют анализ, но и искажают данные в регистрах учета затрат.
В этой статье мы подробно разберем, почему это происходит при использовании расширенной аналитики учета затрат (РАУЗ), как внести исправления в программный код и какие альтернативные варианты решения существуют для тех, кто не хочет снимать конфигурацию с поддержки.
Давайте проанализируем ситуацию. В релизе 1.3.127.1 разработчики 1С внесли изменения в механизмы формирования проводок для уточнения учета в случаях, когда корректировка происходит в периодах, отличных от периода первичного поступления. Это особенно актуально для РАУЗ, где себестоимость может уточняться в течение долгого времени.
Основная проблема кроется в алгоритме расчета коэффициентов распределения сумм по периодам: текущий месяц, текущий год и прошлые годы. Программа пытается вычислить доли стоимости, которые должны быть отражены в разных периодах, но из-за ошибки в формулах коэффициенты К1, К2 и К3 рассчитываются неверно. Вместо того чтобы просто сторнировать излишне начисленную сумму, система начинает «перебрасывать» суммы между счетами, создавая избыточные и математически необоснованные проводки.
Если ваша конфигурация находится на поддержке с возможностью редактирования, мы можем применить исправление в модуле объекта документа КорректировкаПоступления. Рассмотрим пошагово, какие изменения необходимо внести в процедуру СформироватьПроводки.
Нам нужно найти блок, где определяются коэффициенты распределения, и добавить проверку на тип операции (возврат или корректировка) и флаг формирования проводок.
Шаг 1. Перейдите в модуль объекта документа КорректировкаПоступления и найдите процедуру СформироватьПроводки.
Шаг 2. Найдите участок кода, где рассчитываются коэффициенты К1 и К2. Мы модифицируем логику, чтобы система корректно определяла необходимость формирования движений.
// Коэффициент текущего месяца
К1 = ?(СписатьПоСтрКоличество <> 0 ИЛИ НачалоМесяца(СтруктураШапкиДокумента.ДокументПоступленияДата) = НачалоМесяца(СтруктураШапкиДокумента.Дата), 1, ?(КоличествоДоИзменения <> 0, Мин(КоличествоНачалоМесяца / КоличествоДоИзменения, 1), 1));
// Коэффициент текущего года
К2 = ?(Год(СтруктураШапкиДокумента.ДокументПоступленияДата) = Год(СтруктураШапкиДокумента.Дата), 1, ?(КоличествоДоИзменения - КоличествоНачалоМесяца <> 0, Мин((КоличествоНачалоГода - КоличествоНачалоМесяца) / (КоличествоДоИзменения - КоличествоНачалоМесяца), 1), 1));
// Коэффициент прошлого года
К3 = 1;
// Добавляем определение переменной для идентификации возврата
ЭтоВозвратПоставщику = ?(СтрокаТовары.Количество < 0, Истина, Ложь);
Шаг 3. Далее необходимо обернуть блок формирования проводок в условие проверки флага ФормироватьПроводки. Это позволит избежать создания «пустых» или избыточных записей в тех случаях, когда алгоритм расчета коэффициентов выдает неоднозначный результат.
Если ФормироватьПроводки Тогда
// Здесь располагается стандартный блок формирования проводок Дт/Кт
// Если СтрКоличество <> 0 ИЛИ СтрСуммаБУ <> 0 Тогда ...
КонецЕсли;
Этот «костыль» принудительно ограничивает систему в создании лишних движений, если математическая логика РАУЗ пытается распределить суммы там, где требуется обычное сторно.
Важно проанализировать ситуацию с валютными договорами и договорами в условных единицах. Как показывает практика (и сообщения пользователей), вышеописанное исправление может не полностью решать проблему, если между датой поступления и датой корректировки изменился курс валюты.
В релизе 1.3.128.1 была замечена ошибка, при которой система игнорирует курс аванса или неверно рассчитывает курсовую разницу при корректировке. В этом случае на счете 60 могут «зависать» копейки или значительные суммы в рублях при нулевом валютном остатке. Если вы работаете с валютой, рекомендуем крайне внимательно проверять оборотно-сальдовую ведомость по счету 60 после проведения корректировок и, при необходимости, корректировать рублевые суммы вручную или через расширение.
Разберем еще один важный аспект — влияние этих некорректных проводок на НДС. Поскольку документ Корректировка поступления делает проводки по счету 19, ошибки в алгоритме могут привести к следующим последствиям:
Формирование записей книги покупок может не увидеть корректировку или «удвоить» её.НДС Предъявленный) данные отражаются верно, а в бухгалтерских проводках — нет. Это создает разрыв между балансом и налоговой отчетностью.Для исправления ситуации с НДС без изменения кода можно воспользоваться документом Отражение НДС к вычету или Восстановление НДС, но это потребует ручного контроля каждой операции.
Если ваша компания придерживается политики «типовой конфигурации без изменений», рассмотрим альтернативные варианты решения:
СформироватьПроводки в расширение, сохранив основную конфигурацию на замке.Корректировка поступления можно включить флаг «Ручная корректировка» (если это предусмотрено вашими правами) и исправить проводки на правильное сторно. Однако помните, что при перепроведении документа эти правки могут быть утеряны или потребуют повторной проверки.Подводя итог, можно сказать, что данная проблема является признанной технической ошибкой релизов 1.3.127.1–1.3.128.1. Наиболее правильным долгосрочным решением будет обновление на последующие релизы (выше 1.3.128), где разработчики 1С обещали вернуться к более стабильной схеме формирования проводок без избыточного деления по коэффициентам РАУЗ.