Коллеги, доброго времени суток.
На днях поступила задача отображения данных на диаграмме в форме обработки, а точнее создание онлайн-табло с графиками. При построении диаграммы с помощью СКД проблем не возникло. Поиски в Google и на форумах не увенчались успехом. Для того чтобы данную задачу решить на форме обработки было сделано следующее
На форме обработки создано поле диаграммы
В модуле формы написан следующий код
Диаграмма = ЭлементыФормы.ДиаграммаПлан;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РасчетнаяТаблица.ДатаПериода КАК ДатаПериода,
| РасчетнаяТаблица.ФактНарастающий КАК ФактНарастающий,
| РасчетнаяТаблица.Прогноз КАК Прогноз,
| РасчетнаяТаблица.ФактПоступлений КАК ФактПоступлений,
| РасчетнаяТаблица.ПланНаМесяц КАК ПланНаМесяц,
| РасчетнаяТаблица.План75 КАК План75,
| РасчетнаяТаблица.ПланНарастающий КАК ПланНарастающий,
| РасчетнаяТаблица.ПрогнозНарастающий КАК ПрогнозНарастающий,
| РасчетнаяТаблица.ВыполнениеПлана КАК ВыполнениеПлана,
| РасчетнаяТаблица.ВыполнениеПрогноза КАК ВыполнениеПрогноза
|ПОМЕСТИТЬ ТаблицаДляДиаграммы
|ИЗ
| &РасчетнаяТаблица КАК РасчетнаяТаблица
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаДляДиаграммы.ДатаПериода КАК ДатаПериода,
| ТаблицаДляДиаграммы.ФактНарастающий КАК ФактНарастающий,
| ТаблицаДляДиаграммы.Прогноз КАК Прогноз,
| ТаблицаДляДиаграммы.ФактПоступлений КАК ФактПоступлений,
| ТаблицаДляДиаграммы.ПланНаМесяц КАК ПланНаМесяц,
| ТаблицаДляДиаграммы.План75 КАК План75,
| ТаблицаДляДиаграммы.ПланНарастающий КАК ПланНарастающий,
| ТаблицаДляДиаграммы.ПрогнозНарастающий КАК ПрогнозНарастающий,
| ТаблицаДляДиаграммы.ВыполнениеПлана КАК ВыполнениеПлана,
| ТаблицаДляДиаграммы.ВыполнениеПрогноза КАК ВыполнениеПрогноза
|ИЗ
| ТаблицаДляДиаграммы КАК ТаблицаДляДиаграммы
|ИТОГИ
| МАКСИМУМ(ФактНарастающий),
| СУММА(Прогноз),
| МАКСИМУМ(ФактПоступлений),
| СУММА(ПланНаМесяц),
| МАКСИМУМ(План75),
| МАКСИМУМ(ПланНарастающий),
| МАКСИМУМ(ПрогнозНарастающий),
| СУММА(ВыполнениеПлана),
| СУММА(ВыполнениеПрогноза)
|ПО
| ДатаПериода";
Запрос.УстановитьПараметр("РасчетнаяТаблица",РасчетнаяТаблица);
РезультатЗапроса = Запрос.Выполнить();
Диаграмма.Обновление = Ложь;
Диаграмма.Очистить();
Диаграмма.АвтоТранспонирование = Ложь;
Серия = Диаграмма.Серии.Добавить();
Серия2 = Диаграмма.Серии.Добавить();
Серия3 = Диаграмма.Серии.Добавить();
Серия4 = Диаграмма.Серии.Добавить();
Серия5 = Диаграмма.Серии.Добавить();
//Точка2 = Диаграмма.Точки.Добавить();
ВыборкаДатаПериода = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаДатаПериода.Следующий() Цикл
// Серия = Диаграмма.Серии.Добавить();
Точка = Диаграмма.УстановитьТочку(Формат(ВыборкаДатаПериода.ДатаПериода, "ДФ=dd.MM.yyyy"));
Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаДатаПериода.ФактНарастающий, );
Диаграмма.УстановитьЗначение(Точка, Серия2, ВыборкаДатаПериода.План75, );
Диаграмма.УстановитьЗначение(Точка, Серия3, ВыборкаДатаПериода.ПрогнозНарастающий, );
Диаграмма.УстановитьЗначение(Точка, Серия4, ВыборкаДатаПериода.ФактПоступлений, );
Диаграмма.УстановитьЗначение(Точка, Серия5, ВыборкаДатаПериода.ПланНарастающий, );
//Диаграмма.УстановитьЗначение(Точка, Серия6, ВыборкаДатаПериода.ПрогнозНарастающий, );
КонецЦикла;
Диаграмма.АвтоТранспонирование = Истина;
Диаграмма.Обновление = Истина;
Диаграмма.ОтображатьЛегенду=Ложь;
ЭлементыФормы.Надпись84.Заголовок ="Выполнение плана продаж за " + Формат(ДатаСреза, "ДФ=ММММ")+" месяц по состоянию на "+Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") + " процент выполнения " + выполнениеПлана;
В параметрах была передана таблица значений. В итоге был получен желаемый результат.
Эта публикация является примером ее можно перестроить под свои задачи.
В связи с тем что сам давно искал решение данной задачи. Нашел и решил написать публикацию.
Буду рад услышать отзывы так и критику в свой адрес. Прошу сильно не бить, если что-то не так написал.
Спасибо за внимание.