Как я делал таймер обратного отсчета в динамическом списке на старой платформе
В данной статье пойдет речь о том, как на практике я реализовал колонку с обратным отсчетом времени без использования обработчика «ПриПолученииДанныхНаСервере».
Платформа в режиме совместимости 8.3.1, управляемые формы (не Такси).
- Описание
- Подробнее
Описание
Выражаю безмерную благодарность автору публикации
//sale.itcity.ru/public/331805/
Итак, задача тривиальная — сделать счетчик обратного отсчета времени от текущей до указанной даты вида "2д. 8ч. 43 мин."
Но в силу обстоятельств конфигурация, в которой осуществлялась доработка, не функциональна при переходе на платформу 8.3.8 и выше, где появилась возможность использовать обработчик ПриПолученииДанныхНаСервере.
Поэтому мы пошли дорогой проктолога другим путем.
Этап первый — получить разницу в днях, минутах и часах в отдельные поля запроса. Чтобы не превращать текст запроса в "простыню", я вынес отдельные фрагменты текста запроса в функции, и далее динамически собирал запрос.
1. Получим разницу в секундах
ВЫБОР
КОГДА РАЗНОСТЬДАТ(&ТекущаяДата, &КрайнийСрок, СЕКУНДА) > 0
ТОГДА РАЗНОСТЬДАТ(&ТекущаяДата, &КрайнийСрок, СЕКУНДА)
ИНАЧЕ 0
КОНЕЦКак вы, должно быть, знаете, получить целое число в запросе можно, используя метод "Выразить". Чтобы округлить вниз, отнимем 0.5. Но для того, чтобы не получить отрицательных значений, если разница отсутствует, добавим условие, что наше выражение больше 0.5.

