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

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 2347 02.02.16 14:10 Сейчас в теме
Поддерживаю, есть такая недоработка в 1С
7. Dimon93dimon 17.03.16 16:52 Сейчас в теме
Кто нибудь нашёл решение?
8. zolotoff 05.12.16 14:56 Сейчас в теме
Наверно повторю вопрос, можно ли убрать часть часов из диаграммы или скрыть их?
9. Fox-trot 156 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 Ответить
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день