Добрый день коллеги. Прошу помощи в решении следующей задачи. Требуется в поле динамического списка сделать счетчик времени с обратным отсчетом "ЧЧ:ММ". Период автообновления списка - 10 сек. В динамическом списке также есть поля , Дата(дата начала отсчета времени) и ПланВремяМин( расчетное время в минутах).
пока не нашел решения лучше чем

```1c
    ВЫБОР КОГДА ЗадачаПроизводство.ПланВремяМин > 0
    ТОГДА ВЫБОР
    КОГДА (ВЫРАЗИТЬ((РАЗНОСТЬДАТ(ЗадачаПроизводство.Дата, &ТекущаяДата, МИНУТА) - ЗадачаПроизводство.ПланВремяМин) / 60 КАК ЧИСЛО(10, 0))) < 1
    ТОГДА ВЫБОР
    КОГДА
    ВЫРАЗИТЬ((РАЗНОСТЬДАТ(ЗадачаПроизводство.Дата, &ТекущаяДата, МИНУТА) - ЗадачаПроизводство.ПланВремяМин) КАК ЧИСЛО(10, 0)) -
    (РАЗНОСТЬДАТ(ЗадачаПроизводство.Дата, &ТекущаяДата, МИНУТА) - ЗадачаПроизводство.ПланВремяМин ) < 1 ТОГДА " осталось 00:00" ..итд
```

однако оно получается слишком громоздким и ограниченным.
---
pm74, да вы правы. Не работает преобразование числа в даты, форматом.
Но зато можно написать такой код
```1c
    ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), СЕКУНДА, 10000) КАК Поле1,
```

Получаем нужно нам количество времени, 10000 это ваше число секунд.
А затем в условном оформлении уже подгоняете, что вам нужно из времени взять:
```1c
    ДФ='dd.MM.yyyy HH:mm:ss'
```

Ну или
```1c
    ДФ='HH:mm'
```
---
pm74, можно не делить на 60, а сразу параметр секунда делать. Результат будет количество секунд.
Далее уже в настройках списка формы этому числу назначаешь нужный тебе формат.

Или вопрос был как без запроса это делать?
---
Просто сделай вложенный запрос

```1c
    Выбрать Выразить(Время / 60 КАК Число(10,0))*100 + Время - Выразить(Время / 60 КАК Число(10,0))*60 КАК ПриведенноеВремя
    ИЗ (Выбрать Когда ВЫБОР КОГДА ЗадачаПроизводство.ПланВремяМин > 0
    ТОГДА РАЗНОСТЬДАТ(ЗадачаПроизводство.Дата, &ТекущаяДата, МИНУТА) - ЗадачаПроизводство.ПланВремяМин
    Иначе 0 Конец как Время
    из ТвояВыборка) Как ВложенныйЗапрос
```

И выведи ПриведенноеВремя с форматной строкой "###:##"
---
А если лень присоединять дополнительны подзапрос, еще можно вычисленную разницу преобразовывать в событии "ПриВыводеСтроки"
---
Ovrfox, где в событиях ДС , ПриВыводеСтроки" ?
---
pm74, в ДС нужно запрос писать как вы и сделали. Эта процедура есть в табличных частях.
---
Как Вам уже ответили у ДС есть условное оформление.
Но вариант (6) удобнее тем, что к-во часов может быть более 24. Так более универсально, если иногда к-во часов более 24
---
Ovrfox, натолкнуло на мысль выразить как число с целой и дробной частью
---
добавил 5 см
---
Считаешь время числом в секундах. Накладываешь формат (чч:мм:сс) на поле списка куда выводится время
---
(5)(6) в запросе получаем количество секунд - тип Число. Как на него наложить формат Даты в динамическом списке , или я чего то не понимаю ?
---
pm74, в ДС в настройках запроса есть условное оформление. Там есть поле формат.
---
Xershi, в свойствах поля формы тоже есть формат , вопрос какую форматную строку там написать чтобы в динамическом списке тип число превратился в тип дата
---
pm74, если не знаете, что писать, то почитайте справку по строке формат, для начального ознакомления, а затем есть конструктор форматной строки, там можно по умолчанию выставить параметры, более детально, нужно руками писать.
---
pm74, да вы правы. Не работает преобразование числа в даты, форматом.
Но зато можно написать такой код
```1c
    ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), СЕКУНДА, 10000) КАК Поле1,
```

Получаем нужно нам количество времени, 10000 это ваше число секунд.
А затем в условном оформлении уже подгоняете, что вам нужно из времени взять:
```1c
    ДФ='dd.MM.yyyy HH:mm:ss'
```

Ну или
```1c
    ДФ='HH:mm'
```
---
Xershi, а ведь вы похоже правы , решение лежало на поверхности
---
pm74, да я сам проверил, работает))
---
Не совсем понятна цель, но в свойствах Динамического списка есть параметр "ПериодАвтоОбновления, AutoRefreshPeriod" - который указывается в секундах, и если включить АвтоОбновление, то обновление будет происходить с указанным интервалом.