Имя: Пароль:
1C
1С v8
v8: Киньте примером как нарисовать круговую диаграмму ☑
0 RomaH
 
naïve
21.02.12
✎
13:38
Собственно - с чего начать

есть ТЗ
Показатель / Значение

как вывести эту ТЗ в круговую диаграмму?
1 le_
 
21.02.12
✎
14:23
(0) Можно в СКД, можно вручную.
Начать можно с чтения СП и Хрусталевой.
2 RomaH
 
naïve
21.02.12
✎
15:46
ладно - с выводом значений более-менее разобрался
нифига не понятно - как с диаграммой на макете работать

создал макет - кинул на него диаграмму

потом програмно получаю макет - а там вместо диаграмм однои рисунки
3 RomaH
 
naïve
21.02.12
✎
16:07
Макет.Рисунки.D1.Объект

только получается что объект только для чтения и надо работать именно с его свойствами
4 zavsom
 
21.02.12
✎
16:08
СКД - рулит
5 le_
 
21.02.12
✎
16:16
ТабДокумент = Новый ТабличныйДокумент;
  Макет  = ПолучитьМакет("Макет");  
  График  = Макет.ПолучитьОбласть("График");
  Диаграмма=График.Рисунки.D1.Объект;  
  Диаграмма.СерииВСтроках=ложь;

  Диаграмма.Обновление = Ложь;
   
  Диаграмма.Очистить();
  Диаграмма.ОтображатьЗаголовок = Ложь;
 
  ТЗДиаграммы = Новый ТаблицаЗначений;
  ТЗДиаграммы.Колонки.Добавить("Измерение1");
  ТЗДиаграммы.Колонки.Добавить("Измерение2");
  ТЗДиаграммы.Колонки.Добавить("Точка");
  ТЗДиаграммы.Колонки.Добавить("Ресурс1");
  ТЗДиаграммы.Колонки.Добавить("Ресурс2");

  НовСтр = ТЗДиаграммы.Добавить();
  НовСтр.Измерение1="Склад1";
  НовСтр.Измерение2="Склад2";
  НовСтр.Точка="01/01/01";
  НовСтр.Ресурс1=10;
  НовСтр.Ресурс2=15;
 
  НовСтр = ТЗДиаграммы.Добавить();
  НовСтр.Измерение1="Склад1";
  НовСтр.Измерение2="Склад2";
  НовСтр.Точка="01/02/01";
  НовСтр.Ресурс1=5;
  НовСтр.Ресурс2=9;

 
   // Заполнить диаграмму
      Для Каждого ТекСтр из ТЗДиаграммы цикл
       // Получить серию, точку и значение для них
       ТекущаяСерия = Диаграмма.УстановитьСерию(ТекСтр.Измерение1);
       ТекущаяТочка = Диаграмма.УстановитьТочку(ТекСтр.Точка);
       Диаграмма.УстановитьЗначение(ТекущаяТочка, ТекущаяСерия, ТекСтр.Ресурс1, ,) ;
     
  ТекущаяСерия = Диаграмма.УстановитьСерию(ТекСтр.Измерение2);
  ТекущаяТочка = Диаграмма.УстановитьТочку(ТекСтр.Точка);
       Диаграмма.УстановитьЗначение(ТекущаяТочка, ТекущаяСерия, ТекСтр.Ресурс2, ,) ;
   КонецЦикла;
   
  //// Раскрасить серии своими цветами
  //Для Каждого Серия из Диаграмма.Серии Цикл
  //   Если Серия.Значение = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда
  //      Серия.Цвет = WEBЦвета.Желтый;
  //   ИначеЕсли Серия.Значение = ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда
  //      Серия.Цвет = WEBЦвета.Зеленый;
  //   ИначеЕсли Серия.Значение = ПланыВидовРасчета.ОсновныеНачисления.Невыход Тогда
  //      Серия.Цвет = WEBЦвета.Красный;
  //   КонецЕсли;
  //КонецЦикла;
   
   // Разрешить обновление диаграммы
   Диаграмма.Обновление = Истина;
 
  ТабДокумент.Вывести(График);
  ТабДокумент.Защита = Ложь;
  ТабДокумент.ТолькоПросмотр = Истина;
  ТабДокумент.Показать();


+ (1) У Габеца с товарищами на стр. 456 есть пример использования построителя для вывода диаграммы.