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