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