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

1. olegmedvedev 66 27.04.17 09:31 Сейчас в теме
В общем такая проблема:
Как в ресурсы в СКД вывести секунды в формате ЧЧЧЧ:мм:сс. если количество секунд превышает 24 часа? если можно вывести в формате КоличествоДней:ЧЧ:мм:сс, то было бы вообще замечательно. Но возможно ли так сделать?
Пример во вложении(обычные формы, СКД. должен работать на любой конфе).
Сейчас выводит данные как на скриншоте 01.
А хотелось чтобы как в Экселе на скриншоте 02.
Используется вычисляемое поле и ресурс с формулой ДобавитьКДате(ДатаВремя(1,1,1),"Секунда",Секунды)
В формате указано ДЛФ=T.
Прикрепленные файлы:
Пример.erf
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. WasiliyMay 8 27.04.17 10:00 Сейчас в теме
(1)Может добавить пустое поле, сделать по нему группировку, а поле секунды поместить в ресурсы. Тогда в итогах по полю время должно будет посчитаться от итога по полю секунды.
7. olegmedvedev 66 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 66 27.04.17 09:45 Сейчас в теме
(2) Спасибо за ответ, но как это запихать в ресурсы СКД?
4. chock23 2 27.04.17 09:58 Сейчас в теме
(3) Используйте вычисляемые поля в СКД или вообще делайте вычисления в поле запроса, можно часть действий делать в поле запроса, а завершать вычисления в вычисляемых полях, ну это уже на ваше усмотрение.
6. olegmedvedev 66 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)) КАК Минут
Показать

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

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