Посчитать рабочее время между датами
Робот «Посчитать рабочее время между датами». Вычисляет длительность пересечения периода с рабочими интервалами отдельного графика.

Видимая часть формы настройки в Битрикс24. Скриншот показывает поля действия; он не подтверждает выполнение учебного примера.
Для кого и какую проблему решает
Для руководителя сервиса, который считает рабочую длительность обработки обращения. Отделяет часы внутри заданного графика от ночи и перерывов без ручного вычитания.
Что подготовить
Установите действие в каталоге приложения «CRM роботы 2.0 + AI», затем добавьте его в нужную точку автоматизации. Для чтения или изменения объектов нужен соответствующий доступ пользователя подключения. Идентификаторы берите из полей карточки или результатов предыдущих шагов: название объекта не заменяет его числовой ID.
Параметры и значения
| Поле в настройке | Тип | Обязательность и исходное значение |
|---|---|---|
| Рабочие интервалы JSON с start/end и часовым поясом | Текст | Обязательное; значение по умолчанию не задано |
| Начало периода ISO с часовым поясом | Строка | Обязательное; значение по умолчанию не задано |
| Конец периода ISO с часовым поясом | Строка | Обязательное; значение по умолчанию не задано |
Поля, обозначенные JSON, заполняйте корректными массивами или объектами с двойными кавычками в строках. Подставляйте одно значение через штатный выбор данных редактора; не копируйте служебный идентификатор шага из другого шаблона.
Как использовать пошагово
- Передайте явный массив рабочих интервалов с
startиend. - Укажите начало и конец измеряемого периода с часовым поясом.
- Проверьте порядок границ: период не длиннее 366 суток; одинаковые начало и конец допустимы.
- Основным числовым результатом считайте точные секунды строкой. Минуты предназначены для удобного представления с шестью знаками.
- Используйте JSON учтённых интервалов, если нужно объяснить расчёт в отчёте.
Учебный пример и ожидаемый результат
Для графика 09:00–12:00 и 13:00–18:00 период 11:00–14:00 того же дня содержит два рабочих часа: ожидаются 7200 секунд и 120 минут. Промежуток 12:00–13:00 не учитывается. Все номера объектов в примере условные; замените их данными своего портала. Пример объясняет настройку, а не подтверждает выполненный запуск.
Какие результаты передать дальше
- Точные рабочие секунды: строка.
- Рабочие минуты, 6 знаков: строка.
- Учтенные интервалы UTC JSON: текст.
- Учтенных интервалов: целое число.
В следующем действии откройте выбор данных и выберите результат этого робота по названию. Сначала проверьте статус выполнения; при ошибке передайте её пояснение на разбор и не используйте пустые значения как подтверждённый результат. Успех шага и положительный ответ на бизнес-проверку: разные условия.
Ограничения и исправление ошибок
Рабочий график задаётся явно массивом до 1000 интервалов в пределах 366 суток. Каждый start/end содержит Z либо числовой пояс ±HH:MM. Пересечения, повторы и нулевые интервалы запрещены. Праздники, смены и переходы часовых поясов заранее учтите в массиве: календарь портала не загружается. Результаты времени возвращаются в UTC. Границы периода полуоткрытые: начало включено, конец исключён. Минуты округляются до 6 знаков по правилу половина вверх; точные секунды не теряют эту точность. Пустое пересечение возвращает 0 и пустой список интервалов.
Если доступ изменился, сначала проверьте объект под пользователем подключения и актуальность ID. Повторяйте действие после устранения причины. Для действий с записью предварительно сверяйте фактическое состояние: сообщение об ошибке само по себе не доказывает, что ни одна правка не сохранилась.
Как заполнять JSON-поля
Каждый блок ниже вставляется целиком в своё поле. Не добавляйте внешние кавычки вокруг всего массива или объекта. Учебные ID и названия замените фактическими данными.
Рабочие интервалы JSON с start/end и часовым поясом
[
{
"start": "2026-10-15T09:00:00+03:00",
"end": "2026-10-15T12:00:00+03:00"
},
{
"start": "2026-10-15T13:00:00+03:00",
"end": "2026-10-15T18:00:00+03:00"
}
]
Наружный уровень: массив рабочих интервалов. Каждый объект содержит обязательные строковые start и end: начало и конец с часовым поясом. Пример исключает обед 12:00–13:00. Порядок допустим любой, но интервалы не должны пересекаться, повторяться или иметь нулевую длину. До 1000 интервалов в пределах 366 суток. Пустой [] допустим как пустой график; {} не является календарём. Источник: согласованный график процесса либо результат предыдущего шага, который собрал именно такие интервалы. Праздники заранее удалите из графика, автоматической загрузки календаря портала нет.