HelpF.pro

Как заполнить диаграмму данными?

Код 1C v 8.х
 Диаграмма = ЭлементыФормы.Диаграмма; 

// Очистить диаграмму, возможно ранее в нее уже выводились данные. 
Диаграмма.КоличествоСерий = 0; 
Диаграмма.КоличествоТочек = 0; 

// Количество серий будет ограничиваться (не все значения будут показываться). 
Диаграмма.МаксимумСерий = МаксимумСерий.Ограничено; 
Диаграмма.МаксимумСерийКоличество = 7; 
Диаграмма.ВидПодписей = ВидПодписейКДиаграмме.Процент; 
Диаграмма.ОбластьЗаголовка.Текст = "Обороты номенклатуры"; 

Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ 
|	ПродажиКомпанииОбороты.Номенклатура, 
|	СУММА(ПродажиКомпанииОбороты.КоличествоОборот) КАК КоличествоОборот 
|ИЗ 
|	РегистрНакопления.Продажи.Обороты(, , , ) КАК ПродажиКомпанииОбороты 
|СГРУППИРОВАТЬ ПО 
|	ПродажиКомпанииОбороты.Номенклатура"; 

Результат = Запрос.Выполнить(); 

// Запретить обновление диаграммы на время вывода данных. 
Диаграмма.Обновление = Ложь; 

// Установить единственную точку. 
Диаграмма.КоличествоТочек = 1; 
Диаграмма.Точки[0].Текст = "Количество"; 
Выборка = Результат.Выбрать(); 

Пока Выборка.Следующий() Цикл 

	// Количество серий, если бы не ограничивали зависело бы от результата запроса. 
	КоличествоСерий = Диаграмма.Серии.Количество(); 
	Диаграмма.КоличествоСерий = КоличествоСерий + 1; 
	Диаграмма.Серии[КоличествоСерий].Текст = Выборка.Номенклатура; 

	// Установить значение "на пересечении" точки и серии. 
	// Первый параметр - 0 , так как в диаграмме только одна точка. 
	Диаграмма.УстановитьЗначение(0, КоличествоСерий, Выборка.КоличествоОборот); 

КонецЦикла; 

// Обновить диаграмму. 
Диаграмма.Обновление = Истина;   


Код 1C v 7.x
 //Пример 1:
Процедура ПостроитьДиаграмму(Диагр)
  КолСерий=0;
  //количество серий определяется по количеству элементов в справочнике Материалы   Спр=СоздатьОбъект("Справочник.Материалы");
  Спр.ВыбратьЭлементы();
  Пока Спр.ПолучитьЭлемент()=1 Цикл
    // группы элементов пропускаются
    Если Спр.ЭтоГруппа()=0 Тогда
      КолСерий=КолСерий+1;
    КонецЕсли;
  КонецЦикла;
  // установка количества серий и точек
  Диагр.КоличествоСерий(КолСерий);
  Диагр.КоличествоТочек(1);
  //в качестве значений на диаграмме примем количественное сальдо конечное по счету 10 и текущему элементу справочника
  БИ=СоздатьОбъект("БухгалтерскиеИтоги");
  БИ.Рассчитать(ДатаОтчета, ДатаОтчета);
  номер=1;
  Спр.ВыбратьЭлементы();
  Пока Спр.ПолучитьЭлемент()=1 Цикл
    Если Спр.ЭтоГруппа()=0 Тогда
      Диагр.УстановитьИмяСерии(Номер, Спр.Наименование);
      Диагр.УстановитьЗначение(1,номер,БИ.СКД("10","К",,Спр.ТекущийЭлемент()));
      номер=номер+1;
    КонецЕсли;
  КонецЦикла;
КонецПроцедуры 


Код 1C v 7.x
 // Пример 2:
Процедура СформироватьДиаграмму(Диаграмма1)
    // Блокируем обновление, пока обрабатываются данные
    Диаграмма1.Обновление(0);
    Диаграмма1.Заголовок = "Поступления от покупателей";
    Диаграмма1.УстановитьИмяСерии(1, "Рубли");
    Диаграмма1.АвтоУстановкаИменТочек(1);

    // Заполним диаграмму значениями
    БухИт = СоздатьОбъект("БухгалтерскиеИтоги");

    Бухит.ВыполнитьЗапрос(НачКвартала(РабочаяДата()),
    КонКвартала(РабочаяДата()),"60.1",,,1,"Неделя","С");

    БухИт.ВыбратьПериоды();
    А = 1;
    // дебетовые обороты по счету 60.1 покажут поступления
    // денег от покупателей
    Пока БухИт.ПолучитьПериод() = 1 Цикл

        Диаграмма1.УстановитьЗначение(А, 1, БухИт.ДО());
        А = А +1;

    КонецЦикла;

    // после наполнения данными перерисовываем
    Диаграмма1.Обновление(1);

КонецПроцедуры 

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/369.html