При переходе на конфигурацию «1С:Розница» со старших систем учета (таких как «1С:Управление торговлей» или «1С:ERP») многие разработчики и аналитики сталкиваются с неожиданным открытием: в программе отсутствует привычный полноценный многовалютный учет. Это вызывает массу вопросов, ведь даже небольшие розничные магазины часто закупают товары у импортных поставщиков или работают с прайс-листами в условных единицах (у.е.).
В этой статье мы подробно разберем, почему в редакциях «1С:Розница 2.x» не было полноценной работы с валютами, какие архитектурные ограничения заложили разработчики фирмы 1С и как решить эту задачу в современных реалиях с выходом редакции «1С:Розница 3.0».
---
Проанализируем структуру метаданных старых версий конфигурации «1С:Розница». Если вы откроете конфигуратор версии 2.3, то действительно не обнаружите там предопределенного справочника Валюты. Реквизиты с названием «Валюта» присутствуют в регистрах сведений и некоторых документах, но при детальном рассмотрении оказывается, что их тип данных — это Строка.
Это сделано намеренно по следующим причинам:
Тем не менее розничным торговцам регулярно требуется анализировать валютные прайсы поставщиков, рассчитывать рублевую цену на основе курса доллара или евро и оперативно реагировать на колебания курсов. Рассмотрим, как решать эту задачу. Для сопоставления прайс-листов и контроля наценок подойдёт отчёт для анализа цен поставщиков и расчёта наценок.
---
Если вы по-прежнему вынуждены работать в устаревших редакциях программы, у вас есть несколько путей автоматизации валютных расчетов.
Поскольку хранить валюту как объект в базе нельзя, самым популярным решением является пересчет цен непосредственно в момент импорта прайс-листа поставщика. Напишем алгоритм, который запрашивает курс валюты (например, через сторонний API или вводит вручную) и записывает цены поставщика в рублевом эквиваленте.
Рассмотрим пример программного кода для внешней обработки, преобразующей валютную цену в рублевую перед записью в документ УстановкаЦенНоменклатуры:
// Функция пересчитывает цену из валюты в рубли по заданному курсу
Функция ПересчитатьЦенуВРубли(ЦенаВВалюте, КурсВалюты) Экспорт
Если КурсВалюты <= 0 Тогда
ЗаписатьЛогОшибки("Неверно указан курс валюты для пересчета!");
Возврат ЦенаВВалюте;
КонецЕсли;
РублеваяЦена = ОкруглитьЦену(ЦенаВВалюте * КурсВалюты);
Возврат РублеваяЦена;
КонецФункции
// Процедура округления цен до копеек
Функция ОкруглитьЦену(ЗначениеЦены)
Возврат Окр(ЗначениеЦены, 2, РежимОкругления.ОкруглятьВБольшуюСторону);
КонецФункции
При использовании этого подхода в документах закупки и цен номенклатуры всегда будут фигурировать только рубли, но процесс расчета цен поставщика будет автоматизирован.
Это классический сценарий от фирмы 1С. Вся цепочка взаимодействия с иностранными контрагентами, ведение валютных договоров и импортные закупки оформляются в «1С:Управление торговлей». После этого с помощью типового обмена данными (синхронизации) в «1С:Розница» передаются готовые документы поступления и установки цен, пересчитанные по курсу на дату операции.
---
С выходом третьей редакции ситуация изменилась коренным образом. Разработчики полностью переписали архитектуру «1С:Розница 3.0», объединив ее код с конфигурацией «1С:Управление нашей фирмой» (УНФ 3.0). Поскольку в УНФ изначально присутствовал полноценный управленческий и многовалютный учет, он перешел «по наследству» и в новую Розницу.
Выясним, какие возможности появились у пользователей в новой версии программы:
Валюты;---
Разберем по шагам, как задействовать новый функционал мультивалютности в современной редакции программы.
По умолчанию в Рознице 3.0 включен простой учет в одной валюте (рубли). Чтобы активировать мультивалютность, выполним следующие действия:
После включения опции нам станет доступен справочник валют. Для настройки автоматического обновления курсов выполним операции:
Валюты (его можно найти через функции технического специалиста или в разделе «Деньги»);ЗагрузкаКурсовВалют, которое будет ежедневно в фоновом режиме обновлять курсы валют в базе данных.Теперь мы можем полноценно автоматизировать работу с валютными прайсами поставщиков:
ПриходнаяНакладная теперь можно заполнять в валюте поставщика. Программа автоматически пересчитает рублевую стоимость для регламентированного учета по курсу на дату накладной;РозничнаяЦена = ЦенаЗакупкиВВалюте * КурсВалюты * КоэффициентНаценки
Таким образом, при изменении курса доллара или евро нам достаточно запустить обработку пересчета цен, и система автоматически актуализирует все рублевые ценники в магазине, избавляя сотрудников от ручного перерасчета на калькуляторе. Для расчёта и назначения розничных цен прямо в документе поступления можно использовать расширение для установки розничных цен в приходной накладной.