Как объединить цены в разных валютах (USD, EUR) для продажи в рублях в 1С:Управление торговлей 11.4

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

В торговой практике часто возникает ситуация, когда компания закупает или оценивает разные группы товаров в разных валютах (например, одна номенклатура привязана к USD, другая — к EUR), но взаиморасчеты с клиентами ведутся строго в рублях. В конфигурации 1С:Управление торговлей 11.4 (и 11.5) стандартное типовое соглашение позволяет выбрать только один вид цен с одной конкретной валютой. Это создает сложность: как сделать так, чтобы при подборе разных товаров в один заказ или реализацию их цены автоматически пересчитывались в рубли по актуальному курсу?

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

Способ 1. Самый простой штатный вариант: Уточнение валют по ценовым группам

Вместо того чтобы плодить множество разрозненных видов цен в разных валютах и пытаться как-то объединить их в одном соглашении, мы можем использовать встроенный инструмент 1С:УТ — мультивалютный вид цен с уточнением по ценовым группам. Этот механизм позволяет хранить цены на товары в разных валютах в рамках одного-единственного прайс-листа.

Разберем по шагам, как настроить эту схему:

  1. Перейдем в раздел CRM и маркетинг — Настройки и справочники — Виды цен и создадим один общий вид цены (например, "Дистрибьюторский" или "Оптовый").
  2. В качестве основной валюты в карточке вида цены укажем базовую валюту взаиморасчетов — RUB (рубли).
  3. Установим флаг "Уточнить валюты по ценовым группам".
  4. В появившейся табличной части сопоставим наши ценовые группы с нужными валютами. Например, для ценовой группы "Товары USD" установим валюту USD, а для группы "Товары EUR" — валюту EUR.
  5. Зарегистрируем цены для товаров с помощью документа УстановкаЦенНоменклатуры. При этом для товаров из долларовой группы мы введем цену в USD, а для европейской группы — в EUR.

Проанализируем, как это работает на практике в документах продажи. При создании документов ЗаказКлиента или РеализацияТоваровУслуг мы выбираем наше единое соглашение с этим комплексным видом цен. Система 1С автоматически определит ценовую группу каждой позиции в табличной части, обратится к соответствующей валютной цене и мгновенно пересчитает ее в рубли по курсу ЦБ (или по внутреннему установленному курсу) на дату проведения документа. Это решение работает полностью "из коробки" и не требует программирования.

Способ 2. Автоматическое регламентное создание рублевого прайс-листа

Если по каким-то причинам использование ценовых групп неудобно, либо если планируется дальнейшая интеграция прайс-листа с интернет-магазином (где мультивалютные пересчеты на лету могут некорректно обрабатываться CMS-системой), мы можем настроить автоматический пересчет цен в рубли на стороне 1С.

Смысл этого метода заключается в создании зависимого рублевого прайс-листа, который автоматически обновляется при изменении курсов валют:

  1. Создадим два базовых вида цен: "Закупочная USD" (валюта USD) и "Закупочная EUR" (валюта EUR).
  2. Создадим третий вид цены — "Продажная RUB" (валюта RUB). Для него установим способ задания цены "По произвольной формуле" или "Наценка на другой вид цен".
  3. В формуле расчета рублевой цены пропишем условия зависимости от базовых валютных цен.

Важно помнить, что в версиях 1С:УТ 11.4 и 11.5 формульные цены не рассчитываются динамически непосредственно в момент открытия заказа клиента (как это было в старых версиях УТ 10.3). Для их актуализации необходимо создавать документ УстановкаЦенНоменклатуры. Чтобы избавить пользователей от рутинной работы и исключить фактор забывчивости, настроим автоматическое обновление цен по расписанию.

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


Процедура ЗаполнитьИУстановитьРублевыеЦены() Экспорт
    // Создаем новый документ Установка цен номенклатуры
    ДокЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    ДокЦен.Дата = ТекущаяДата();
    ДокЦен.Согласован = Истина;
    ДокЦен.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Действует;
    
    // Заполняем виды цен (добавляем наш зависимый рублевый вид цены)
    НоваяСтрокаВида = ДокЦен.ВидыЦен.Добавить();
    НоваяСтрокаВида.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Продажная RUB");
    
    // Заполняем табличную часть Товары на основе расчета формул
    // (Используем типовой процессор компоновки данных для расчета цен)
    ДокЦен.ЗаполнитьПоДаннымИБ(); 
    
    ДокЦен.Записать(РежимЗаписиДокумента.Проведение);
КонецПроцедуры

Данный метод гарантирует, что каждое утро (или с любой заданной периодичностью) в системе будет автоматически появляться актуальный рублевый прайс-лист, рассчитанный по актуальному курсу валют.

Способ 3. Использование сегментов и механизма "Специальная цена" в скидках

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

  1. Создаем три независимых прайс-листа (вида цен): USD, EUR и базовый RUB.
  2. В соглашении с клиентом в качестве основного вида цен указываем рублевый прайс RUB.
  3. Создаем два динамических сегмента номенклатуры: "Товары, оцениваемые в USD" и "Товары, оцениваемые в EUR". Правила формирования сегментов настраиваются автоматически (например, по признаку определенного свойства или ценовой группы в карточке товара).
  4. В разделе CRM и маркетинг — Скидки (наценки) создаем две скидки с типом "Специальная цена":
    • Первая скидка устанавливает цену из прайса USD для сегмента долларовых товаров.
    • Вторая скидка устанавливает цену из прайса EUR для сегмента евровых товаров.
  5. В условиях предоставления скидок указываем вхождение товара в соответствующий сегмент. Применяем эти скидки в рамках действующего соглашения с клиентом.

При подборе товаров в документ система увидит базовое рублевое соглашение, но при расчете автоматических скидок сработает правило "Специальная цена". Программа автоматически подставит в строку актуальную валютную цену, пересчитанную в рубли по курсу на дату документа. Обслуживать такую схему очень просто: достаточно один раз настроить сегменты и скидки, а добавление новых товаров в нужную категорию автоматически включит их в этот алгоритм.

Настройка валюты взаиморасчетов и важные нюансы

Независимо от выбранного способа, важно правильно настроить параметры взаиморасчетов в СоглашенияСКлиентами или ДоговорыКонтрагентов:

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

← На главную