Как настроить расчет рублевых цен в 1С:УТ 11 на основании прайс-листов в разных валютах?

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

В процессе работы торгового предприятия часто возникает ситуация, когда закупка товаров ведется у разных поставщиков в разных валютах (например, в долларах США и китайских юанях), а розничная или оптовая продажа на территории РФ должна осуществляться строго в рублях. В системе 1С:Управление торговлей 11 (УТ 11), а также в ERP и Комплексной автоматизации (КА 2), предусмотрены мощные механизмы ценообразования, позволяющие автоматизировать этот процесс. Чтобы упростить получение исходных данных от контрагентов, можно настроить автоматический сбор прайс-листов с почты, FTP или HTTP.

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

Метод 1. Использование произвольной формулы с логическим условием

Этот способ подходит для ситуаций, когда у вас уже созданы отдельные виды цен для разных валют (например, ПрайсЛистUSD и ПрайсЛистCNY). Нам необходимо настроить результирующий вид цен (например, «Розничная рубль»), который будет проверять, для какой валюты установлена базовая цена, и выполнять расчет.

Проанализируем логику настройки. В справочнике ВидыЦен для рублевой цены выберем способ задания «Рассчитывать по другим видам цен». В появившемся окне редактирования формулы мы можем использовать условный оператор ?. Рассмотрим пример формулы, которая проверяет наличие цены в долларах, и если она пуста, берет цену в юанях, добавляя к результату наценку 3%:


?([ПрайсЛистUSD] > 0, [ПрайсЛистUSD] * 1.03,
    ?([ПрайсЛистCNY] > 0, [ПрайсЛистCNY] * 1.03, 0)
)

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

  1. Программа проверяет значение [ПрайсЛистUSD]. Если цена в долларах установлена (больше нуля), система берет это значение.
  2. Важный нюанс: 1С автоматически пересчитывает валюту базовой цены в валюту рассчитываемой цены по текущему курсу. Если ПрайсЛистUSD в валюте USD, а результирующая цена в RUB, система сначала сконвертирует доллары в рубли, а затем применит математические операции (умножение на 1.03).
  3. Если цена в долларах не найдена (равна 0), система переходит ко второму условию и проверяет [ПрайсЛистCNY].
  4. Если ни в одной из валют цена не задана, результатом будет 0.

Метод 2. Использование мультивалютных видов цен (версия 11.5 и выше)

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

Рассмотрим порядок действий для настройки этого механизма:

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

Автоматизация обновления цен при изменении курсов валют

Выясним причину, по которой менеджеры часто вынуждены пересчитывать цены вручную. Обычно это происходит из-за того, что цены в справочнике ЦеныНоменклатуры записываются как статические значения на определенную дату. Однако в 1С предусмотрены способы автоматизации этого процесса.

Вариант А: Динамические цены. Если в настройках вида цены выбрать «Рассчитывать по другим видам цен» и не устанавливать признак «Хранить цены», такая цена будет называться динамической. Она не записывается в базу, а вычисляется «на лету» в момент подбора товара в заказ клиента или при открытии прайс-листа. Это гарантирует, что покупатель всегда видит цену по самому свежему курсу валют.

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

Использование Схемы компоновки данных (СКД) для сложных условий

Иногда логики «если заполнено — берем» недостаточно. Например, когда нужно учитывать приоритет поставщика или брать цену из последнего документа закупки. В таких случаях проанализируем возможность использования Схемы компоновки данных (СКД). В качестве примера готового алгоритма можно использовать схему компоновки данных для расчета вида цен по закупочным ценам и расходам.

В настройках Вида цены выберите вариант «Устанавливать по данным информационной базы». Это позволит использовать произвольный запрос. С помощью запроса можно реализовать следующую логику:

  1. Система обращается к регистру накопления ВыручкаИСебестоимостьПродаж или к документам ПриобретениеТоваровУслуг.
  2. Определяет валюту последней закупки конкретного товара.
  3. Подставляет эту валюту и цену в качестве базы для расчета розничной цены.

Округление и психологические пороги

При автоматическом пересчете валют неизбежно возникают «некрасивые» суммы с копейками. Чтобы избежать этого, в настройках Вида цены на вкладке «Правила округления» мы рекомендуем установить соответствующие параметры. Например, округление до 1 рубля, до 10 рублей или по более сложным правилам (в пользу клиента или в пользу компании).

Также стоит обратить внимание на Порог срабатывания. Чтобы цена на сайте не дергалась из-за изменения курса на 1-2 копейки, можно настроить правило: «Обновлять цену только в случае, если новое значение отличается от старого более чем на 1%». Это позволит избежать лишней волатильности и ненужной работы по обновлению ценников.

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

← На главную