Имя: Пароль:
1C
1С v8
8.2 УИ. Как динамически отформатировать секунды в ЧЧ:ММ:СС в форме списка?
,
0 wisekat
 
22.06.12
18:52
В форме списка показываю регистр накопления, одна из колонок - значение в секундах. Надо его на лету отформатировать и показать в формате ЧЧ:ММ:СС. Как это сделать в УИ?
1 shuhard
 
22.06.12
19:57
(0) странный вопрос - УО конечно
2 kosts
 
22.06.12
19:58
(0) формат попробуй
3 эцп
 
22.06.12
20:15
(0)(2) HH:mm:ss
4 acsent
 
22.06.12
20:19
у колонки есть свойство формат
5 wisekat
 
25.06.12
11:45
(2)(3)(4) Формат годится если у тебя значение дата/время, а у меня натуральные integer.
6 wisekat
 
25.06.12
11:47
(1) А условное оформление каким тут боком?? Ведь там ключевое понятие - ОФОРМЛЕНИЕ, а мне по сути математическое преобразование из секунд в часы/минуты/мекунды надо...
Может, я чего-то не знаю?
7 mistеr
 
25.06.12
11:55
(0) Ничего встроенного вроде нет, так что считать самому.
8 wisekat
 
25.06.12
12:32
(7) Так это и есть по сути мой вопрос: как правильно и эффективно сделать вычисляемое поле списка в 8.2 УИ?
9 wisekat
 
25.06.12
13:32
Например, для табличных частей в этих случаях можно "извратиться стандартными средствами" - добавить руками произвольный реквизит и его в событии ПриЧтенииНаСервере заполнить. А вот для динамическогосписка формы такого нету вроде...
Ну и подмена запроса на произвольный тоже ни к чему не приводит.
Может, ещё есть идеи?
10 Stepa86
 
25.06.12
13:39
в дин. списке в произвольном запросе напиши ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1,1,1), Секунда, таблица.КоличествоСекунд) и для этого поля уже формат
11 wisekat
 
25.06.12
15:07
(10) !! Идея великолепная, и для большинства случаев сгодится - но не для моего. Дело в том, что у меня в регистре, для которого я делаю вычисляемое поле, хранится ну скажем так длительность работы с неким объектом. И она может быть больше, чем 1 сутки. Но функция Формат(<дата_время>) мне возвращает значения из интервала 0:00:00-23:59:59, и при этом если счётчик пошёл на вторые сутки, я получу 0:00:01 вместо 24:00:01.
12 Stepa86
 
25.06.12
15:21
тогда в запросе

ВЫБОР
   КОГДА таблица.КоличествоСекунд > 86400 ТОГДА ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1,1,1), Секунда, таблица.КоличествоСекунд-86400)
   ИНАЧЕ ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1,1,1), Секунда, таблица.КоличествоСекунд)
КОНЕЦ

в условном оформлении если КолвоСекунд > 86400 то формат "ДФ='дд""д"" ЧЧ:мм:сс'"  иначе просто "ДФ='ЧЧ:мм:сс'"
13 wisekat
 
25.06.12
15:51
(12) Х-м-м, спасибо!
Однако наворот получается... Если списков несколько, в которых информация такая проходить может, то в каждом из них такое сделать надо.
Сейчас вот думаю - может, просто реквизит текстовый сделать, в котором записывать нужное представление в дополнении к основному значению "КолвоСекунд".
Но за идеи и советы - ещё раз БОЛЬШОЕ СПАСИБО!
14 wisekat
 
25.06.12
15:53
(12) И ещё: если мы условное оформление в коде пропишем, то его потом пользователь будет видеть и чисто теоретически может удалить по ошибке.