Операторы берут задания из пула задач. В момент получения задачи выставляется метка времени, когда задача была взята в работу. Требуется создать отчет, в котором будет указана задача, сотрудник и как долго данный сотрудник трудится над задачей. Причем, длительность хотят виде в удобочитаемом виде, например "2 ч. 56 мин.", или "4 д. 7 ч. 12 мин. 56 сек.", ну и т.д.
Решим задачу в общем виде, т.е. "год, месяц, день, час, минут, секунд".
Для того, чтобы в СКД выделить длительность года, достаточно написать:
РазностьДат(Период, ТекущаяДата(), "ГОД")
Но вот следующий код вернёт количество месяцев которое прошло между двумя датами:
РазностьДат(Период, ТекущаяДата(), "МЕСЯЦ")
Такое значение нам не подойдёт, потому что он может быть любым натуральным положительным числом.
Тут надо вспомнить о делении с остатком, потому что вот такой код:
РазностьДат(Период, ТекущаяДата(), "МЕСЯЦ") % 12
Вернём значение от нуля до 11, причём это именно то что нам надо, т.е. выделение продолжительности в разности двух дат.
Ниже итоговый код который можно использовать в выражении для вычисляемого поля СКД, а можно модернизировать для своих нужд.
Выбор
Когда РазностьДат(Период, ТекущаяДата(), "ГОД") <> 0
Тогда Строка(РазностьДат(Период, ТекущаяДата(), "ГОД")) + " л. "
Иначе ""
Конец
+
Выбор
Когда РазностьДат(Период, ТекущаяДата(), "МЕСЯЦ") % 12 <> 0
Тогда Строка(РазностьДат(Период, ТекущаяДата(), "МЕСЯЦ") % 12) + " м. "
Иначе ""
Конец
+
Выбор
Когда РазностьДат(Период, ТекущаяДата(), "ДЕНЬ") % 7 <> 0
Тогда Строка(РазностьДат(Период, ТекущаяДата(), "ДЕНЬ") % 7) + " д. "
Иначе ""
Конец
+
Выбор
Когда РазностьДат(Период, ТекущаяДата(), "ЧАС") % 24 <> 0
Тогда Строка(РазностьДат(Период, ТекущаяДата(), "ЧАС") % 24) + " ч. "
Иначе ""
Конец
+
Выбор
Когда РазностьДат(Период, ТекущаяДата(), "МИНУТА") % 60 <> 0
Тогда Строка(РазностьДат(Период, ТекущаяДата(), "МИНУТА") % 60) + " мин. "
Иначе ""
Конец
+
Выбор
Когда РазностьДат(Период, ТекущаяДата(), "СЕКУНДА") % 60 <> 0
Тогда Строка(РазностьДат(Период, ТекущаяДата(), "СЕКУНДА") % 60 ) + " сек."
Иначе ""
Конец
Вступайте в нашу телеграмм-группу Инфостарт