Часто в процессе эксплуатации 1С:Управление торговлей (ред. 11.5) пользователи сталкиваются с ситуацией, когда цена товара при использовании зависимых видов цен начинает принимать странные, необъяснимые значения. Казалось бы, формула настроена верно, курс валюты в системе обновлен, но итоговая стоимость не соответствует ожиданиям. Давайте разберем, как диагностировать и устранить эту проблему.
В большинстве случаев проблема кроется не в программном коде конфигурации, а в настройках самого механизма ценообразования или регистра сведений Курсы валют. Система 1С работает по строгим математическим правилам: если цена одного вида зависит от цены другого через курс валюты, система выполняет пересчет, опираясь на данные, внесенные в справочники.
Наиболее частые причины ошибок:
Кратность в регистре курсов валют влияет на результат деления. Если вместо 1 указать 10 или 100, итоговая цена изменится кратно.Прежде всего, проанализируем состояние регистра Курсы валют. В системе 1С базовая валюта — это точка отсчета. По умолчанию для неё курс всегда равен 1. Если пользователь по ошибке задал для рубля курс, например, 57, то при любом математическом пересчете система будет использовать это значение как делитель или множитель.
Для исправления ситуации выполним следующие действия:
Нормативно-справочная информация и администрирование.См. также -> Валюты.Рубль) установлен курс 1.Если проверка справочников не дала результата, необходимо привлечь инструменты разработчика. Как показывает практика, самым надежным способом понять, «почему система так считает», является использование отладчика 1С.
Рассмотрим, как это работает на практике:
Конфигуратор.Табло, чтобы посмотреть текущие значения переменных: Курс, Кратность, БазоваяЦена.Часто в коде мы видим, что система берет не то значение, которое мы ожидали увидеть. Например:
// Пример логики расчета
ЦенаВРублях = ЦенаВЕвро * КурсВалюты / Кратность;
Внимательно посмотрев на значения переменных в Табло, вы сразу увидите, какая именно переменная содержит «неправильное» число, что мгновенно укажет на место ошибки в настройках.
Если курсы верны, рассмотрим настройки самого вида цены. Убедимся, что Способ задания цены настроен корректно:
Подводя итог, можно сказать, что решение таких задач сводится к трем этапам: проверка данных (курсы валют), диагностика логики (отладчик) и верификация настроек (способы расчета). В 90% случаев проблема решается приведением курса базовой валюты к значению 1.