Документооборот КОРП, ДГУ
27.01.2016
В программе предусмотрена возможность вести учет отсутствий сотрудников на рабочем месте по любым причинам: например, в связи с болезнью, командировкой, отпуском и т.д.
Пользователи информационной базы могут увидеть информацию об отсутствии сотрудника в карточке пользователя, адресной книге и календаре. При попытке взаимодействия с отсутствующим сотрудником пользователи получат уведомление о датах, причине его отсутствия и именем заместителя.
Используемые метаданные отнесены к подсистеме Отсутствия.
Основная логика работы сосредоточена в общих модулях. Список общих модулей:
Возможность учета отсутствий привязана к функциональной опции ИспользоватьОтсутствия. Значение данной функциональной опции привязано к константе ИспользоватьОтсутствия. При включении функциональной опции становятся доступны следующие возможности:
В справочнике ВидыОтсутствий хранится информация о видах отсутствия. Данный справочник не содержит предопределенных элементов, но он заполняется некоторыми значениями по умолчанию – в процедуре ЗаполнитьВидыОтсутствий в общем модуле ОбновлениеИнформационнойБазыДокументооборот.
Документ Отсутствие является главным метаданным, используемым для учета отсутствий. Представляет собой сущность, обозначающую, что сотрудник отсутствует в определенное время. К отсутствиям относятся следующие формы:
Для получения информации по отсутствиям служит отчет Отсутствия.
Для проверки отсутствий запрашиваются все отсутствия по нужным сотрудникам в нужное время. При наличии введенных отсутствий – считается, что сотрудник отсутствует. В этом случае будет показано предупреждение.
Проверка отсутствий начинается с помощью функций общего модуля ОтсутствияКлиент. Данный модуль содержит функции проверки отсутствия для различных прикладных объектов. Основное назначение данных функций – подготовить список лиц, отсутствие которых следует проверить, исходя из логики работы прикладного объекта. Некоторые функции включают в себя показать предупреждений, в некоторых он вынесен в отдельные процедуры. Это связано с моментом вызова проверки отсутствий и устройства форм, из которых вызывается. В общем модуле ОтсутствияКлиент к данным функциям относятся:
Следует учесть особенность платформы, с которой связано такое построение показа предупреждений – если сформировано описание оповещения, то оно обязательно должно быть обработано. Если оставить описание оповещения не обработанным – то останется блокировка в веб-клиенте. Данная ошибка присутствует в платформе версии 8.3.6. В общем модуле ОтсутствияКлиент к процедурам, созданным для учета данной особенности, относятся:
Запрос отсутствий и формирование итоговой информации по отсутствиям выполняется на сервере в модуле ОтсутствияВызовСервера в следующих функциях:
Показ информации об отсутствии выполняется с помощью функции ОбработатьИнформациюОбОтсутствии общего модуля ОтсутствияКлиент. В данную функцию необходимо передать сформированную информацию об отсутствии и настройки для формы ПредупреждениеОбОтсутствии, какой следует выводить текст вопроса, текст команды и текст предупреждения на данной форме. В используемом описании оповещения следует предусмотреть обработку следующих вариантов:
При записи отсутствия выполняется проверка наличия дел у пользователя. Если на момент отсутствия у пользователя будут какие-либо дела, то будет показано соответствующее предупреждение. К делам пользователя относятся записи календаря, мероприятия, проекты и задачи.
Проверка наличия дел начинается в процедуре ПроверитьВозможностьОтсутствия общего модуля ОтсутствияКлиент. В случае наличия дел будет показана форма предупреждения, где пользователь может решить, следует ли продолжить запись, несмотря на наличие дел, либо прервать. В используемом описании оповещение следует предусмотреть обработку следующих вариантов:
Основная логика проверки наличия дел выполняется на сервере функции ПроверитьВозможностьОтсутствия в общем модуле ОтсутствияВызовСервера. Данная функция возвращает только факт наличия или отсутствия дел. Проверка выполняется по типу возможных дел в соответствующих функциях:
Получение списка дел происходит непосредственно в форме ПредупреждениеОНаличииДел с помощью функции ПолучитьДелаСотрудника общего модуля Отсутствия.
Помимо проверки пересечения с делами, выполняется проверка пересечения с отсутствиями. Отличие от проверки пересечения с делами в том, что данная проверка является блокирующей для создания отсутствия. Пока есть пересечение с другими отсутствиями, записать отсутствие не получится.
Проверка пересечения с отсутствиями начинается в функции ПроверитьПересечениеОтсутствий общего модуля ОтсутствияКлиент. В случае наличия пересекающихся отсутствий будет показана форма предупреждения, где пользователь сможет ознакомиться со списком пересекающихся отсутствий, попробовать удалить их и повторить запись. В используемом описании оповещения следует предусмотреть обработку следующих вариантов:
Основная логика проверки наличия пересекающихся отсутствий прописана в функции ПроверитьПересечениеОтсутствий общего модуля ОтсутствияВызовСервера. Данная функция возвращает только факт наличия пересекающихся отсутствий. Заполнение списка пересекающихся отсутствий происходит непосредственно в форме ПредупреждениеОПересеченииОтсутствий. Для формирования списка пересекающихся отсутствий используется функция ПолучитьПересекающиесяОтсутствия общего модуля Отсутствия.
На основании отсутствий возможно создание писем. Логика заполнения письма на основании отсутствия прописана следующих местах:
При создании нового отсутствия программа самостоятельно предлагает создать исходящее письмо, если оно ещё не создано. Пользователь может самостоятельно задать в персональных настройках, следует ли программе спрашивать этот вопрос. Работа с персональными настройками отсутствий производится через ПолучитьПерсональнуюНастройку и УстановитьПерсональнуюНастройку в общем модуле Отсутствия. Рассмотрим эти персональные настройки:
В ОбработкаОповещения формы ФормаДокумента документа Отсутствие происходит отслеживание записываемых писем. В случае если на основании отсутствия письмо было создано вручную, тогда при закрытии вопрос показан не будет. Для этого значение реквизита ПредложитьОтправитьПисьмо устанавливается в Ложь.
Основная логика вызова предложения о создании письма расположена в процедуре ПредложитьОтправитьПисьмо общего модуля ОтсутствияКлиент.
На основании отсутствий возможно создание правил автоответа. Логика заполнения правил автоответа на основании отсутствия прописана в следующих местах:
При создании нового отсутствия программа самостоятельно предлагает создать правило автоответа, если оно ещё не создано. Пользователь может самостоятельно задать в персональных настройках, следует ли программе задавать этот вопрос. Работа с персональными настройками отсутствий производится через ПолучитьПерсональнуюНастройку и УстановитьПерсональнуюНастройку в общем модуле Отсутствия. Рассмотрим эти персональные настройки:
В ОбработкаОповещения формы ФормаДокумента документа Отсутствие происходит отслеживание записываемых правил обработки писем. В случае если на основании отсутствия письмо создано правило автоответа, тогда при закрытии вопрос показан не будет. Для этого значение реквизита ПредложитьСоздатьПравилоОбработкиПисем устанавливается в Ложь.
Основная логика вызова предложения о создании письма расположена в процедуре ПредложитьСоздатьПравилоОбработкиПисем общего модуля ОтсутствияКлиент.
На основании отсутствия возможно создание делегирования прав доступа. Автоматическое предложение о создании делегирования прав доступа не предусмотрено. Возможность создания есть только у пользователя с полными правами. Логика заполнения делегирования прав на основании отсутствия прописана в процедуре ОбработкаЗаполнения в модуле объекта справочника ДелегированиеПрав.
Ограничение прав доступа к отсутствиям прописано в роли БазовыеПраваПользователя. При этом вводить отсутствиям может, как и сам сотрудник, так и другой сотрудник за него. Правом изменения отсутствия обладает автор отсутствия, сотрудник для которого оно введено, их руководители и делегаты.
Чтобы добавить проверку отсутствия необходимо: