Как работать с валютами в программе «1С:Розница» и почему их не было в старых версиях?

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

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

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

---

Почему в «1С:Розница» редакции 2.2 и 2.3 нет справочника «Валюты»?

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

Это сделано намеренно по следующим причинам:

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

Тем не менее розничным торговцам регулярно требуется анализировать валютные прайсы поставщиков, рассчитывать рублевую цену на основе курса доллара или евро и оперативно реагировать на колебания курсов. Рассмотрим, как решать эту задачу. Для сопоставления прайс-листов и контроля наценок подойдёт отчёт для анализа цен поставщиков и расчёта наценок.

---

Варианты решения проблемы в «1С:Розница 2.3» (legacy-решения)

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

Способ 1. Использование внешней обработки для пересчета цен при загрузке

Поскольку хранить валюту как объект в базе нельзя, самым популярным решением является пересчет цен непосредственно в момент импорта прайс-листа поставщика. Напишем алгоритм, который запрашивает курс валюты (например, через сторонний API или вводит вручную) и записывает цены поставщика в рублевом эквиваленте.

Рассмотрим пример программного кода для внешней обработки, преобразующей валютную цену в рублевую перед записью в документ УстановкаЦенНоменклатуры:


// Функция пересчитывает цену из валюты в рубли по заданному курсу
Функция ПересчитатьЦенуВРубли(ЦенаВВалюте, КурсВалюты) Экспорт
    Если КурсВалюты <= 0 Тогда
        ЗаписатьЛогОшибки("Неверно указан курс валюты для пересчета!");
        Возврат ЦенаВВалюте;
    КонецЕсли;
    
    РублеваяЦена = ОкруглитьЦену(ЦенаВВалюте * КурсВалюты);
    Возврат РублеваяЦена;
КонецФункции

// Процедура округления цен до копеек
Функция ОкруглитьЦену(ЗначениеЦены)
    Возврат Окр(ЗначениеЦены, 2, РежимОкругления.ОкруглятьВБольшуюСторону);
КонецФункции

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

Способ 2. Архитектура «УТ + Розница»

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

---

Кардинальное решение: переход на «1С:Розница 3.0»

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

Выясним, какие возможности появились у пользователей в новой версии программы:

---

Как настроить и использовать валютный учет в «1С:Розница 3.0»?

Разберем по шагам, как задействовать новый функционал мультивалютности в современной редакции программы.

Шаг 1. Включение функциональной опции

По умолчанию в Рознице 3.0 включен простой учет в одной валюте (рубли). Чтобы активировать мультивалютность, выполним следующие действия:

  1. Перейдем в раздел Настройки;
  2. Выберем пункт меню Еще больше возможностей;
  3. Откроем подраздел Деньги;
  4. Установим флажок напротив опции Несколько валют.

Шаг 2. Заполнение справочника валют и загрузка курсов

После включения опции нам станет доступен справочник валют. Для настройки автоматического обновления курсов выполним операции:

  1. Перейдем в справочник Валюты (его можно найти через функции технического специалиста или в разделе «Деньги»);
  2. Нажмем кнопку Добавить и выберем нужные валюты из Общероссийского классификатора валют (ОКВ) — например, USD (840) или CNY (156);
  3. Настроим способ загрузки курса: выберем переключатель Загружать из Интернета;
  4. Для автоматизации процесса настроим регламентное задание ЗагрузкаКурсовВалют, которое будет ежедневно в фоновом режиме обновлять курсы валют в базе данных.

Шаг 3. Использование валют в закупках и ценообразовании

Теперь мы можем полноценно автоматизировать работу с валютными прайсами поставщиков:

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

    РозничнаяЦена = ЦенаЗакупкиВВалюте * КурсВалюты * КоэффициентНаценки

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

← На главную