Следующий запрос

В разделе приводится описание настройки последовательного просмотра карточек объектов, которые связаны друг с другом по какому-либо признаку (без перехода в список объектов), на примере настройки перехода к следующему по дате регистрации запросу в статусе "Зарегистрирован" (registered). После нажатия кнопки "Следующий" в карточке запроса на экране будет отображаться карточка запроса, следующего за текущим по дате регистрации.

Подготовительные настройки системы

  1. Создайте и включите пользовательское действие по событию, см. Настройка пользовательского действия по событию.

    • "К следующему новому запросу", объект "Запрос", событие "[Пользовательское событие]", действие "Скрипт", синхронное.

      Скрипт:

      //Назначение: /** * Открывает карточку следующего запроса (статус зарегистрировано) после текущего. */

      //Категория: Действия по событию типа скрипт

      //ПАРАМЕТРЫ------------------------------------------------------------

      //ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ------------------------------

      //ОСНОВНОЙ БЛОК----------------------------------------------------

      def SQL = "select min(sc.id) from serviceCall sc where sc.state = 'registered' and sc.creationDate > :SCdate";

      def query = api.db.query(SQL);

      query.set(['SCdate':subject.creationDate]);

      def id = query.list().first();

      if(id)

      {

         result.goToUrl(api.web.open('serviceCall$'+id));

      }

      else

      {

         utils.throwReadableException("Текущий запрос является последним", [] as String[], "Текущий запрос является последним", [] as String[]);

      }

  2. В классе "Запрос" (serviceCall) создайте пользовательский элемент управления на панели действий в карточке запроса, см. Добавление пользовательской кнопки.

    • "Следующий", внешний вид "кнопка с подписью", действие "К следующему новому запросу" — данный элемент управления будет отображаться в интерфейсе оператора и использоваться для перехода с следующему запросу.
  3. В классе "Запрос" (serviceCall) настройте право на выполнение пользовательского действия, используя маркеры прав в группе прав "Пользовательские события".