Как в ресурсы в СКД вывести секунды, если количество секунд превышает 24 часа
В общем такая проблема:
Как в ресурсы в СКД вывести секунды в формате ЧЧЧЧ:мм:сс. если количество секунд превышает 24 часа? если можно вывести в формате КоличествоДней:ЧЧ:мм:сс, то было бы вообще замечательно. Но возможно ли так сделать?
Пример во вложении(обычные формы, СКД. должен работать на любой конфе).
Сейчас выводит данные как на скриншоте 01.
А хотелось чтобы как в Экселе на скриншоте 02.
Используется вычисляемое поле и ресурс с формулой ДобавитьКДате(ДатаВремя(1,1,1),"Секунда",Секунды)
В формате указано ДЛФ=T.
Как в ресурсы в СКД вывести секунды в формате ЧЧЧЧ:мм:сс. если количество секунд превышает 24 часа? если можно вывести в формате КоличествоДней:ЧЧ:мм:сс, то было бы вообще замечательно. Но возможно ли так сделать?
Пример во вложении(обычные формы, СКД. должен работать на любой конфе).
Сейчас выводит данные как на скриншоте 01.
А хотелось чтобы как в Экселе на скриншоте 02.
Используется вычисляемое поле и ресурс с формулой ДобавитьКДате(ДатаВремя(1,1,1),"Секунда",Секунды)
В формате указано ДЛФ=T.
Прикрепленные файлы:
Пример.erf


По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
вот пример со стороннего ресурса
Секунд=7527;
Часов=Цел(Секунд/3600);
СекОстМин= Секунд%3600;
Минут=Цел(СекОстМин/60);
Сек=СекОстМин%60;
Если Часов<10 Тогда
Часов="0"+СокрЛП(Часов);
Иначе
Часов=СокрЛП(Часов);
КонецЕсли;
Если Минут<10 Тогда
Минут="0"+СокрЛП(Минут);
Иначе
Минут=СокрЛП(Минут);
КонецЕсли;
Если Сек<10 Тогда
Сек="0"+СокрЛП(Сек);
Иначе
Сек=СокрЛП(Сек);
КонецЕсли;
Время=Часов+":"+Минут+":"+Сек;
Сообщить(""+Время);
Показать
(6) У Вас ведь секунды уже есть? Они получаются без вычисляемых полей? Прямо в запросе создайте три поля: Часы, минуты, секунды. В поле Часы пропишите: "ВЫБОР КОГДА ВЫРАЗИТЬ((Секунды/3600) - 0.5 КАК ЧИСЛО(15, 0))<10 тогда
"0"+ВЫРАЗИТЬ((Секунды/3600) - 0.5 КАК ЧИСЛО(15, 0))
ИНАЧЕ ВЫРАЗИТЬ((Секунды/3600) - 0.5 КАК ЧИСЛО(15, 0))
КОНЕЦ
и так каждое поле, а вычисляемое поле как в
(8) , или Часы+":"+Минуты+":"+Секунды;
На практике проеверить сейчас не могу
"0"+ВЫРАЗИТЬ((Секунды/3600) - 0.5 КАК ЧИСЛО(15, 0))
ИНАЧЕ ВЫРАЗИТЬ((Секунды/3600) - 0.5 КАК ЧИСЛО(15, 0))
КОНЕЦ
и так каждое поле, а вычисляемое поле как в
(8) , или Часы+":"+Минуты+":"+Секунды;
На практике проеверить сейчас не могу
я в отчете так делал:
в основном тексте запроса
вычисляемое поле:
ДлительностьДействияПредставление: Выражение = Строка(Часов) + " ч " + Строка(Минут) + " мин"
в основном тексте запроса
ВЫБОР
КОГДА ИсторияПриемкиКоробов.ДатаОкончания = ДАТАВРЕМЯ(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)) КАК Минут
Показатьвычисляемое поле:
ДлительностьДействияПредставление: Выражение = Строка(Часов) + " ч " + Строка(Минут) + " мин"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот