Имя: Пароль:
1C
1С v8
Почему не работает круговая диаграмма?
0 JochenPeiper
 
17.08.15
18:02
Народ, подскажите плиз. Не  работает круговая диаграмма объемная.
Нужно отображать заполненность склада  материалов
- песок,
- цемент,
- керамзит,

Если песок 5 % от всех складских площадей
то выводить две секции 95% свободно и 5% песок.

Почему то отображает всю диаграмму одним цветом
1 JochenPeiper
 
17.08.15
18:03
// вернуть Истина если Серия уже существует в диаграмме
Функция ДиаграммаСерияСоздана(Диаграмма,Серия)

    Индекс=0;
    Для Каждого ТекущаяСерия из Диаграмма.Серии Цикл
        Индекс = Индекс + 1;        
        Если ТекущаяСерия = Серия Тогда    
            Возврат Истина;        
        КонецЕсли;    
    КонецЦикла;

    Возврат Ложь;        
КонецФункции

// вернуть истина если точка уже существует в диаграмме
Функция ДиаграммаТочкаСоздана(Диаграмма,Точка)

    Индекс=0;
    Для Каждого ТекущаяТочка из Диаграмма.Точки Цикл
        Индекс = Индекс + 1;        
        Если ТекущаяТочка = Точка Тогда    
            Возврат Истина;        
        КонецЕсли;    
    КонецЦикла;

    Возврат Ложь;        
КонецФункции

// установить значение в Диаграмме на пересечении точки и серии
Функция ДиаграммаДобавитьЗначение(Диаграмма,Точка,Серия,Значение)

    // если такой точки еще нет в диаграмме - добавляем точку в диаграмму
    Если Не ДиаграммаТочкаСоздана(Диаграмма,Точка)  Тогда    
        Диаграмма.Точки.Добавить(Точка);
    КонецЕсли;  

    //// если такой серии еще нет в диаграмме - добавляем серию в диаграмму
    Если Не ДиаграммаСерияСоздана(Диаграмма,Серия)  Тогда    
        Диаграмма.Серии.Добавить(Серия);
    КонецЕсли;  

    // установить значение на пересечении точки и серии  
    Диаграмма.УстановитьЗначение(Точка,Серия,Значение);
КонецФункции



Процедура ОбновитьЗначенияКруговойДиаграммы(ИмяДиаграммы,ТаблицаПараметров)

   КруговаяДиаграмма  = ЭлементыФормы[ИмяДиаграммы];
   КруговаяДиаграмма.Очистить();
  
   КруговаяДиаграмма.СводнаяСерия.Значение = 100;
      
   ИндексТочки = 0;
  
  
   Для Каждого СерияДиаграммы Из  ТаблицаПараметров Цикл
      
       ЗначениеПараметра = СерияДиаграммы.ЗначениеПараметра;
       Если ЗначениеПараметра = 0 Тогда
               Продолжить;
       КонецЕсли;      
      
   ИндексТочки           = ИндексТочки + 1;
  
   ТекущаяСерия          = КруговаяДиаграмма.Серии.Добавить(СерияДиаграммы.ИмяПараметра);
   ЗначениеПараметра     = СерияДиаграммы.ЗначениеПараметра;
   ТекущаяТочка          = КруговаяДиаграмма.Точки.Добавить(ИндексТочки);
   КруговаяДиаграмма.УстановитьЗначение(ТекущаяТочка,ТекущаяСерия,ЗначениеПараметра);
   ТекущаяСерия.Значение = ЗначениеПараметра;
      
   КонецЦикла;
   КруговаяДиаграмма.ОбластьЗаголовка.Текст = "Склад материалов";
  
   КруговаяДиаграмма.Обновление           = Истина;
   КруговаяДиаграмма.АвтоТранспонирование = Истина;
   КруговаяДиаграмма.Видимость            = Истина;
КонецПроцедуры    



Процедура КнопкаВыполнитьНажатие(Кнопка)
    
ТаблицаПараметровДляОтображенияДиаграммы = Новый ТаблицаЗначений;    
ТаблицаПараметровДляОтображенияДиаграммы.Колонки.Добавить("ИмяПараметра");
ТаблицаПараметровДляОтображенияДиаграммы.Колонки.Добавить("ЗначениеПараметра");

НоваяСтрока                   =  ТаблицаПараметровДляОтображенияДиаграммы.Добавить();
НоваяСтрока.ИмяПараметра      = "Песок";
НоваяСтрока.ЗначениеПараметра = 5;

НоваяСтрока                   =  ТаблицаПараметровДляОтображенияДиаграммы.Добавить();
НоваяСтрока.ИмяПараметра      = "Цемент";
НоваяСтрока.ЗначениеПараметра = 10;

НоваяСтрока                   =  ТаблицаПараметровДляОтображенияДиаграммы.Добавить();
НоваяСтрока.ИмяПараметра      = "Керамзит";
НоваяСтрока.ЗначениеПараметра = 0;

ТаблицаПараметровДляОтображенияДиаграммы.ВыбратьСтроку();
ОбновитьЗначенияКруговойДиаграммы("ЗаполненностьСклада",ТаблицаПараметровДляОтображенияДиаграммы);
    
КонецПроцедуры
2 JochenPeiper
 
17.08.15
18:03
Помогите, плиз.
3 Живой Ископаемый
 
17.08.15
18:12
"8-ка сырая еще"
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.