Когда руководитель утверждает командировку, ему важно знать, как долго сотрудника не будет в офисе, а бухгалтеру надо рассчитать командировочные. Удобно, если в заявке есть не только даты командировки, но и её продолжительность:

Чтобы ваша форма с заявкой на командировку умела так же, добавьте в неё числовое поле Продолжительность. Теперь нужно настроить его автоматическое вычисление. Для этого в настройках формы нажмите Редактировать скрипты и скопируйте туда следующий текст. Если поля в вашей форме называются по-другому, замените эти названия прямо в скрипте.
form.onChange(['Дата начала', 'Дата окончания']) .setValue('Продолжительность', state => { const [start, end] = state.changes; if (!start.date || !end.date) return null; return daysBetween( new Date(start.date), new Date(end.date) ) + 1; }); function daysBetween(d1, d2) { const msInDay = 1000 * 60 * 60 * 24; return Math.floor((d2.getTime() - d1.getTime()) / msInDay); }
Скрипты — это небольшие программы на языке Javascript, расширяющие возможности форм Pyrus. Подробнее о них вы можете прочитать в справке.
Этот же приём сработает в любой форме, где нужно рассчитать длительность события. Например, в форме запроса отпуска.
Подсказка: командировочный аванс можно рассчитать в этой же форме. Здесь скрипт не нужен: автоматическое вычисление можно настроить в редакторе шаблона.
