В торговой практике часто возникает ситуация, когда компания закупает или оценивает разные группы товаров в разных валютах (например, одна номенклатура привязана к USD, другая — к EUR), но взаиморасчеты с клиентами ведутся строго в рублях. В конфигурации 1С:Управление торговлей 11.4 (и 11.5) стандартное типовое соглашение позволяет выбрать только один вид цен с одной конкретной валютой. Это создает сложность: как сделать так, чтобы при подборе разных товаров в один заказ или реализацию их цены автоматически пересчитывались в рубли по актуальному курсу?
В данной статье мы подробно разберем несколько эффективных способов решения этой задачи: от штатных мультивалютных механизмов до автоматизации пересчета и гибких схем со скидками.
Вместо того чтобы плодить множество разрозненных видов цен в разных валютах и пытаться как-то объединить их в одном соглашении, мы можем использовать встроенный инструмент 1С:УТ — мультивалютный вид цен с уточнением по ценовым группам. Этот механизм позволяет хранить цены на товары в разных валютах в рамках одного-единственного прайс-листа.
Разберем по шагам, как настроить эту схему:
RUB (рубли).USD, а для группы "Товары EUR" — валюту EUR.УстановкаЦенНоменклатуры. При этом для товаров из долларовой группы мы введем цену в USD, а для европейской группы — в EUR.Проанализируем, как это работает на практике в документах продажи. При создании документов ЗаказКлиента или РеализацияТоваровУслуг мы выбираем наше единое соглашение с этим комплексным видом цен. Система 1С автоматически определит ценовую группу каждой позиции в табличной части, обратится к соответствующей валютной цене и мгновенно пересчитает ее в рубли по курсу ЦБ (или по внутреннему установленному курсу) на дату проведения документа. Это решение работает полностью "из коробки" и не требует программирования.
Если по каким-то причинам использование ценовых групп неудобно, либо если планируется дальнейшая интеграция прайс-листа с интернет-магазином (где мультивалютные пересчеты на лету могут некорректно обрабатываться CMS-системой), мы можем настроить автоматический пересчет цен в рубли на стороне 1С.
Смысл этого метода заключается в создании зависимого рублевого прайс-листа, который автоматически обновляется при изменении курсов валют:
Важно помнить, что в версиях 1С:УТ 11.4 и 11.5 формульные цены не рассчитываются динамически непосредственно в момент открытия заказа клиента (как это было в старых версиях УТ 10.3). Для их актуализации необходимо создавать документ УстановкаЦенНоменклатуры. Чтобы избавить пользователей от рутинной работы и исключить фактор забывчивости, настроим автоматическое обновление цен по расписанию.
Для этого можно использовать встроенный функционал регламентных заданий или подключить внешнюю обработку. Посмотрим на концептуальный пример кода, который может быть взят за основу программистом для автоматического создания документа установки цен номенклатуры:
Процедура ЗаполнитьИУстановитьРублевыеЦены() Экспорт
// Создаем новый документ Установка цен номенклатуры
ДокЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
ДокЦен.Дата = ТекущаяДата();
ДокЦен.Согласован = Истина;
ДокЦен.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Действует;
// Заполняем виды цен (добавляем наш зависимый рублевый вид цены)
НоваяСтрокаВида = ДокЦен.ВидыЦен.Добавить();
НоваяСтрокаВида.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Продажная RUB");
// Заполняем табличную часть Товары на основе расчета формул
// (Используем типовой процессор компоновки данных для расчета цен)
ДокЦен.ЗаполнитьПоДаннымИБ();
ДокЦен.Записать(РежимЗаписиДокумента.Проведение);
КонецПроцедуры
Данный метод гарантирует, что каждое утро (или с любой заданной периодичностью) в системе будет автоматически появляться актуальный рублевый прайс-лист, рассчитанный по актуальному курсу валют.
Рассмотрим более гибкий маркетинговый инструмент, предложенный специалистами на форуме. Если нам необходимо динамически управлять ценами без жесткой привязки к справочнику видов цен, можно задействовать механизм автоматических скидок:
USD, EUR и базовый RUB.RUB.USD для сегмента долларовых товаров.EUR для сегмента евровых товаров.При подборе товаров в документ система увидит базовое рублевое соглашение, но при расчете автоматических скидок сработает правило "Специальная цена". Программа автоматически подставит в строку актуальную валютную цену, пересчитанную в рубли по курсу на дату документа. Обслуживать такую схему очень просто: достаточно один раз настроить сегменты и скидки, а добавление новых товаров в нужную категорию автоматически включит их в этот алгоритм.
Независимо от выбранного способа, важно правильно настроить параметры взаиморасчетов в СоглашенияСКлиентами или ДоговорыКонтрагентов:
RUB.RUB.Выбор конкретного решения зависит от архитектуры вашей базы данных. Для стандартных задач розничной и оптовой торговли идеально подойдет Способ 1 с уточнением по ценовым группам. Если перед вами стоит задача последующей выгрузки цен на внешние сайты без потерь информации о валютах — надежнее использовать Способ 2 с ежедневным регламентным пересчетом рублевых цен.