Диалоги. Работаем со справочником

2 0

Продолжаем рассматривать Диалоги (часть 1, часть 2). Рассмотрим самый популярный кейс: как создать замещение без привлечения администраторов? В более ранних версиях системы Directum эта тема была постоянно актуальной и решалась, как правило, при помощи доработки функционала. В текущей версии при настройке параметров диалога добавлена возможность добавления записей в нужный справочник.  Именно эту возможность и будем использовать при реализации данного кейса.

Обо всем по порядку... Поехали...

1. Параметры сущностей

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

2. Создание формы диалога

Переходим в раздел "Администрирование" - "Диалоги". Создаем карточку диалога  и указываем модуль проводника, где данный диалог планируем вывести для отображения на обложке модуля:

Перейдем на вкладку "Диалог" и заполним сначала параметры, то есть сущности, которые будут использоваться, а справа добавим контролы (проще говоря поля ввода), которые и будут формировать внешний вид диалога.


Добавляем параметры, которые совпадают с параметрами справочника "Замещение". Укажем, что все параметры обязательны, кроме параметра "Основание".  Параметры "Замещающий" и "Начало замещения" инициализируем заполнением полей при запуске диалога значениями текущего пользователя и текущей даты.  Для этого на вкладке "События" добавляем параметры для инициализации:

Наш диалог практически готов, осталось сконфигурировать действие по кнопке "Готово".


Настраиваем свойства:

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


Упс... появились нюансы: 

  1. Можно выбрать любого сотрудника, что точно не устраивает, так как это потенциально лазейка для доступа к чужим документам посредством создаваемого замещения, если только не создавать запись справочника  в состоянии "Закрытая".
  2. Можно установить любую дату окончания замещения.

Исправляем данные упущения добавлением валидации параметров:

Для Даты окончания - чтобы сотрудники не смогли создать замещение больше чем  на 30 дней.

Для Замещаемого - чтобы можно было выбрать сотрудника только своего подразделения, а также нельзя было выбрать самого себя. Параметры валидации можно настроить более точно по различным критериям.

Проверяем валидацию параметра, например дату окончания:

Отлично! Мы справились!

3. Создание задачи и настройка обложки модуля

Вынесем за рамки данного материала формирование задачи или уведомления для направления по простому бизнес-процессу администраторам системы о создании замещения и конфигурирование обложки модуля.  Как это сделать - рассмотрено в предыдущих статьях. Замечу, что формирование задачи или уведомления для администраторов системы - это практически обязательный шаг для контроля за пользователем. Если вы были внимательны, то на скриншоте конфигурирования действия по кнопке "Готово" указан параметр создания задачи при выполнении диалога.

В итоге

Кейс реализован при помощи стандартного функционала системы. Разумеется, есть тонкости и ограничения, связанные с допущениями, но думаю, что их можно доработать по результатам тестирования. В настройках свойств создаваемой записи справочника можно указать в каком состоянии создается запись - "Действующая" или "Закрытая". При создании записи в состоянии "Закрытая" можно не выполнять валидацию поля "Замещаемый", так как в данном случае статус записи будет менять администратор системы после проверки.

Послесловие

Что бы я добавил? При разработке данного диалога я обратил внимание на пару моментов, которые можно добавить со стороны разработчиков при работе со справочником:

1. Если в текущей реализации есть возможность создать запись справочника, то неплохо было бы, если бы была возможность получения какого-либо параметра из справочника и его сохранения в переменную. Применительно к данному кейсу это может быть Id записи справочника для отображения в уведомлении для администратора при направлении  по бизнес-процессу.

2. Возможность добавить условия создания записи справочника "Закрытая" или "Действующая" в зависимости  от условий  заполнения поля. Применительно к данному кейсу это может быть выбор  замещаемого сотрудника.

Пока комментариев нет.

Авторизуйтесь, чтобы написать комментарий