Документооборот КОРП, ДГУ 
27.01.2016

Отсутствие сотрудников

Общая информация

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

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

Метаданные

Используемые метаданные отнесены к подсистеме Отсутствия.

Основная логика работы сосредоточена в общих модулях. Список общих модулей:

Возможность учета отсутствий привязана к функциональной опции ИспользоватьОтсутствия. Значение данной функциональной опции привязано к константе ИспользоватьОтсутствия. При включении функциональной опции становятся доступны следующие возможности:

В справочнике ВидыОтсутствий хранится информация о видах отсутствия. Данный справочник не содержит предопределенных элементов, но он заполняется некоторыми значениями по умолчанию – в процедуре ЗаполнитьВидыОтсутствий в общем модуле ОбновлениеИнформационнойБазыДокументооборот.

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

Для получения информации по отсутствиям служит отчет Отсутствия.

Внутреннее устройство

Как выполняется проверка отсутствия

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

Проверка отсутствий начинается с помощью функций общего модуля ОтсутствияКлиент. Данный модуль содержит функции проверки отсутствия для различных прикладных объектов. Основное назначение данных функций – подготовить список лиц, отсутствие которых следует проверить, исходя из логики работы прикладного объекта. Некоторые функции включают в себя показать предупреждений, в некоторых он вынесен в отдельные процедуры. Это связано с моментом вызова проверки отсутствий и устройства форм, из которых вызывается. В общем модуле ОтсутствияКлиент к данным функциям относятся:

Следует учесть особенность платформы, с которой связано такое построение показа предупреждений – если сформировано описание оповещения, то оно обязательно должно быть обработано. Если оставить описание оповещения не обработанным – то останется блокировка в веб-клиенте. Данная ошибка присутствует в платформе версии 8.3.6. В общем модуле ОтсутствияКлиент к процедурам, созданным для учета данной особенности, относятся:

Запрос отсутствий и формирование итоговой информации по отсутствиям выполняется на сервере в модуле ОтсутствияВызовСервера в следующих функциях:

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

Как выполняется проверка дел

При записи отсутствия выполняется проверка наличия дел у пользователя. Если на момент отсутствия у пользователя будут какие-либо дела, то будет показано соответствующее предупреждение. К делам пользователя относятся записи календаря, мероприятия, проекты и задачи.

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

Основная логика проверки наличия дел выполняется на сервере функции ПроверитьВозможностьОтсутствия в общем модуле ОтсутствияВызовСервера. Данная функция возвращает только факт наличия или отсутствия дел. Проверка выполняется по типу возможных дел в соответствующих функциях:

Получение списка дел происходит непосредственно в форме ПредупреждениеОНаличииДел с помощью функции ПолучитьДелаСотрудника общего модуля Отсутствия.

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

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

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

Создание писем на основании отсутствия

На основании отсутствий возможно создание писем. Логика заполнения письма на основании отсутствия прописана следующих местах:

При создании нового отсутствия программа самостоятельно предлагает создать исходящее письмо, если оно ещё не создано. Пользователь может самостоятельно задать в персональных настройках, следует ли программе спрашивать этот вопрос. Работа с персональными настройками отсутствий производится через ПолучитьПерсональнуюНастройку и УстановитьПерсональнуюНастройку в общем модуле Отсутствия. Рассмотрим эти персональные настройки:

В ОбработкаОповещения формы ФормаДокумента документа Отсутствие происходит отслеживание записываемых писем. В случае если на основании отсутствия письмо было создано вручную, тогда при закрытии вопрос показан не будет. Для этого значение реквизита ПредложитьОтправитьПисьмо устанавливается в Ложь.

Основная логика вызова предложения о создании письма расположена в процедуре ПредложитьОтправитьПисьмо общего модуля ОтсутствияКлиент.

Создание правил автоответа на основании отсутствия

На основании отсутствий возможно создание правил автоответа. Логика заполнения правил автоответа на основании отсутствия прописана в следующих местах:

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

В ОбработкаОповещения формы ФормаДокумента документа Отсутствие происходит отслеживание записываемых правил обработки писем. В случае если на основании отсутствия письмо создано правило автоответа, тогда при закрытии вопрос показан не будет. Для этого значение реквизита ПредложитьСоздатьПравилоОбработкиПисем устанавливается в Ложь.

Основная логика вызова предложения о создании письма расположена в процедуре ПредложитьСоздатьПравилоОбработкиПисем общего модуля ОтсутствияКлиент.

Создание делегирования прав доступа на основании отсутствия

На основании отсутствия возможно создание делегирования прав доступа. Автоматическое предложение о создании делегирования прав доступа не предусмотрено. Возможность создания есть только у пользователя с полными правами. Логика заполнения делегирования прав на основании отсутствия прописана в процедуре ОбработкаЗаполнения в модуле объекта справочника ДелегированиеПрав.

Права доступа

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

Рекомендации по доработке

Как добавить проверку отсутствия

Чтобы добавить проверку отсутствия необходимо: