В статье приведен пример вывода отчета — диаграммы ганта следующего вида:

Отчет показывает время загрузки печей, а именно в каком режиме работала печь и в какой период времени.

В отчете по вертикали указаны номера печей, по горизонтали временной отрезок. Полоски, выделенные цветом, указывают на режим работы печи (нормализация, закалка, отпуск);

Порядок действий по созданию подобного отчета:

  • Создать внешнюю обработку;
  • Создать форму обработки, добавить в нее реквизит с типом данных — «Диаграмма ганта»;

  • По нажатию кнопки «Сформировать» вызвать следующую процедуру:
&НаСервере
Процедура СформироватьОтчет()
		
	ДиаграммаГанта.Очистить();
	              
	Запрос = Новый Запрос(
		"ВЫБРАТЬ
		|	Садка.НомерПечи КАК НомерПечи,
		|	Садка.Режим КАК Режим,
		|	Садка.НачалоРежима КАК НачалоРежима,
		|	Садка.ОкончаниеРежима КАК ОкончаниеРежима
		|ИЗ
		|	Документ.Сыдка КАК Садка
		|ГДЕ
		|	Садка.НомерПечи <> """"
		|	И Садка.НачалоРежима <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
		|	И Садка.ОкончаниеРежима <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
		|	И Садка.НачалоРежима МЕЖДУ &НачалоПериода И &ОкончаниеПериода");
	
	Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(Отчет.Период.ДатаНачала));
	Запрос.УстановитьПараметр("ОкончаниеПериода", КонецДня(Отчет.Период.ДатаОкончания));
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		
		//на оси по горизонтали отображается время
		//на оси по вертикали зададим отображение номеров печей
		Точка = ДиаграммаГанта.УстановитьТочку(Выборка.НомерПечи);
		//зададим в каком режиме будет работать печь
		Серия = ДиаграммаГанта.УстановитьСерию(Выборка.Режим);
		Значение = ДиаграммаГанта.ПолучитьЗначение(Точка, Серия);
		
		//установим период времени работы печи в заданном режиме
		Интервал = Значение.Добавить();
		Интервал.Начало = Выборка.НачалоРежима;
		Интервал.Конец = Выборка.ОкончаниеРежима;
		
	КонецЦикла;
	
КонецПроцедуры