138  /  175

Утверждение документа с учетом времени

Просмотров: 5712 (Статистика ведётся с 06.02.2017)

Рассмотрим простой пример утверждения документа, в котором будет учитываться время, отведенное на это. В случае если утверждение будет происходить дольше указанного срока с момента создания документа (10 минут), то после выполнения задания по утверждению документа пользователю будет выслано соответствующее уведомление.

Примечание: Бизнес процесс выполняется на хитах, поэтому для точности выполнения процесса по времени на портале обязательно должны быть хиты.

Под термином хит понимается одна загрузка страницы. Переход по ссылке на сайте и загрузка страницы приводит к генерации хита. Перезагрузка страницы с помощью F5 или Ctrl+F5 генерирует хит. Обращение к несуществующей страницы (404 ошибка) также генерирует хит.


Пример будет создан на базе списков для одного единственного пользователя:

  • Создадим простой последовательный шаблон бизнес-процесса, который будет запускаться при создании элемента списка.
  • В Параметрах шаблона создадим первую переменную Окно утверждения (date) типа число:

    В поле Значение по умолчанию укажем количество минут (в нашем случае 10), которое и будет отдаваться на утверждение документа.

  • Там же создадим вторую переменную Вычисленная дата (c_date) типа Дата/Время:

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

  • Добавим первое действие Изменение переменных, в котором для переменной Вычисленная дата (c_date) произведем расчет крайней даты/времени, после которой утверждение документа будет считаться выполненным не во время по следующей формуле:
    =dateadd({=Document:DATE_CREATE}, {=Variable:date_printable} & "minutes")

    Где к Дате создания документа ({=Document:DATE_CREATE}) будет прибавлено требуемое количество минут ("minutes") из переменной Окно утверждения ({=Variable:date_printable}) .

    Примечание: Подробнее про функцию dateadd, выбор других интервалов времени (час, день, год) и вычисление значений выражений смотрите в соответствующем уроке.

  • Следующим добавим действие Утверждение документа, в поле Утверждают сотрудники которого укажем Автор.

    В нашем простом примере автор-создатель элемента списка и будет утверждать документ.

  • После утверждения документа добавим конструкцию Условие.

    • Левую ветку условия мы настроим так, чтобы значение переменной Вычисленная дата было больше чем {=System:Now}:

      Где {=System:Now} - текущая дата на момент выполнения данного условия.

      В этом случае мы будем сравнивать дату/время, которая была рассчитана на момент утверждения документа (Вычисленная дата), с датой/временем, которое наступит после утверждения документа ({=System:Now}) и будет считаться текущим на момент выполнения конструкции Условие.

      Соответственно, ветка условия будет выполняться, если Вычисленная дата (дата/время до которого документ будет считаться утвержденным вовремя) будет больше чем текущая дата/время (на момент после утверждения документа).

    • Правую ветку условия мы настроим так, чтобы в поле Тип условия было указано значение Истина:

      Значение Истина означает, что эта ветка условий будет выполняться всегда. В нашем случае это используется для того, чтобы процесс продолжил свое выполнение дальше, если условие левой ветки не выполнится.

    • После условия в правой ветке идет действие Уведомление пользователя, которое будет оповещать Автора о том, что он не уложился с утверждением документа в срок.

    Ветки условия выполняются с лева на право, поэтому в первую очередь будет проверяться, что утверждение уложилось в указанные временные рамки, в остальных же случаях (Истина) утверждение будет считаться не уложившимся.

    Примечание: Подробнее про конструкцию Условие смотрите в соответствующем уроке.

В результате получится такая схема шаблона:

Документация по теме:


1
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии