Почему в 1С:УПП 1.3 сумма проводки реализации в USD отличается от суммы в шапке документа при зачете аванса?

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

При ведении валютного учета в программе 1С:Управление производственным предприятием ред. 1.3 (1С:УПП) пользователи часто сталкиваются с непонятным на первый взгляд поведением системы. Оформив документ Реализация товаров и услуг в иностранной валюте (например, в USD) при наличии ранее полученного аванса, бухгалтер замечает, что рублевая сумма сформированных проводок по дебету 62.21 (или 62.31) и кредиту 90.01.1 не совпадает со справочной рублевой суммой, отображаемой в шапке документа и на вкладке «Предоплата».

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

---

Выясняем причину: требования ПБУ 3/2006 и Налогового кодекса РФ

Прежде чем приступать к изменению настроек или доработке программы, давайте проанализируем ситуацию с точки зрения методологии бухгалтерского и налогового учета. Поведение 1С:УПП в данном случае не является ошибкой или программным сбоем. Оно строго соответствует нормам российского законодательства, а именно ПБУ 3/2006 («Учет активов и обязательств, стоимость которых выражена в иностранной валюте») и статьям 271, 272 Налогового кодекса РФ.

Согласно действующим стандартам учета:

  1. Авансы не переоцениваются. Полученные от покупателя средства в счет предстоящих поставок (предоплата) в иностранной валюте или условных единицах фиксируются в рублевом эквиваленте по курсу ЦБ РФ на дату получения этого аванса. В дальнейшем эта рублевая сумма остается неизменной.
  2. Выручка признается по историческому курсу аванса. В части, оплаченной авансом, доходы организации признаются в рублях по курсу, который действовал на дату получения предоплаты.
  3. Постоплата оценивается по курсу на дату отгрузки. Та часть выручки, которая осталась неоплаченной на момент отгрузки, пересчитывается в рубли по официальному курсу ЦБ РФ на дату перехода права собственности (то есть на дату документа реализации).

Таким образом, если сделка оплачена частично, рублевая сумма проводки по реализации представляет собой «сборную» величину: одна часть рассчитывается по курсу аванса, а вторая — по текущему курсу на дату отгрузки.

---

Разберем ситуацию на математическом примере

Проанализируем конкретные цифры из рассматриваемой темы, чтобы наглядно увидеть формулу расчета, которую применяет алгоритм 1С:УПП.

Исходные данные из документа:

Рублевые показатели в системе:

Теперь рассчитаем рублевую сумму выручки, которую программа должна отразить в проводках согласно ПБУ 3/2006:

  1. Определяем рублевую стоимость авансированной части: она фиксируется строго по историческому курсу и равна 220 102,85 руб.
  2. Рассчитываем рублевую стоимость неоплаченного остатка по курсу на дату отгрузки:

    4 300,96 USD * 53,6856 руб./USD = 230 900,09 руб.

  3. Складываем обе части для получения итоговой суммы проводки:

    220 102,85 руб. + 230 900,09 руб. = 451 002,94 руб.

В результате проведения документа мы получаем проводку по дебету 62.21 и кредиту 90.01.1 именно на сумму 451 002,94 руб.

Почему же в шапке документа и печатных формах фигурирует сумма 468 154,70 руб.?

В шапке документа рублевый эквивалент рассчитывается по упрощенной формуле — путем прямого умножения общей суммы в USD на курс, указанный в параметрах цены и валюты документа (в данном случае около 59,866 руб. за USD):

7 819,92 USD * 59,866 руб./USD = 468 154,70 руб.

Эта сумма является чисто справочной. Основной конфликт заключается в том, что при выводе на печать стандартных форм (ТОРГ-12, УПД, Счет-фактура) в рублевом эквиваленте программа берет справочные данные из табличной части документа, умноженные на курс шапки. В итоге покупатель получает первичные документы на сумму 468 154,70 руб., а у продавца в бухгалтерском учете и книге продаж отражена сумма 451 002,94 руб. Такое расхождение недопустимо при налоговых проверках.

---

Практические методы решения проблемы в 1С:УПП 1.3

Рассмотрим подробнее три основных способа, которые позволяют синхронизировать данные бухгалтерского учета с суммами в печатных формах документов.

Способ 1. Ручной расчет и установка «сборного» курса

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

Суть метода заключается в том, что бухгалтер самостоятельно рассчитывает средневзвешенный (сборный) курс для конкретной поставки и вносит его в документ:

  1. Проводим документ реализации в валюте с текущим курсом ЦБ.
  2. Смотрим получившуюся сумму рублевой проводки по кредиту счета 90.01.1 (в нашем примере это 451 002,94 руб.).
  3. Рассчитываем сборный курс по формуле:

    Сборный курс = Реальная сумма проводки в рублях / Общая сумма документа в валюте

    В нашем случае: 451 002,94 руб. / 7 819,92 USD = 57,6736 руб./USD

  4. Нажимаем в документе реализации кнопку «Цены и валюта» и вручную вводим рассчитанный курс (57,6736). При необходимости увеличиваем точность округления курса в настройках программы до 6 знаков после запятой.
  5. Перепроводим документ. Теперь сумма в шапке, сумма в проводках и суммы в печатных формах ТОРГ-12 и УПД будут абсолютно одинаковыми и составят 451 002,94 руб.

Способ 2. Программная доработка (Внешние печатные формы)

Если отгрузок много, ручной перерасчет становится трудозатратным и приводит к ошибкам из-за человеческого фактора. Лучшим решением будет создание внешних печатных форм для ТОРГ-12, М-15 или УПД.

Проанализируем алгоритм, который должен реализовать программист 1С во внешней печатной форме:

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


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	ХозрасчетныйДвиженияССубконто.Сумма КАК СуммаРуб
    |ИЗ
    |	РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
    |		&Период,
    |		&Граница,
    |		Регистратор = &ДокументСсылка
    |			И СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаНеОблагаемаяНДС)
    |			ИЛИ СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаОблагаемаяНДС),
    |		,
    |		) КАК ХозрасчетныйДвиженияССубконто";

Запрос.УстановитьПараметр("ДокументСсылка", СсылкаНаОбъект);
// Установка параметров периода для оптимизации запроса
РезультатЗапроса = Запрос.Выполнить();

Используя этот подход, бухгалтеру больше не придется совершать никаких ручных манипуляций с курсами. Документы будут проводиться по реальным курсам ЦБ, а печатные формы автоматически подстроятся под данные бухгалтерских проводок.

Способ 3. Регламентное восстановление расчетов

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

Для исправления таких ситуаций необходимо использовать стандартную обработку «Восстановление состояния расчетов с контрагентами». Запуск этой процедуры в конце отчетного периода пересчитывает валютные остатки, актуализирует зачеты авансов и приводит проводки в соответствие с законодательством. Однако помните, что после ее выполнения рублевые суммы проводок могут измениться, что потребует повторной печати документов, если ранее вы не использовали способы 1 или 2.

---

Как данная проблема решена в современных системах?

В современных конфигурациях, таких как 1С:ERP Управление предприятием или 1С:Комплексная автоматизация ред. 2, архитектура взаиморасчетов была кардинально переработана. В этих программах больше нет необходимости высчитывать средневзвешенные курсы вручную. Система рассчитывает рублевую стоимость каждой строки реализации с учетом долей зачета авансов в автоматическом режиме на уровне регистров накопления. Печатные формы УПД и ТОРГ-12 по умолчанию формируются на основе этих детальных регистров, что полностью исключает расхождения между первичными документами и проводками.

← На главную