Почему в 1С:УНФ заказ покупателя можно оформить только в валюте договора или в рублях?

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

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

Причины методологического ограничения

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

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

(Остаток в валюте * Актуальный курс) - Остаток в рублях = Курсовая разница

Если в рамках одной карточки договора будут висеть долги в евро, долларах и юанях одновременно, система не сможет однозначно определить, к какому именно «валютному куску» относится поступившая оплата в рублях. Это приведет к хаосу в отчетности и неверному расчету прибыли. Именно поэтому разработчики 1С:УНФ заложили жесткую связь: один договор — одна валюта расчетов. Это защищает данные от ошибок, которые неизбежно допустили бы 99,9% пользователей при свободном выборе валют.

Режим «Расчеты в условных единицах (у.е.)»

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

  1. Валюта договора: Вы фиксируете цену в иностранной валюте. Это позволяет защитить доход от инфляции и колебаний курса.
  2. Рубли: Это валюта фактического исполнения обязательств на территории РФ согласно законодательству.

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

Решение проблемы через создание нескольких договоров

Проанализируем наиболее правильный и «чистый» с точки зрения методологии 1С способ решения задачи. Если ваш клиент хочет закупать товары в разных валютах, мы рекомендуем завести для него отдельные договоры под каждую валюту. Например:

Посмотрим на преимущества этого подхода:

Если клиент отказывается «плодить» договоры, стоит объяснить ему, что в 1С объект Договор — это не столько юридическая бумага с печатью, сколько аналитический разрез учета. Для системы это разные финансовые потоки, которые нельзя смешивать.

Проблема кросс-курсов и пересчета валют

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

Рассмотрим пример расчета:

  1. Сумма документа в EUR пересчитывается в рубли по курсу ЦБ на дату документа.
  2. Полученная рублевая сумма пересчитывается в USD (валюту договора) по курсу на ту же дату.

Возникает вопрос: будет ли полученный кросс-курс EUR/USD через рубль соответствовать реальному рыночному курсу? Как правило, в системе 1С расчет кросс-курсов реализован именно через отношение курсов к национальной валюте. Если в справочнике Валюты для евро и доллара установлена загрузка из интернета, то программа автоматически вычислит пропорцию. Однако любые ручные корректировки курсов могут привести к копейкам разницы при пересчетах, которые «повиснут» на взаиморасчетах.

Технический путь (для программистов)

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

Посмотрим на пример логики, которую придется реализовать в коде (концептуально):


// При изменении валюты в документе, отличной от валюты договора
Процедура ПриИзмененииВалютыДокумента()
    КурсДокумента = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаДокумента, ВалютаДокумента);
    КурсДоговора = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаДокумента, Договор.ВалютаРасчетов);
    
    // Рассчитываем коэффициент пересчета через рубли
    Коэффициент = КурсДокумента.Курс / КурсДоговора.Курс;
    
    // Пересчитываем суммы в табличной части
    Для Каждого Строка Из ТабличнаяЧастьТовары Цикл
        Строка.Цена = Строка.Цена * Коэффициент;
    КонецЦикла;
КонецПроцедуры

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

Резюме и рекомендации

Проанализировав проблему, мы приходим к следующим выводам:

  1. Используйте разные договоры: Это самый надежный способ ведения мультивалютного учета в 1С:УНФ. Для удобства пользователей можно добавить в справочник Договоры дополнительные теги или группы для быстрой фильтрации.
  2. Мультивалютные прайс-листы: Помните, что цены на товары могут храниться в любой валюте. При подборе товара в Заказ программа автоматически пересчитает цену из валюты прайса в валюту договора по актуальному курсу. Это часто решает проблему «выставления счета в другой валюте» без нарушения структуры договора.
  3. Переход на ERP: Если ваша компания ведет сложную международную деятельность с мультивалютными контрактами в рамках одного соглашения, возможно, стоит рассмотреть переход на 1С:ERP или 1С:Комплексная автоматизация, где механизмы работы с валютами более гибкие и позволяют разделять валюту договора и валюту платежа более свободно.

Таким образом, ограничение в УНФ — это не ошибка разработчиков, а сознательное решение для обеспечения стабильности и простоты управленческого учета для малого и среднего бизнеса.

← На главную