Как в 1С:УТ 11.4 реализовать договор в у.е. с оплатой в рублях и избежать валютной переоценки?

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

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

Анализируем суть проблемы: Валюта против У.Е.

Для начала проанализируем ситуацию с точки зрения методологии учета. В системе 1С существует три принципиально разных типа расчетов:

  1. Валютные: долг в валюте, оплата в валюте. Переоценка обязательна.
  2. В условных единицах (У.Е.): долг в валюте, оплата в рублях по согласованному курсу. Переоценка происходит, так как сумма долга в рублях «плавает» вместе с курсом до момента оплаты.
  3. Рублевые: долг и оплата в рублях. Переоценка отсутствует.

Проблема автора заключается в том, что в договоре прописана фиксация курса на дату отгрузки. Это означает, что как только товар уехал со склада, сумма долга в рублях становится окончательной и больше не должна меняться. С точки зрения ПБУ 3/2006, такое обязательство перестает быть валютным и становится рублевым. Однако, если в 1С выбран тип договора «в валюте», механизм закрытия месяца продолжит искать остатки в регистре РасчетыСКлиентами по измерению «Валюта» и доначислять разницы. Выясним, как это изменить.

Решение №1: Использование валютных прайсов при рублевых договорах

Это самый «чистый» способ реализации схемы без доработки кода. Разберем его по шагам:

Шаг 1. Настройка вида цен. Создадим вид цены (прайс-лист), в котором ВалютаЦены будет установлена как USD или EUR. Укажем способ задания цены — «Назначается вручную» или «Рассчитывается по другим видам цен».

Шаг 2. Оформление соглашения. В Типовом или Индивидуальном соглашении с клиентом установим следующие параметры:

Шаг 3. Создание заказа и реализации. При создании документа ЗаказКлиента система увидит, что цены в прайсе валютные, а документ рублевый. Программа автоматически предложит пересчитать цены в рубли по текущему курсу на дату документа. В документе РеализацияТоваровУслуг зафиксируется итоговая рублевая сумма. Поскольку договор и документы рублевые, в регистры накопления попадет только рублевая задолженность. В конце месяца переоценивать будет нечего. Для программной реализации аналогичной логики в отчетах можно использовать пример пересчета цен строк заказа по курсу на дату документа.

Решение №2: Использование функционала «Фиксированный курс»

Рассмотрим ситуацию, когда руководство требует видеть в заказах именно валютные суммы для контроля объемов сделок. В современных релизах УТ 11.4 и 11.5 предусмотрен механизм фиксации курса в договоре. Посмотрим на алгоритм настройки:

  1. В карточке ДоговорКонтрагента на вкладке «Расчеты» выберем валюту расчетов (например, USD), а оплату установим в рублях.
  2. Проанализируем доступные настройки курса. Нам необходимо выбрать вариант, при котором курс оплаты жестко привязан к курсу отгрузки.
  3. Если в вашей версии этот функционал ограничен, можно использовать документ Доверенность или ЗаказКлиента как базис, но помнить, что при закрытии месяца система все равно проверит остатки в валюте.

Важный момент: Если в регистре РасчетыСКлиентамиПоДокументам висит хотя бы 0.01 у.е., переоценка будет выполняться. Чтобы избавиться от «копеек», возникающих из-за округлений курса, используйте документ КорректировкаЗадолженности с видом операции «Списание задолженности», чтобы обнулить именно валютную сумму, оставив рублевую нетронутой. Для автоматизации этой задачи можно применить обработку для группового создания корректировок задолженности.

Решение №3: Техническое отключение переоценки (для программистов)

Если вы столкнулись с ситуацией, когда договоров много и они уже ведутся в у.е., можно внести изменения в алгоритм закрытия месяца. Проанализируем, где происходит расчет курсовых разниц. В УТ 11.4 за это отвечает распределенный механизм, включающий работу с регистрами сведений КурсовыеРазницы и выполнение кода в модулях расчета финансового результата.

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

Пример логики проверки в коде:


// Пример логики в расширении для исключения договора
Если Договор.НеПереоцениватьПослеОтгрузки Тогда
    // Пропускаем расчет по данному объекту
    Возврат; 
КонецЕсли;

Почему «Договор в рублях» выгоднее?

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

Рассмотрим ситуацию с авансами. Если клиент платит аванс, то по правилам НК РФ и ПБУ, сумма выручки фиксируется по курсу аванса. При рублевом договоре и валютном прайсе 1С:УТ корректно отрабатывает этот момент, зачитывая рублевый аванс в счет будущей отгрузки без образования разниц. Если же договор будет в у.е., система будет постоянно пытаться сравнить курс на дату аванса и дату отгрузки, что часто приводит к путанице у пользователей.

Таким образом, для реализации требования руководства «курс ЦБ на дату отгрузки» без лишних хлопот, мы рекомендуем использовать комбинацию Валютных цен и Рублевых договоров. Это позволит менеджерам работать в привычных им единицах, а бухгалтерии — получать чистый учет без необоснованных доходов и расходов от переоценки.

← На главную