Как в ресурсы в СКД вывести секунды, если количество секунд превышает 24 часа

1. olegmedvedev 65 27.04.17 09:31 Сейчас в теме
В общем такая проблема:
Как в ресурсы в СКД вывести секунды в формате ЧЧЧЧ:мм:сс. если количество секунд превышает 24 часа? если можно вывести в формате КоличествоДней:ЧЧ:мм:сс, то было бы вообще замечательно. Но возможно ли так сделать?
Пример во вложении(обычные формы, СКД. должен работать на любой конфе).
Сейчас выводит данные как на скриншоте 01.
А хотелось чтобы как в Экселе на скриншоте 02.
Используется вычисляемое поле и ресурс с формулой ДобавитьКДате(ДатаВремя(1,1,1),"Секунда",Секунды)
В формате указано ДЛФ=T.
Прикрепленные файлы:
Пример.erf
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. WasiliyMay 8 27.04.17 10:00 Сейчас в теме
(1)Может добавить пустое поле, сделать по нему группировку, а поле секунды поместить в ресурсы. Тогда в итогах по полю время должно будет посчитаться от итога по полю секунды.
7. olegmedvedev 65 27.04.17 10:05 Сейчас в теме
(5)и в итого у меня будут секунды. а мне хотелось бы 33 часа 12 минут 1 секунда
2. Sokar 27.04.17 09:41 Сейчас в теме
вот пример со стороннего ресурса

 Секунд=7527; 
Часов=Цел(Секунд/3600);
СекОстМин= Секунд%3600;    
Минут=Цел(СекОстМин/60);
Сек=СекОстМин%60;
Если Часов<10 Тогда
Часов="0"+СокрЛП(Часов);
Иначе
Часов=СокрЛП(Часов);    
КонецЕсли;
Если Минут<10 Тогда
Минут="0"+СокрЛП(Минут);
Иначе
Минут=СокрЛП(Минут);    
КонецЕсли;
Если Сек<10 Тогда
Сек="0"+СокрЛП(Сек);
Иначе
Сек=СокрЛП(Сек);    
КонецЕсли;
Время=Часов+":"+Минут+":"+Сек;
Сообщить(""+Время);
Показать
3. olegmedvedev 65 27.04.17 09:45 Сейчас в теме
(2) Спасибо за ответ, но как это запихать в ресурсы СКД?
4. chock23 2 27.04.17 09:58 Сейчас в теме
(3) Используйте вычисляемые поля в СКД или вообще делайте вычисления в поле запроса, можно часть действий делать в поле запроса, а завершать вычисления в вычисляемых полях, ну это уже на ваше усмотрение.
6. olegmedvedev 65 27.04.17 10:03 Сейчас в теме
(4)если честно я не представляю как ответ (2) можно решить при помощи вычисляемых полей
9. chock23 2 27.04.17 10:16 Сейчас в теме
(6) У Вас ведь секунды уже есть? Они получаются без вычисляемых полей? Прямо в запросе создайте три поля: Часы, минуты, секунды. В поле Часы пропишите: "ВЫБОР КОГДА ВЫРАЗИТЬ((Секунды/3600) - 0.5 КАК ЧИСЛО(15, 0))<10 тогда
"0"+ВЫРАЗИТЬ((Секунды/3600) - 0.5 КАК ЧИСЛО(15, 0))
ИНАЧЕ ВЫРАЗИТЬ((Секунды/3600) - 0.5 КАК ЧИСЛО(15, 0))
КОНЕЦ
и так каждое поле, а вычисляемое поле как в
(8) , или Часы+":"+Минуты+":"+Секунды;
На практике проеверить сейчас не могу
8. sommid 27.04.17 10:12 Сейчас в теме
я в отчете так делал:
в основном тексте запроса
ВЫБОР
		КОГДА ИсторияПриемкиКоробов.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)
				ИЛИ ИсторияПриемкиКоробов.ДатаНачала = ДАТАВРЕМЯ(1, 1, 1)
			ТОГДА 0
		ИНАЧЕ РАЗНОСТЬДАТ(ИсторияПриемкиКоробов.ДатаНачала, ИсторияПриемкиКоробов.ДатаОкончания, СЕКУНДА)
	КОНЕЦ КАК ДлительностьДействия,
	(ВЫРАЗИТЬ(ВЫБОР
			КОГДА ИсторияПриемкиКоробов.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)
					ИЛИ ИсторияПриемкиКоробов.ДатаНачала = ДАТАВРЕМЯ(1, 1, 1)
				ТОГДА 0
			ИНАЧЕ РАЗНОСТЬДАТ(ИсторияПриемкиКоробов.ДатаНачала, ИсторияПриемкиКоробов.ДатаОкончания, СЕКУНДА)
		КОНЕЦ / 3600 КАК ЧИСЛО(10, 0))) - ВЫБОР
		КОГДА МИНУТА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ВЫБОР
						КОГДА ИсторияПриемкиКоробов.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)
								ИЛИ ИсторияПриемкиКоробов.ДатаНачала = ДАТАВРЕМЯ(1, 1, 1)
							ТОГДА 0
						ИНАЧЕ РАЗНОСТЬДАТ(ИсторияПриемкиКоробов.ДатаНачала, ИсторияПриемкиКоробов.ДатаОкончания, СЕКУНДА)
					КОНЕЦ)) >= 30
			ТОГДА 1
		ИНАЧЕ 0
	КОНЕЦ КАК Часов,
	ВЫРАЗИТЬ((ВЫБОР
			КОГДА ИсторияПриемкиКоробов.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)
					ИЛИ ИсторияПриемкиКоробов.ДатаНачала = ДАТАВРЕМЯ(1, 1, 1)
				ТОГДА 0
			ИНАЧЕ РАЗНОСТЬДАТ(ИсторияПриемкиКоробов.ДатаНачала, ИсторияПриемкиКоробов.ДатаОкончания, СЕКУНДА)
		КОНЕЦ - ((ВЫРАЗИТЬ(ВЫБОР
				КОГДА ИсторияПриемкиКоробов.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)
						ИЛИ ИсторияПриемкиКоробов.ДатаНачала = ДАТАВРЕМЯ(1, 1, 1)
					ТОГДА 0
				ИНАЧЕ РАЗНОСТЬДАТ(ИсторияПриемкиКоробов.ДатаНачала, ИсторияПриемкиКоробов.ДатаОкончания, СЕКУНДА)
			КОНЕЦ / 3600 КАК ЧИСЛО(10, 0))) - ВЫБОР
			КОГДА МИНУТА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ВЫБОР
							КОГДА ИсторияПриемкиКоробов.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)
									ИЛИ ИсторияПриемкиКоробов.ДатаНачала = ДАТАВРЕМЯ(1, 1, 1)
								ТОГДА 0
							ИНАЧЕ РАЗНОСТЬДАТ(ИсторияПриемкиКоробов.ДатаНачала, ИсторияПриемкиКоробов.ДатаОкончания, СЕКУНДА)
						КОНЕЦ)) >= 30
				ТОГДА 1
			ИНАЧЕ 0
		КОНЕЦ) * 3600) / 60 КАК ЧИСЛО(3, 0)) КАК Минут
Показать

вычисляемое поле:
ДлительностьДействияПредставление: Выражение = Строка(Часов) + " ч " + Строка(Минут) + " мин"
Оставьте свое сообщение

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