1С8. Пример: Строим простой график - гистограмму.

Пример демонстрирует принципы построения графика - гистограмму .

1c не ПоказыватьВСпискеВыбора

Процедура ПостроитьДиаграмму(Траб,Диаграмма)
	Для Каждого Колонка из Траб.Колонки Цикл
		Если Траб.Колонки.Индекс(Колонка) <> 0 Тогда
			Диаграмма.Серии.Добавить(Колонка.Имя);
		КонецЕсли;
	КонецЦикла;
	
	Для Каждого СтрТраб из Траб Цикл
		Точка=Диаграмма.Точки.Добавить(СтрТраб.Получить(0));
		Индекс=0;
		Для Каждого Серия из Диаграмма.Серии Цикл
			Индекс=Индекс+1;
			Диаграмма.УстановитьЗначение(Точка,Серия,СтрТраб.Получить(Индекс));
		КонецЦикла; 
	КонецЦикла; 
КонецПроцедуры

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

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

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

Функция СоздатьДиаграмму()
	
	ТабличныйДокумент = новый ТабличныйДокумент();
	
	ДиаграммаТД = ТабличныйДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Диаграмма);
	ДиаграммаТД.Расположить(ТабличныйДокумент.Область("R1C1:R24C10"));
	
	Диаграмма = ДиаграммаТД.Объект;
		
	Диаграмма.ТипДиаграммы = ТипДиаграммы.ГистограммаОбъемная;
	Диаграмма.ВидПодписей = ВидПодписейКДиаграмме.Значение;
	Диаграмма.ОбластьЗаголовка.Текст = "Текст Заголовка";
		
	x = 0; y = 0; v = 1;
	ДиаграммаДобавитьЗначение(Диаграмма,x, y, v);
	
	x = 1; y = 1; v = 3;
	ДиаграммаДобавитьЗначение(Диаграмма,x, y, v);
	
	x = 2; y = 2; v = 4;
	ДиаграммаДобавитьЗначение(Диаграмма,x, y, v);    
	
	ТабличныйДокумент.Показать();
	
	
КонецФункции	

СоздатьДиаграмму(); // начало




Рекламный блок:

Предлагаем решение Ваших задач 1С.

Внедрение 1С:

Доработка и сопровождение 1С:

Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.

Пишите: j008@j008.ru

Звоните: 8 916 710 83 51 Ольга