Вернуться к списку Вернуться к статьям
Статьи

Трудозатраты задач в документе Битрикс24: секунды, часы и пустое время

Для вывода трудозатрат задач в «Фабрике документов» используется фильтр duration. Он принимает целые неотрицательные секунды и показывает либо число секунд, либо длительность в формате часы:минуты:секунды. Зарегистрированное время, нулевое время и отсутствие значения нужно различать.

Откуда берётся показатель

В таблице связанных задач поле item.time_spent_in_logs означает время, зарегистрированное в учёте трудозатрат. Если задача создана неделю назад, это не означает, что в отчёт попадёт неделя работы. Плановая оценка тоже не заменяет внесённые трудозатраты.

Перед подготовкой клиентского отчёта договоритесь, как сотрудники записывают время. Иначе одинаково пустые ячейки будут означать разные вещи: работу ещё не начали, забыли внести время или не используют учёт трудозатрат.

Два поддерживаемых формата

В строке цикла по задачам используйте:

text
{{ item.time_spent_in_logs | duration("seconds") }}
{{ item.time_spent_in_logs | duration("HH:mm:ss") }}

Без аргумента duration использует формат HH:mm:ss. Кавычки должны быть обычными прямыми. Формат задаётся точно: строка «часы» не является допустимой заменой.

Исходное значение seconds HH:mm:ss
0 0 00:00:00
9300 9300 02:35:00
90061 90061 25:01:01
360001 360001 100:00:01

Это длительность, поэтому часы не обнуляются после 24. Не форматируйте трудозатраты как дату или время суток: такой подход может скрыть целые дни работы.

Форматы seconds и HH:mm:ss в инструкции «Фабрики документов»
Форматы seconds и HH:mm:ss в инструкции «Фабрики документов»

Что делать с отсутствующим временем

Если значения нет, результат может остаться пустым. Для явно выбранного отображения пустоты как нуля используется цепочка:

text
{{ item.time_spent_in_logs | duration | default("00:00:00") }}

Порядок важен: сначала преобразование длительности, затем запасное значение. Такое оформление не доказывает, что сотрудник зарегистрировал ноль секунд. Оно лишь меняет представление отсутствующего значения.

Если это различие существенно для отчёта, лучше оставить пустоту и пояснить её либо использовать согласованный текст. Не делайте выводы о производительности по одному внешнему виду ячейки.

Особенность Excel

В отдельной ячейке XLSX duration("seconds") сохраняет числовой тип для реальных секунд. Это полезно, когда далее нужны вычисления. Но default("0") возвращает запасной текст, а не гарантированно числовой ноль.

Перед добавлением формул проверьте типы ячеек на готовом файле. Если требуется итог в часах, определите правило расчёта и округления отдельно. Сам фильтр отображения не выбирает тариф и не рассчитывает стоимость работ.

Почему возникает ошибка

Допустимы целые неотрицательные секунды, в том числе числовая строка. Отрицательное, дробное или логическое значение, а также текст «2 часа» не являются подходящим входом. Строка 02:35:00 уже выглядит как длительность, но тоже не заменяет исходные секунды для этого фильтра.

При ошибке проверьте исходное поле и формат. Не устраняйте её удалением трудозатрат из отчёта, если показатель нужен клиенту: сначала выясните, какие данные фактически поступают в шаблон.

Частые вопросы

Влияет ли часовой пояс на 02:35:00?

Нет, здесь это продолжительность работы, а не отметка времени суток. Перевод часового пояса к ней не применяется.

Почему в одном отчёте пусто, а в другом 00:00:00?

Проверьте наличие исходного значения и применение default. Отсутствие данных и зарегистрированный ноль могут быть оформлены одинаково, хотя смысл различается.

Полный синтаксис таблицы задач и фильтров приведён в инструкции приложения. Учебные отчёты DOCX/XLSX доступны на странице «Фабрики документов».

Приложение из статьи

  • Фабрика документов

    Создавайте документы Word и Excel по своим шаблонам из данных CRM Битрикс24: поля, товары, реквизиты и связанные задачи.