При ведении учета в разных конфигурациях 1С (например, когда поставщик работает в 1С:Бухгалтерия предприятия 3.0, а покупатель в 1С:Управление производственным предприятием 1.3) часто возникает классическая проблема: при расчетах в условных единицах (у.е.) суммы НДС в документах поступления и реализации не совпадают на несколько копеек. Рассмотрим, почему это происходит, как работают механизмы зачета аванса «под капотом» каждой программы и как добиться идентичности показателей.
Проанализируем ситуацию. В БП 3.0 реализован современный механизм «единого курса» для документа. Программа вычисляет так называемый средневзвешенный (эффективный) курс зачета аванса и постоплаты. Сумма НДС в БП 3.0 рассчитывается по формуле: (ВалютнаяСуммаНДС * ЭффективныйКурс). Округление происходит один раз для итоговой суммы НДС в строке или документе.
В УПП 1.3 исторически заложен другой алгоритм. Система разделяет одну строку товара на «части»: часть, оплаченную авансом (по курсу аванса), и часть, идущую в кредит (по курсу отгрузки). Для каждой части рассчитывается свой рублевый эквивалент НДС, которые затем суммируются. Из-за этого возникают дополнительные математические операции округления, которые и дают ту самую разницу в 1-4 копейки.
Алгоритм в БП 3.0:
(Сумма_уе * Курс_аванса * Коэффициент_аванса) + (Сумма_уе * Курс_отгрузки * (1 - Коэффициент_аванса)).Алгоритм в УПП 1.3:
В типовой настройке УПП часто сначала делает проводку по курсу документа (на дату отгрузки), а затем отдельными движениями при проведении (или позже, регламентной операцией) корректирует стоимость и НДС до курса аванса. Выясним причину: УПП стремится максимально точно распределить аванс по регистрам накопления (НДС Расчеты с поставщиками, Взаиморасчеты с контрагентами), и «дельта» между курсом отгрузки и курсом аванса сторнируется или доначисляется.
Самый эффективный способ синхронизировать расчеты с БП 3.0 — это изменить настройки формирования проводок. Проанализируем настройки параметров учета в УПП 1.3. Часто проблема решается установкой одного единственного флага.
Перейдем по шагам:
Сервис — Настройка учета — Настройки параметров учета.НДС.Когда этот флаг установлен, УПП начинает вести себя более похоже на БП 3.0: она не просто корректирует НДС регламентными операциями в конце месяца, а делает исправительные движения сразу в момент проведения документа поступления/реализации, опираясь на состояние взаиморасчетов. Это позволяет системе более корректно «схлопнуть» копейки в момент зачета предоплаты.
Если настройки не помогают или у вас сложная цепочка из десяти авансов по разным курсам, рассмотрим альтернативный метод, который часто применяют опытные бухгалтеры. Посмотрим на ситуацию глазами программы: если курс в «шапке» документа будет равен курсу зачета аванса, то никаких корректировок и «дельт» не возникнет.
Рассмотрим алгоритм действий:
Важно: При таком подходе нужно быть осторожным. Если аванс был не 100%-м, регламентная операция Восстановление последовательности расчетов может попытаться снова пересчитать суммы. Однако, как показывает практика, если средний курс рассчитан с большой точностью (до 4-6 знаков), система примет его и не будет делать корректирующих проводок по НДС.
Проанализируем риски использования ручного курса. В УПП расчеты ведутся не только в бухгалтерском учете, но и в регистрах накопления. Если вы укажете средний курс вручную, вы рискуете тем, что:
Взаиморасчеты с контрагентами сумма закроется в ноль.НДС Предъявленный (или НДС Начисленный) может зависнуть микро-сумма из-за разницы алгоритмов распределения по строкам.Поэтому правильнее всего — использовать автоматический расчет и проверять, чтобы все регламентные операции (Восстановление последовательности расчетов, Регистрация счетов-фактур на аванс) были выполнены в строгой хронологической последовательности.
Посмотрим на пример из практики. Допустим, был аванс 100 у.е. по курсу 70, а отгрузка прошла по курсу 75. Сумма НДС — 18%.
БП 3.0 сразу запишет НДС в книгу покупок по курсу 70: 18 у.е. * 70 = 1260 руб.
УПП 1.3 может сделать так:
18 * 75 = 1350 руб.1350 - 1260 = -90 руб.В итоге сумма та же (1260 руб.), но если в документе 100 позиций номенклатуры, то при распределении этих 90 рублей на 100 строк неизбежно возникнут ошибки округления в 1 копейку на каждой десятой строке. БП 3.0 же просто применит курс 70 к каждой строке сразу.
Для того чтобы убедиться, что УПП посчитала все верно, используйте следующий алгоритм проверки:
// Логика проверки зачета аванса в у.е.
СуммаАвансаУЕ = РегистрВзаиморасчеты.Остаток(Контрагент, Договор);
КурсАванса = РегистрВзаиморасчеты.СуммаУпр / СуммаАвансаУЕ;
СуммаДокументаУЕ = Документ.СуммаДокумента;
Если СуммаАвансаУЕ >= СуммаДокументаУЕ Тогда
// 100% предоплата
ОжидаемыйНДС = СуммаДокументаУЕ * (СтавкаНДС / 100) * КурсАванса;
Иначе
// Частичная предоплата
НДС_Аванс = СуммаАвансаУЕ * (СтавкаНДС / 100) * КурсАванса;
НДС_Постоплата = (СуммаДокументаУЕ - СуммаАвансаУЕ) * (СтавкаНДС / 100) * КурсДокумента;
ОжидаемыйНДС = НДС_Аванс + НДС_Постоплата;
КонецЕсли;
Если после выполнения всех регламентных операций сумма в УПП все равно отличается от БП продавца, рекомендуется ручная корректировка суммы НДС в документе УПП на вкладке «НДС». Помните, что согласно налоговому законодательству, покупатель должен заявить к вычету ровно ту сумму НДС, которую продавец указал в счете-фактуре. Поэтому «подгонка» под данные поставщика в данном случае является методологически верным решением.
Для минимизации расхождений между УПП 1.3 и БП 3.0 при работе с у.е.: