Диаграмма ганта.Как убрать лишние часы в временной шкале?

1. fozzy 06.02.14 15:06 Сейчас в теме
Уважаемые гуру, подскажите пожалуйста, как в диаграмме Ганта не выводить лишние часы?
есть временная шкала - 3-е суток по 24 час. а мне выводить надо только с 9-ти до 18 часов и так для каждого дня.
uasy_user611066; +1 Ответить
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. girtl 31.07.14 21:17 Сейчас в теме
Хочется апнуть тему! Мучаюсь уже 3й день с тем же вопросом. Интернет перерыт, а ответов нет. Нигде не нашел информации типа категоричного "нет, так нельзя сделать". Для информации. Конфигурация 1С УПП Платформа 8.1. Отчет "Диаграмма загрузки рабочих центров".
3. DikSer 01.08.14 04:46 Сейчас в теме
В настройках диаграммы есть "НачалоПолногоИнтервала" "КонецПолногоИнтервала", вроде там.
4. girtl 01.08.14 17:35 Сейчас в теме
Там устанавливается период... пример с 31072014 по 10082014... так вот беда в том, что нельзя убрать выходные и не рабочие часы... Надо, чтоб выводило с 8:00 до 17:00 (31,1,4,5,6,7,8)... Рабочее время в рабочие дни.
5. itsnowbars 18.04.15 06:46 Сейчас в теме
Теперь и мне хочется апнуть тему. Бьюсь второй день.
Уже склоняюсь к тому, что это невозможно. Хотя потребность в данном решении, как мне кажется, достаточно очевидна.
6. hakerxp 3010 02.02.16 14:10 Сейчас в теме
Поддерживаю, есть такая недоработка в 1С
7. Dimon93dimon 17.03.16 16:52 Сейчас в теме
Кто нибудь нашёл решение?
8. zolotoff 05.12.16 14:56 Сейчас в теме
Наверно повторю вопрос, можно ли убрать часть часов из диаграммы или скрыть их?
9. Fox-trot 158 05.12.16 18:12 Сейчас в теме
предлагаю для начала определиться с версией платформы
10. forusing 52 05.02.18 11:30 Сейчас в теме
Лучше поздно, чем никогда )
Решение проблемы заключается в том, чтобы "заставить" систему обрабатывать рабочий день (ВремяНачала - ВремяОкончания) как полные сутки. Потребуется преобразование каждой даты интервалов (ДиаграммаМонитораЗагрузкиРемонтнойЗоныОпределитьПериодИнтерв­ала) и формирование "собственной" шкалы времени (ДиаграммаМонитораЗагрузкиРемонтнойЗоныШкалыВремени). Если разрешено редактирование - необходимо выполнить обратные преобразования.

Функция ДиаграммаМонитораЗагрузкиРемонтнойЗоныОпределитьПериодИнтервала( Знач Период, Знач ВремяНачала, Знач ВремяОкончания )
	
	Если ( ВремяНачала > 0 ) ИЛИ ( ВремяОкончания < 24 ) Тогда
		ПериодНачала    = НачалоДня( Период ) + ВремяНачала * 60 * 60;
		ПериодОкончания = НачалоДня( Период ) + ВремяОкончания * 60 * 60 - 1;
		
		Если ( Период < ПериодНачала ) Тогда
			Период = ПериодНачала;
		КонецЕсли;
		
		Если ( Период > ПериодОкончания ) Тогда
			Период = ПериодОкончания;
		КонецЕсли;		
		
		Период = НачалоДня( Период ) + ( Период - НачалоДня( Период ) - ВремяНачала * 60 * 60 ) * 24 / ( ВремяОкончания - ВремяНачала );		
	КонецЕсли;	
	
	Возврат Период;
	
КонецФункции


Процедура ДиаграммаМонитораЗагрузкиРемонтнойЗоныШкалыВремени( Знач ДиаграммаГанта, Знач ПериодНачало, Знач ПериодОкончание, Знач ВремяНачала, Знач ВремяОкончания, Знач ШкалаМинутКратность ) 
	
	ШкалаСутки = ДиаграммаГанта.ОбластьПостроения.ШкалаВремени.Элементы[ 0 ];
	
	Если ( ДиаграммаГанта.ОбластьПостроения.ШкалаВремени.Элементы.Количество() < 2 ) Тогда
		ШкалаЧасы = ДиаграммаГанта.ОбластьПостроения.ШкалаВремени.Элементы.Добавить();
	Иначе
		ШкалаЧасы = ДиаграммаГанта.ОбластьПостроения.ШкалаВремени.Элементы[ 1 ];
	КонецЕсли;
	
	Если ( ДиаграммаГанта.ОбластьПостроения.ШкалаВремени.Элементы.Количество() < 3 ) Тогда
		ШкалаМинуты = ДиаграммаГанта.ОбластьПостроения.ШкалаВремени.Элементы.Добавить();
	Иначе
		ШкалаМинуты = ДиаграммаГанта.ОбластьПостроения.ШкалаВремени.Элементы[ 2 ];
	КонецЕсли;
	
	ШкалаСутки.Метки.Очистить();
	ШкалаЧасы.Метки.Очистить();
	ШкалаМинуты.Метки.Очистить();
	
	Если ( ВремяНачала > 0 ) ИЛИ ( ВремяОкончания < 24 ) Тогда
		ШкалаСутки.Видимость 	                 = Истина;
		ШкалаЧасы.ОтображатьПериодическиеМетки   = Ложь;
		ШкалаСутки.ЛинииДелений                  = Новый Линия( ТипЛинииДиаграммы.Пунктир );
		
		ШкалаЧасы.Видимость 	                 = Истина;
		ШкалаЧасы.ОтображатьПериодическиеМетки   = Ложь;
		ШкалаЧасы.ЛинииДелений 	                 = Новый Линия( ТипЛинииДиаграммы.Пунктир );
		
		ШкалаМинуты.Видимость 	                 = Истина;
		ШкалаМинуты.ОтображатьПериодическиеМетки = Ложь;
		ШкалаМинуты.ЛинииДелений 	             = Новый Линия( ТипЛинииДиаграммы.Пунктир );
		
		Метка           = ШкалаСутки.Метки.Добавить( ДиаграммаМонитораЗагрузкиРемонтнойЗоныОпределитьПериодИнтерв­ала( ТекущаяДата(), ВремяНачала, ВремяОкончания ) );
	    Метка.ЦветЛинии = WebЦвета.Красный;
		
		Сутки = НачалоДня( ПериодНачало );
		
		Пока ( Сутки <= ПериодОкончание ) Цикл
			Метка       = ШкалаСутки.Метки.Добавить( ДиаграммаМонитораЗагрузкиРемонтнойЗоныОпределитьПериодИнтерв­ала( Сутки, ВремяНачала, ВремяОкончания ) );
			Метка.Текст = Формат( Сутки, "ДЛФ=DD" ) + ", " + Формат( Сутки, "ДФ=дддд" );
			
			Для Часы = ВремяНачала По ( ВремяОкончания - 1 ) Цикл
				Метка       = ШкалаЧасы.Метки.Добавить( ДиаграммаМонитораЗагрузкиРемонтнойЗоныОпределитьПериодИнтерв­ала( Сутки + Часы * 60 * 60, ВремяНачала, ВремяОкончания ) );
				Метка.Текст = Формат( Часы, "ЧЦ=2; ЧН=; ЧВН=" ) + ":00";
				
				Минуты = 0;
				
				Пока ( Минуты < 60 ) Цикл
					Метка       = ШкалаМинуты.Метки.Добавить( ДиаграммаМонитораЗагрузкиРемонтнойЗоныОпределитьПериодИнтерв­ала( Сутки + Часы * 60 * 60 + Минуты * 60, ВремяНачала, ВремяОкончания ) );
					Метка.Текст = Формат( Минуты, "ЧЦ=2; ЧН=; ЧВН=" );
					
					Минуты = Минуты + ШкалаМинутКратность;
				КонецЦикла;
			КонецЦикла;
			
			Сутки = НачалоДня( Сутки + 24 * 60 * 60 );
		КонецЦикла;
		
	Иначе
		ШкалаСутки.Видимость 	                 = Истина;
		ШкалаСутки.ОтображатьПериодическиеМетки  = Истина;
		ШкалаСутки.Единица 		                 = ТипЕдиницыШкалыВремени.День;
		ШкалаСутки.ЛинииДелений 	             = Новый Линия( ТипЛинииДиаграммы.Пунктир );
		ШкалаСутки.Кратность		             = 1;
		ШкалаСутки.ФорматДня	                 = ФорматДняШкалыВремени.ДеньМесяцаДеньНедели;
		
		ШкалаЧасы.Видимость 	                 = Истина;
		ШкалаЧасы.ОтображатьПериодическиеМетки   = Истина;
		ШкалаЧасы.Единица 		                 = ТипЕдиницыШкалыВремени.Час;
		ШкалаЧасы.ЛинииДелений 	                 = Новый Линия( ТипЛинииДиаграммы.Пунктир );
		ШкалаЧасы.Кратность		                 = 1;
		ШкалаЧасы.Формат		                 = "ДФ = ЧЧ:мм";

		ШкалаМинуты.Видимость 	                 = Истина;
		ШкалаМинуты.ОтображатьПериодическиеМетки = Истина;
		ШкалаМинуты.Единица 	                 = ТипЕдиницыШкалыВремени.Минута;
		ШкалаМинуты.ЛинииДелений                 = Новый Линия( ТипЛинииДиаграммы.Пунктир );
		ШкалаМинуты.Кратность	                 = ШкалаМинутКратность;
		
		Метка           = ШкалаСутки.Метки.Добавить( ТекущаяДата() );
	    Метка.ЦветЛинии = WebЦвета.Красный;
	КонецЕсли;
	
КонецПроцедуры
Показать
Прикрепленные файлы:
Alf06; user833363; eeeio; kote; +4 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот