Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 19:06

Построение диаграмм

Автор Golickoff, 27 окт 2015, 03:28

0 Пользователей и 1 гость просматривают эту тему.

Golickoff

Всем привет.
Решил изучить механизм построения диаграмм, но к своему удивлению обнаружил что найти в сети материалы по данной теме довольно проблематично. Набросал для самообразования простенький отчёт, в который вставил диаграмму, но вместо вменяемого результата вижу непонятный рисунок. Ниже приведён код и рисунок. Буду признателен за тыкание носом в ошибки, но ещё больше буду благодарен за ссылку на подробное описание процесса построения диаграмм в 8.3.
Диаграмма                        = Макет.Рисунки.D1.Объект;
Диаграмма.ИсточникДанных         = Неопределено;
Диаграмма.Обновление             = Ложь;
Диаграмма.КоличествоСерий        = 0;
Диаграмма.КоличествоТочек        = 0;
Диаграмма.МаксимумСерий          = МаксимумСерий.НеЗадано;
Диаграмма.ВидПодписей            = ВидПодписейКДиаграмме.Значение;
Диаграмма.ОбластьЗаголовка.Текст = "Диаграмма расходов";
Запрос.Текст = "ВЫБРАТЬ
      | ДенежныеОборотыОстаткиИОбороты.ВидыРасходов КАК ВидРасхода,
      | ДенежныеОборотыОстаткиИОбороты.СуммаРасход КАК Расход
      |ИЗ
      | РегистрНакопления.ДенежныеОбороты.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Период, ДвиженияИГраницыПериода, ) КАК ДенежныеОборотыОстаткиИОбороты
      |ГДЕ
      | ДенежныеОборотыОстаткиИОбороты.ЧленСемьи = &ЧленСемьи
      |
      |УПОРЯДОЧИТЬ ПО
      | ВидРасхода";
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Сумма = 0;
Для Каждого Строка Из РезультатЗапроса Цикл
КоличествоСерий = Диаграмма.Серии.Количество();
КоличествоТочек = Диаграмма.Точки.Количество();
Диаграмма.КоличествоСерий = КоличествоСерий + 1;
Диаграмма.КоличествоТочек = КоличествоТочек + 1;
Диаграмма.Серии[КоличествоСерий].Текст = Строка["ВидРасхода"].Наименование;
Диаграмма.Серии[КоличествоСерий].Расшифровка = Строка["ВидРасхода"].Наименование;
Диаграмма.Серии[КоличествоСерий].Значение = Строка["ВидРасхода"].Наименование;
Диаграмма.Точки[КоличествоТочек].Текст = Строка["Расход"];
Диаграмма.Точки[КоличествоТочек].Расшифровка = Строка["Расход"];
Диаграмма.Точки[КоличествоТочек].Значение = Строка["Расход"];
КонецЦикла;

Диаграмма.Обновление = Истина;
Табдок.Вывести(ОбластьДиаграммы);

В итоге получаю следующую картину:

Печально, что посмотреть на график в процессе отладки нельзя и до того как он будет выведен, он представляет из себя ящик Пандоры.
Чтобы было понятнее с чем мы имеем дело, ниже представлен результат запроса:

Пожалуй, стоит добавить что при каждом нажатии на кнопку "Сформировать отчёт" столбцы диаграммы хаотично прыгают как эквалайзер, т.е. каждый раз принимают новое значение.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

Luzer1C

Мне кажется, что ничего сложного нет. Лучше конечно сперва попробовать разместить диаграмму на форме и посмотреть как это всё работает.
Для примера мучился недавно с диаграммой Ганта.
https://forum-baza.ru/index.php?topic=46323.msg131999#msg131999
Халамбалам.

Golickoff

Да, вытащив диаграмму на форму всё сразу стало яснее. Спасибо.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

Теги: Диаграмма 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск