Merge branch 'master' of http://gogs.lex.lan/l8-base/ECM-administrator-manuals
This commit is contained in:
commit
d1f873881b
@ -71,7 +71,7 @@ search:
|
|||||||
|
|
||||||
Новый созданный документ, выглядит следующим образом:
|
Новый созданный документ, выглядит следующим образом:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Обязательными полями для заполнения являются:
|
Обязательными полями для заполнения являются:
|
||||||
|
|
||||||
@ -144,7 +144,7 @@ search:
|
|||||||
|
|
||||||
Для выбора необходимого типа в документе "Конструктор документов" необходимо раскрыть справочник "Тип документа" и выбрать необходимый их выпадающего списка.
|
Для выбора необходимого типа в документе "Конструктор документов" необходимо раскрыть справочник "Тип документа" и выбрать необходимый их выпадающего списка.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
После выбора типа документа необходимо выбрать подтип документа.
|
После выбора типа документа необходимо выбрать подтип документа.
|
||||||
|
|
||||||
@ -181,13 +181,11 @@ search:
|
|||||||
|
|
||||||
Для добавления новой строки в таблицу "Дополнительные атрибуты" необходимо нажать на кнопку "Добавить".
|
Для добавления новой строки в таблицу "Дополнительные атрибуты" необходимо нажать на кнопку "Добавить".
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
После нажатия на кнопку добавляется новая строка в таблице.
|
После нажатия на кнопку добавляется новая строка в таблице.
|
||||||
|
|
||||||

|
#### Описание полей в таблице "Дополнительные атрибуты":
|
||||||
|
|
||||||
#### Описание полей в таблице "Дополнительные атрибуты": { #описание-полей }
|
|
||||||
|
|
||||||
- **"Порядок"** – порядок сортировки, заполняется целыми числами, в зависимости от которых будут упорядочиваться атрибуты для заполнения в документе. Например, атрибут с порядком сортировки, равным 2, будет располагаться ниже атрибута с порядком, равным 1.
|
- **"Порядок"** – порядок сортировки, заполняется целыми числами, в зависимости от которых будут упорядочиваться атрибуты для заполнения в документе. Например, атрибут с порядком сортировки, равным 2, будет располагаться ниже атрибута с порядком, равным 1.
|
||||||
- **"Наименование"** – необходимо заполнить наименованием дополнительного атрибута (строковое поле), исходя из которого пользователю должно быть понятно, какое значение должен принимать атрибут. Например: "Год", "Способ получения справки" и пр. Является обязательным для заполнения.
|
- **"Наименование"** – необходимо заполнить наименованием дополнительного атрибута (строковое поле), исходя из которого пользователю должно быть понятно, какое значение должен принимать атрибут. Например: "Год", "Способ получения справки" и пр. Является обязательным для заполнения.
|
||||||
@ -555,7 +553,7 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
|
|||||||
|
|
||||||
Заполненная табличная часть выглядит следующим образом:
|
Заполненная табличная часть выглядит следующим образом:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Шаблон
|
## Шаблон
|
||||||
|
|
||||||
@ -623,6 +621,411 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
## Вкладка "Настройка интерфейса"
|
||||||
|
|
||||||
|
В данной вкладке настраивается интерфейс документа.
|
||||||
|
|
||||||
|
### Видимость данных
|
||||||
|
|
||||||
|
* Скрыть поле **<Номер документа>** - скрывается номер документа;
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть поле **<Дата документа>** - скрывается дата документа;
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть поле **<Автор/Работник>** - скрывается инициатор документа;
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть поле **<Должность автора>** - скрывается должность инициатора документа;
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть поле **<Подразделение автора>** - скрывается подразделение инициатора документа;
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть поле **<Организация>**
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть группу **<Регистрационные данные> полностью** - скрывается полностью группа регистрационных данных документа;
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть кнопку **<Операции> в заявлениях** - скрывается кнопка "Операции" в панели инструментов в **заявлениях**;
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть кнопку **<Копировать>** - скрывается кнопка "Копировать" в панели инструментов в **универсальных документах** и **доверенностях на конструкторе**;
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть кнопку **<Рассылка>** - скрывается кнопка "Рассылка" в панели инструментов в **заявлениях**;
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть кнопку **<На контроль>** - скрывается кнопка "На контроль" в панели инструментов в документах;
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть кнопку **<Аннулировать>** - скрывается кнопка "Аннулировать" в панели инструментов в документах;
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть поле **<Кому:>** - скрывается поле "Кому" в служебной записке;
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть поле **<Копия:>** - скрывается поле "Копия" в служебной записке;
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть поле **<Доп.Согласование>** - скрывается поле "Доп.согласование" в служебной записке;
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть поле **<Договор>** - скрывается поле "Договор" во входящем документе;
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть поле **<Вид доставки>** - скрывается поле "Вид доставки" во входящем документе;
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть поле **<Получатель>** - скрывается поле "Получатель" во входящем документе;
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Скрыть поле **<Примечание>** - скрывается поле "Примечание" в исходящем документе;
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Меню операций
|
||||||
|
|
||||||
|
В табличной части "Тип+подтип документов" задаются условия какие типы и подтипы документов будут отображаться по кнопке "Операции" внутри документа.
|
||||||
|
|
||||||
|
Данный пример представлен для конструктора группы ["Уведомления Lexema"](../Настройка внутрисистемных уведомлений/index.md) подтипа "Уведомления об отпуске".
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* **Вкл.** - включение или отключение операции в выбранном документе;
|
||||||
|
* **Название** - задается название операции, например, Создать "Заявление на ежегодный отпуск";
|
||||||
|
* **Тип документа** - выбирается к какому типу документа необходимо добавить меню операций;
|
||||||
|
* **Подтип** - выбирается к какому типу документа необходимо добавить меню операций;
|
||||||
|
* **Условие фильтрации** - задается название типа вида отпуска указанный в [уведомлении](../Настройка внутрисистемных уведомлений/index.md)
|
||||||
|
* **Служебное наименование** - задается служебное наименование [дополнительного атрибута](#дополнительные_атрибуты_документа), в данном случае **#typeVacation#**.
|
||||||
|
* **Условие для видимости операции** - указывается условие в зависимости от которого выбранная операция будет доступна для пользователя, например, `not exists (select 1 from comdoc."isAccessOfRoles"(lex."getLogin"(), comdoc."getFilial"(),'user') where "RoleName" ilike '%df_officeworker%')`, в данном условии сказано что операция не будет доступа пользователю имеющий роль **df_officeworker**.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
!!! note
|
||||||
|
Если столбцы "Подтип", "Условие фильтрации" и "Служебное наименование" не заполнены, то созданная операция будет отображаться во всех подтипах документа. Кнопка "Операции" отображается только в документах "Заявление от сотрудника".
|
||||||
|
|
||||||
|
В данном примере указано, что при поступлении пользователю уведомления где вид отпуска "Основной", в меню операций у него будут доступны операции:
|
||||||
|
|
||||||
|
* Создать "Заявление на доп. отпуск"
|
||||||
|
* Создать "Заявление на ежегодный отпуск"
|
||||||
|
* Создать "Заявление на перенос отпуска"
|
||||||
|
* Создать "Универсальный документ"
|
||||||
|
|
||||||
|

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

|
||||||
|
|
||||||
|
Данные настройки работают по аналогии с [дополнительными атрибутами](#дополнительные_атрибуты_документа).
|
||||||
|
|
||||||
|
* **Контрол** - выпадающий список с наименованием атрибута документа.
|
||||||
|
* **Id** - уникальный идентификатор атрибута в макете документа
|
||||||
|
* **Поле в БД** - наименование атрибута документа в базе данных.
|
||||||
|
* **Видимость** - отображение атрибута в документе.
|
||||||
|
* **Требовать заполнение** – обязательность заполнения атрибута. Если в табличной части стоит галочка, документ не получится сохранить и отправить по маршруту, пока соответствующий атрибут не будет заполнен. Вкл. - требует заполнения атрибута.
|
||||||
|
* **Группа столбцов "Значение по умолчанию"** используется в случае, если при создании документа реквизит должен быть заполнен неким условленным значением. Для разных типов атрибутов используются разные колонки. Для типов атрибута **"Строка"** требуется заполнить поле в столбце **"Текст"**. Для типов атрибута **"Логическое"** требуется поставить галочку в столбце **"Флаг"**. Для типа атрибута **"Целое"** или типов атрибутов, которые позволяют в документе выбрать значение из списка, требуется заполнить поле в столбце "Код/число" числовым значением.
|
||||||
|
|
||||||
|
## Вкладка "Настройка проверок"
|
||||||
|
|
||||||
|
Данная вкладка предназначена для определения зависимостей атрибутов между собой.
|
||||||
|
|
||||||
|
### Зависимые атрибуты
|
||||||
|
|
||||||
|
В данном примере представлен конструктор подтипа "Заявление о предоставлении стандартного налогового вычета на ребенка". В блоке "Дополнительные атрибуты", например, по первому ребенку указаны такие атрибуты как **#first#, #firstfio#, #firstdr#, #firstvichet#** и **#firstapp#**.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
В столбце **"Основной атрибут"** заполняется служебное наименование атрибута, который является основным, в данном случае **#first#**. В столбце **«Зависимые атрибуты»** указываются служебные наименования атрибутов, которые необходимо указать как зависимые от основного атрибута, в данном случае это **#firstfio#, #firstdr#, #firstvichet# и #firstapp#**.
|
||||||
|
|
||||||
|
Если в табличной части стоит галочка "Вкл.", документ не получится сохранить и отправить по маршруту, пока соответствующий атрибут не будет заполнен. **Вкл.** - требует заполнения атрибута. **"Действие"** - назначается при каком действии будет требоваться заполнения атрибута в процессе согласования по маршруту.Возможно выбрать как одно, так и несколько действий. Если в столбце **"Действие"** ничего не указано, то данная проверка будет срабатывать у инициатора документа.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
В данном примере указано что при заполнении поля "Первый ребенок" у которого служебное наименование **#first#**, система будет проверять заполнение полей ФИО, Дата рождения, Размер вычета и свидетельство о рождении, так как служебные наименования указаны в вычислениях как зависимые от поля "Первый ребенок". В случае не заполнения зависимых полей, они будут подсвечены красным светом, а также будет выведен текст о необходимости заполнить данные.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Дополнительные проверки
|
||||||
|
|
||||||
|
#### Проверки для дополнительных атрибутов
|
||||||
|
|
||||||
|
При необходимости возможно настроить дополнительные проверки для атрибутов. В данном примере представлен конструктор подтипа "Заявление на перенос ежегодного оплачиваемого отпуска". В блоке "**Дополнительные атрибуты"** указаны атрибуты по датам переноса и количеству дней переноса. При необходимости возможно отключить какие-то проверки по отдельности, для этого необходимо выбрать необходимую проверку и в столбце **"Вкл."** проставить галочку. В столбце **"Колонка для выделения"** перечисляются атрибуты (если их несколько то через запятую), на которые необходимо задать проверки. В столбце **"Сообщение"** задается информационное сообщение, которое выводится в случае незаполнения либо некорректных данных. В столбце **"Правило для проверки"** указывается условие по которому вычисляется проверка по зависимым атрибутам. **"Действие"** - назначается при каком действии будет требоваться заполнения атрибута в процессе согласования по маршруту.Возможно выбрать как одно, так и несколько действий. Если в столбце **"Действие"** ничего не указано, то данная проверка будет срабатывать у инициатора документа.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
В данном примере указано правило: в случае если атрибут **#bdate_new1#** (_Дата начала нового отпуска (период 1)_) меньше либо равна текущей дате, то будет информационное сообщение: **"Дата начала нового отпуска должна быть позже текущей даты"**.
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
**Ниже представлены примеры проверок для расчета количества дней:**
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Правила для проверки</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table border="1">
|
||||||
|
<tr>
|
||||||
|
<th>Колонка для выделения</th>
|
||||||
|
<th>Сообщение</th>
|
||||||
|
<th>Правило для проверки</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new1#</td>
|
||||||
|
<td>Дата начала нового отпуска должна быть позже текущей даты</td>
|
||||||
|
<td>#bdate_new1#::date <= now()::date</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new2#</td>
|
||||||
|
<td>Дата начала нового отпуска должна быть позже текущей даты</td>
|
||||||
|
<td>coalesce(#bdate_new2#,'19700101')<>'19700101' and #bdate_new2#::date <= now()::date</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new2#</td>
|
||||||
|
<td>Дата начала отпуска в следующем году. Скорректируйте #bdate_new1_name# #bdate_new1#</td>
|
||||||
|
<td>#year#::integer < date_part('year'::text,#bdate_new2#::date)::integer</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new1#</td>
|
||||||
|
<td>Дата начала отпуска в следующем году. Скорректируйте #bdate_new1_name# #bdate_new1#</td>
|
||||||
|
<td>#year#::integer < date_part('year'::text,#bdate_new1#::date)::integer</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new2#</td>
|
||||||
|
<td>Заявление подается минимум за 3 дня до даты отпуска</td>
|
||||||
|
<td>coalesce(#bdate_new2#,'19700101')<>'19700101' and #bdate_new2#::date < now()::date + interval '1 day' * 3</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new1#,#bdate_new2#</td>
|
||||||
|
<td>Заявление подается минимум за 3 дня до даты отпуска. Скорректируйте #bdate_new1_name# #bdate_new1#</td>
|
||||||
|
<td>#bdate_new1#::date < now()::date + interval '1 day' * 21</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#kolvo_new2#</td>
|
||||||
|
<td>Количество переносов (часть 1 + часть 2) меньше чем в основном отпуске</td>
|
||||||
|
<td>#kolvo# > coalesce(#kolvo_new1#,0) + coalesce(#kolvo_new2#,0) and coalesce(#kolvo_new2#,0) <> 0</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#kolvo_new2#</td>
|
||||||
|
<td>Количество переносов (часть 1 + часть2) больше чем в основном отпуске</td>
|
||||||
|
<td>#kolvo# < coalesce(#kolvo_new1#,0) + coalesce(#kolvo_new2#,0) and coalesce(#kolvo_new2#,0) <> 0</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#kolvo_new1#</td>
|
||||||
|
<td>Количество переносов (часть 1) больше чем в основном отпуске</td>
|
||||||
|
<td>#kolvo# < coalesce(#kolvo_new1#,0)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#kolvo_new1#</td>
|
||||||
|
<td>Количество переносов (часть 1) меньше чем в основном отпуске</td>
|
||||||
|
<td>#kolvo# > coalesce(#kolvo_new1#,0) and coalesce(#kolvo_new2#,0) = 0</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new1#,#bdate_new2#</td>
|
||||||
|
<td>Непрерывный период хотя бы одного отпуска в год должен составлять не менее 14 дней.</td>
|
||||||
|
<td>"coalesce(dfd.""CheckWorkerPeriodVacations""(
|
||||||
|
#Master_IdWorker#::bigint,
|
||||||
|
comdoc.""getFilial""()::bigint,
|
||||||
|
#year#::bigint,
|
||||||
|
true::boolean,
|
||||||
|
now()::date,
|
||||||
|
#bdate_new1#::date,#edate_new1#::date,
|
||||||
|
#bdate_new2#::date, #edate_new2#::date,
|
||||||
|
#bdate_new3#::date, #edate_new3#::date,
|
||||||
|
#bdate#::date, doc_code::bigint),false) = false"</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new1#</td>
|
||||||
|
<td>Перенос отпуска оформлен только на выходные дни. Скорректируйте #bdate_new1_name# #bdate_new1#</td>
|
||||||
|
<td>"not exists(select 1 from comdoc.""VDocflowCalendar"" v where v.""RDate"" between #bdate_new1#::date and #edate_new1#::date
|
||||||
|
and ""isDayOff"" = false and ((v.""orgId"" = comdoc.""getFilial""() and coalesce (comdoc.""fnDefineRegion""(null::bigint, comdoc.""getFilial""()::bigint, now()::date),0) =0) or v.""Region"" = comdoc.""fnDefineRegion""(null::bigint, comdoc.""getFilial""()::bigint, now()::date) ))
|
||||||
|
"</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new2#</td>
|
||||||
|
<td>Перенос отпуска оформлен только на выходные дни. Скорректируйте #bdate_new2_name# #bdate_new2#</td>
|
||||||
|
<td>"not exists(select 1 from comdoc.""VDocflowCalendar"" v where v.""RDate"" between #bdate_new2#::date and #edate_new2#::date
|
||||||
|
and ""isDayOff"" = false and ((v.""orgId"" = comdoc.""getFilial""() and coalesce(comdoc.""fnDefineRegion""(null::bigint, comdoc.""getFilial""()::bigint, now()::date),0) =0) or v.""Region"" = comdoc.""fnDefineRegion""(null::bigint, comdoc.""getFilial""()::bigint, now()::date) )) and #bdate_new2# is not null
|
||||||
|
"</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new1#</td>
|
||||||
|
<td>Перенос создан с даты ранее разрешенной</td>
|
||||||
|
<td>#bdate_new1#::date < (#year# ||substring((select t.""valueText"" from comdoc.""getAccountingConstantValues""(null, 'создавать переносы отпусков, начиная с даты (день+месяц)'::text , null) t) ,4,2)
|
||||||
|
|| left((select t.""valueText"" from comdoc.""getAccountingConstantValues""(null, 'создавать переносы отпусков, начиная с даты (день+месяц)'::text , null) t) ,2))::date</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new2#</td>
|
||||||
|
<td>Перенос создан с даты ранее разрешенной</td>
|
||||||
|
<td>#bdate_new2#::date < (#year# ||substring((select t.""valueText"" from comdoc.""getAccountingConstantValues""(null, 'создавать переносы отпусков, начиная с даты (день+месяц)'::text , null) t) ,4,2)
|
||||||
|
|| left((select t.""valueText"" from comdoc.""getAccountingConstantValues""(null, 'создавать переносы отпусков, начиная с даты (день+месяц)'::text , null) t) ,2))::date</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new2#</td>
|
||||||
|
<td>Пересечение отпусков, скорректируйте период</td>
|
||||||
|
<td>coalesce(#bdate_new2#,'19700101')<>'19700101' and #bdate_new2# between #bdate_new1# and #edate_new1#</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate_new1#</td>
|
||||||
|
<td>Пересечение отпусков, скорректируйте период</td>
|
||||||
|
<td>coalesce(#bdate_new1#,'19700101')<>'19700101' and #bdate_new1# between #bdate_new2# and #edate_new2#</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#edate_new1#</td>
|
||||||
|
<td>Пересечение отпусков, скорректируйте период</td>
|
||||||
|
<td>coalesce(#edate_new1#,'19700101')<>'19700101' and #edate_new1# between #bdate_new2# and #edate_new2#</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#edate_new2#</td>
|
||||||
|
<td>Пересечение отпусков, скорректируйте период</td>
|
||||||
|
<td>coalesce(#edate_new2#,'19700101')<>'19700101' and #edate_new2# between #bdate_new1# and #edate_new1#</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#bdate#</td>
|
||||||
|
<td>На текущий календарный год отпуск запланирован, для корректировки периода предоставления отпуска необходимо оформить перенесение отпуска</td>
|
||||||
|
<td>
|
||||||
|
exists(select 1 from aw."RP_DocVacation" p
|
||||||
|
inner join aw."RP_WorkerVacation" m on p."VCode" = m."Pcode"
|
||||||
|
where p."Year" = date_part('year'::varchar(255), #bdate#::date) and m."IdWorker" = #Master_IdWorker# and p."TypeName" = 'Base.RP_DocVacation'
|
||||||
|
limit 1)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>#Master_DocumentDate#</td>
|
||||||
|
<td>Заявление на перенос отпуска будущего месяца создаются только в период с 10 по 17 число текущего месяца</td>
|
||||||
|
<td>
|
||||||
|
date_part('day',now()) not in (10,11,12,13,14,15,16,17)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
Для вычислений проверки **"Перенос создан с даты ранее разрешенной"** необходимо завести константу ```создавать переносы отпусков, начиная с даты (день+месяц)```, заполняется столбец **"Значение (текст)"** числом и месяцем ранее которой не разрешается создавать заявление на перенос ежегодного отпуска.
|
||||||
|
|
||||||
|
**Ниже представлен пример проверки на заполнение реквизита в документе для пользователя с определенной должностью**, на примере документа "Заявление на получение справки 2НДФЛ", где #year# является реквизитом документа
|
||||||
|
|
||||||
|
Колонка для выделения | Сообщение | Правило для проверки
|
||||||
|
----------------------|-----------|---------------------
|
||||||
|
#year# | Необходимо заполнить информацию | #Master_Position# ilike '%водитель%'
|
||||||
|
|
||||||
|
Также возможно использовать служебное слово **#Master_PositionName#**, например, при написании заявления на ежегодный отпуск руководителем, необходимо указать заместителя на период отсутствия.
|
||||||
|
|
||||||
|
Колонка для выделения | Сообщение | Правило для проверки
|
||||||
|
----------------------|-----------|---------------------
|
||||||
|
#zam# | Необходимо заполнить информацию | coalesce(#zam#,0)::bigint=0::bigint and '#Master_PositionName#'::text ilike '%глав%врач%'::text
|
||||||
|
|
||||||
|
|
||||||
|
#### Проверки для табличных атрибутов
|
||||||
|
|
||||||
|
В столбец **"Колонка для выделения"** указывается служебное наименование таблицы,например, **#Table1#**, а в столбце **"Правило для проверки"** указывается служебные наименования таблицы и атрибута, например, **#Table1_bigint#**.
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
## Вкладка "Настройка вычислений"
|
||||||
|
|
||||||
|
Данная вкладка предназначена для вычисления зависимостей атрибутов.
|
||||||
|
|
||||||
|
В столбце **"Основной атрибут"** заполняется служебное наименование атрибута, который является основным в конструкторе. В столбце **«Зависимые атрибуты»** указываются служебные наименования атрибутов, которые необходимо указать как зависимые от основного атрибута. В столбце **"Вычисление"** указывается условие по которому вычисляется проверка по зависимым атрибутам. В столбце **"Фильтрация"** указывается условие по которому выполняется фильтрация по зависимым атрибутам.
|
||||||
|
|
||||||
|
В качестве вычисления возможно также использовать [вычисляемые атрибуты](#вычисляемые_атрибуты):
|
||||||
|
|
||||||
|
Вычисляемый атрибут | Описание
|
||||||
|
--------------------|---------
|
||||||
|
#Master_BeginDate# | дата начала действия доверенности
|
||||||
|
#Master_DocumentDate# | дата создания документа
|
||||||
|
#Master_DocumentNumber# | номер создаваемого документа
|
||||||
|
#Master_EndDate# | дата окончания действия доверенности
|
||||||
|
#Master_IdWorker# | код работника из справочника "Сотрудники"
|
||||||
|
#Master_MyCompany# | компания пользователя создателя документа
|
||||||
|
#Master_Position# | должность пользователя создателя документа
|
||||||
|
|
||||||
|
В данном примере представлены вычисления для определения подразделения и должности при выборе сотрудника из выпадающего списка. В качестве основного атрибута для обоих вычислений выступает служебное наименование **#worker#**, для должности - **#prof#**, для подразделения - **#podr#**. При необходимости вычисления можно отключить, для этого нужно проставить галочку в столбце "Вкл.".
|
||||||
|
|
||||||
|
Основной атрибут | Зависимые атрибуты | Вычисления
|
||||||
|
-----------------|--------------------|-----------
|
||||||
|
#worker# | #prof# | (select p."IdPost" from comdoc."WorkersListOnDate"(now()::date, 1, 1) p where p."IdWorker" = #worker#)
|
||||||
|
#worker# | #podr# | (select p."IdDepartment" from comdoc."WorkersListOnDate"(now()::date, 1, 1) p where p."IdWorker" = #worker#)
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
В примере указанном ниже указано условие фильтрации по которому в зависимости от выбранного подразделения будут фильтроваться сотрудники, которые работают в данном подразделении.
|
||||||
|
|
||||||
|
Основной атрибут | Зависимые атрибуты | Фильтрация
|
||||||
|
-----------------|--------------------|-----------
|
||||||
|
#podr# | #worker# | and (t."IdDepartment" = coalesce(#podr#,0) or #podr# is null)
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
!!! note
|
||||||
|
Фильтрация настроена для атрибутов с выпадающим списком: **Должность**, **Подразделение**, **Работник**, **Пользовательские типы атрибутов документов**, **Договор**, **Контрагент**, **Произвольная выборка**
|
||||||
|
|
||||||
|
Для зависимых атрибутов возможно настроить динамическое появление атрибута в документе. Для отображения атрибутов необходимо проставить галочка в столбце **"Видимость"**. должно быть **логическое**. Также данные атрибуты должны быть по умолчанию невидимыми в табличной части [дополнительные атрибуты](#дополнительные_атрибуты_документа).
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
## Вкладка "Ограничения"
|
## Вкладка "Ограничения"
|
||||||
|
|
||||||
### Правила для вложений
|
### Правила для вложений
|
||||||
@ -769,397 +1172,6 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Вкладка "Настройка интерфейса"
|
|
||||||
|
|
||||||
В данной вкладке настраивается интерфейс документа.
|
|
||||||
|
|
||||||
### Видимость данных
|
|
||||||
|
|
||||||
* Скрыть поле **<Номер документа>** - скрывается номер документа;
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть поле **<Дата документа>** - скрывается дата документа;
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть поле **<Автор/Работник>** - скрывается инициатор документа;
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть поле **<Должность автора>** - скрывается должность инициатора документа;
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть поле **<Подразделение автора>** - скрывается подразделение инициатора документа;
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть поле **<Организация>**
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть группу **<Регистрационные данные> полностью** - скрывается полностью группа регистрационных данных документа;
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть кнопку **<Операции> в заявлениях** - скрывается кнопка "Операции" в панели инструментов в **заявлениях**;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть кнопку **<Копировать>** - скрывается кнопка "Копировать" в панели инструментов в **универсальных документах** и **доверенностях на конструкторе**;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть кнопку **<Рассылка>** - скрывается кнопка "Рассылка" в панели инструментов в **заявлениях**;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть кнопку **<На контроль>** - скрывается кнопка "На контроль" в панели инструментов в документах;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть кнопку **<Аннулировать>** - скрывается кнопка "Аннулировать" в панели инструментов в документах;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть поле **<Кому:>** - скрывается поле "Кому" в служебной записке;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть поле **<Копия:>** - скрывается поле "Копия" в служебной записке;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть поле **<Доп.Согласование>** - скрывается поле "Доп.согласование" в служебной записке;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть поле **<Договор>** - скрывается поле "Договор" во входящем документе;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть поле **<Вид доставки>** - скрывается поле "Вид доставки" во входящем документе;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть поле **<Получатель>** - скрывается поле "Получатель" во входящем документе;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Скрыть поле **<Примечание>** - скрывается поле "Примечание" в исходящем документе;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
### Меню операций
|
|
||||||
|
|
||||||
В табличной части "Тип+подтип документов" задаются условия какие типы и подтипы документов будут отображаться по кнопке "Операции" внутри документа.
|
|
||||||
|
|
||||||
Данный пример представлен для конструктора группы ["Уведомления Lexema"](../Настройка внутрисистемных уведомлений/index.md) подтипа "Уведомления об отпуске".
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* **Вкл.** - включение или отключение операции в выбранном документе;
|
|
||||||
* **Название** - задается название операции, например, Создать "Заявление на ежегодный отпуск";
|
|
||||||
* **Тип документа** - выбирается к какому типу документа необходимо добавить меню операций;
|
|
||||||
* **Подтип** - выбирается к какому типу документа необходимо добавить меню операций;
|
|
||||||
* **Условие фильтрации** - задается название типа вида отпуска указанный в [уведомлении](../Настройка внутрисистемных уведомлений/index.md)
|
|
||||||
* **Служебное наименование** - задается служебное наименование [дополнительного атрибута](#дополнительные_атрибуты_документа), в данном случае **#typeVacation#**.
|
|
||||||
* **Условие для видимости операции** - указывается условие в зависимости от которого выбранная операция будет доступна для пользователя, например, `not exists (select 1 from comdoc."isAccessOfRoles"(lex."getLogin"(), comdoc."getFilial"(),'user') where "RoleName" ilike '%df_officeworker%')`, в данном условии сказано что операция не будет доступа пользователю имеющий роль **df_officeworker**.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
!!! note
|
|
||||||
Если столбцы "Подтип", "Условие фильтрации" и "Служебное наименование" не заполнены, то созданная операция будет отображаться во всех подтипах документа. Кнопка "Операции" отображается только в документах "Заявление от сотрудника".
|
|
||||||
|
|
||||||
В данном примере указано, что при поступлении пользователю уведомления где вид отпуска "Основной", в меню операций у него будут доступны операции:
|
|
||||||
|
|
||||||
* Создать "Заявление на доп. отпуск"
|
|
||||||
* Создать "Заявление на ежегодный отпуск"
|
|
||||||
* Создать "Заявление на перенос отпуска"
|
|
||||||
* Создать "Универсальный документ"
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Вкладка "Настройка проверок"
|
|
||||||
|
|
||||||
Данная вкладка предназначена для определения зависимостей атрибутов между собой.
|
|
||||||
|
|
||||||
### Зависимые атрибуты
|
|
||||||
|
|
||||||
В данном примере представлен конструктор подтипа "Заявление о предоставлении стандартного налогового вычета на ребенка". В блоке "Дополнительные атрибуты", например, по первому ребенку указаны такие атрибуты как **#first#, #firstfio#, #firstdr#, #firstvichet#** и **#firstapp#**.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
В столбце **"Основной атрибут"** заполняется служебное наименование атрибута, который является основным, в данном случае **#first#**. В столбце **«Зависимые атрибуты»** указываются служебные наименования атрибутов, которые необходимо указать как зависимые от основного атрибута, в данном случае это **#firstfio#, #firstdr#, #firstvichet# и #firstapp#**.
|
|
||||||
|
|
||||||
Если в табличной части стоит галочка "Вкл.", документ не получится сохранить и отправить по маршруту, пока соответствующий атрибут не будет заполнен. **Вкл.** - требует заполнения атрибута. **"Действие"** - назначается при каком действии будет требоваться заполнения атрибута в процессе согласования по маршруту.Возможно выбрать как одно, так и несколько действий. Если в столбце **"Действие"** ничего не указано, то данная проверка будет срабатывать у инициатора документа.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
В данном примере указано что при заполнении поля "Первый ребенок" у которого служебное наименование **#first#**, система будет проверять заполнение полей ФИО, Дата рождения, Размер вычета и свидетельство о рождении, так как служебные наименования указаны в вычислениях как зависимые от поля "Первый ребенок". В случае не заполнения зависимых полей, они будут подсвечены красным светом, а также будет выведен текст о необходимости заполнить данные.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### Дополнительные проверки
|
|
||||||
|
|
||||||
#### Проверки для дополнительных атрибутов
|
|
||||||
|
|
||||||
При необходимости возможно настроить дополнительные проверки для атрибутов. В данном примере представлен конструктор подтипа "Заявление на перенос ежегодного оплачиваемого отпуска". В блоке "**Дополнительные атрибуты"** указаны атрибуты по датам переноса и количеству дней переноса. При необходимости возможно отключить какие-то проверки по отдельности, для этого необходимо выбрать необходимую проверку и в столбце **"Вкл."** проставить галочку. В столбце **"Колонка для выделения"** перечисляются атрибуты (если их несколько то через запятую), на которые необходимо задать проверки. В столбце **"Сообщение"** задается информационное сообщение, которое выводится в случае незаполнения либо некорректных данных. В столбце **"Правило для проверки"** указывается условие по которому вычисляется проверка по зависимым атрибутам. **"Действие"** - назначается при каком действии будет требоваться заполнения атрибута в процессе согласования по маршруту.Возможно выбрать как одно, так и несколько действий. Если в столбце **"Действие"** ничего не указано, то данная проверка будет срабатывать у инициатора документа.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
В данном примере указано правило: в случае если атрибут **#bdate_new1#** (_Дата начала нового отпуска (период 1)_) меньше либо равна текущей дате, то будет информационное сообщение: **"Дата начала нового отпуска должна быть позже текущей даты"**.
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
**Ниже представлены примеры проверок для расчета количества дней:**
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Правила для проверки</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<table border="1">
|
|
||||||
<tr>
|
|
||||||
<th>Колонка для выделения</th>
|
|
||||||
<th>Сообщение</th>
|
|
||||||
<th>Правило для проверки</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new1#</td>
|
|
||||||
<td>Дата начала нового отпуска должна быть позже текущей даты</td>
|
|
||||||
<td>#bdate_new1#::date <= now()::date</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new2#</td>
|
|
||||||
<td>Дата начала нового отпуска должна быть позже текущей даты</td>
|
|
||||||
<td>coalesce(#bdate_new2#,'19700101')<>'19700101' and #bdate_new2#::date <= now()::date</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new2#</td>
|
|
||||||
<td>Дата начала отпуска в следующем году. Скорректируйте #bdate_new1_name# #bdate_new1#</td>
|
|
||||||
<td>#year#::integer < date_part('year'::text,#bdate_new2#::date)::integer</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new1#</td>
|
|
||||||
<td>Дата начала отпуска в следующем году. Скорректируйте #bdate_new1_name# #bdate_new1#</td>
|
|
||||||
<td>#year#::integer < date_part('year'::text,#bdate_new1#::date)::integer</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new2#</td>
|
|
||||||
<td>Заявление подается минимум за 3 дня до даты отпуска</td>
|
|
||||||
<td>coalesce(#bdate_new2#,'19700101')<>'19700101' and #bdate_new2#::date < now()::date + interval '1 day' * 3</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new1#,#bdate_new2#</td>
|
|
||||||
<td>Заявление подается минимум за 3 дня до даты отпуска. Скорректируйте #bdate_new1_name# #bdate_new1#</td>
|
|
||||||
<td>#bdate_new1#::date < now()::date + interval '1 day' * 21</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#kolvo_new2#</td>
|
|
||||||
<td>Количество переносов (часть 1 + часть 2) меньше чем в основном отпуске</td>
|
|
||||||
<td>#kolvo# > coalesce(#kolvo_new1#,0) + coalesce(#kolvo_new2#,0) and coalesce(#kolvo_new2#,0) <> 0</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#kolvo_new2#</td>
|
|
||||||
<td>Количество переносов (часть 1 + часть2) больше чем в основном отпуске</td>
|
|
||||||
<td>#kolvo# < coalesce(#kolvo_new1#,0) + coalesce(#kolvo_new2#,0) and coalesce(#kolvo_new2#,0) <> 0</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#kolvo_new1#</td>
|
|
||||||
<td>Количество переносов (часть 1) больше чем в основном отпуске</td>
|
|
||||||
<td>#kolvo# < coalesce(#kolvo_new1#,0)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#kolvo_new1#</td>
|
|
||||||
<td>Количество переносов (часть 1) меньше чем в основном отпуске</td>
|
|
||||||
<td>#kolvo# > coalesce(#kolvo_new1#,0) and coalesce(#kolvo_new2#,0) = 0</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new1#,#bdate_new2#</td>
|
|
||||||
<td>Непрерывный период хотя бы одного отпуска в год должен составлять не менее 14 дней.</td>
|
|
||||||
<td>"coalesce(dfd.""CheckWorkerPeriodVacations""(
|
|
||||||
#Master_IdWorker#::bigint,
|
|
||||||
comdoc.""getFilial""()::bigint,
|
|
||||||
#year#::bigint,
|
|
||||||
true::boolean,
|
|
||||||
now()::date,
|
|
||||||
#bdate_new1#::date,#edate_new1#::date,
|
|
||||||
#bdate_new2#::date, #edate_new2#::date,
|
|
||||||
#bdate_new3#::date, #edate_new3#::date,
|
|
||||||
#bdate#::date, doc_code::bigint),false) = false"</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new1#</td>
|
|
||||||
<td>Перенос отпуска оформлен только на выходные дни. Скорректируйте #bdate_new1_name# #bdate_new1#</td>
|
|
||||||
<td>"not exists(select 1 from comdoc.""VDocflowCalendar"" v where v.""RDate"" between #bdate_new1#::date and #edate_new1#::date
|
|
||||||
and ""isDayOff"" = false and ((v.""orgId"" = comdoc.""getFilial""() and coalesce (comdoc.""fnDefineRegion""(null::bigint, comdoc.""getFilial""()::bigint, now()::date),0) =0) or v.""Region"" = comdoc.""fnDefineRegion""(null::bigint, comdoc.""getFilial""()::bigint, now()::date) ))
|
|
||||||
|
|
||||||
"</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new2#</td>
|
|
||||||
<td>Перенос отпуска оформлен только на выходные дни. Скорректируйте #bdate_new2_name# #bdate_new2#</td>
|
|
||||||
<td>"not exists(select 1 from comdoc.""VDocflowCalendar"" v where v.""RDate"" between #bdate_new2#::date and #edate_new2#::date
|
|
||||||
and ""isDayOff"" = false and ((v.""orgId"" = comdoc.""getFilial""() and coalesce(comdoc.""fnDefineRegion""(null::bigint, comdoc.""getFilial""()::bigint, now()::date),0) =0) or v.""Region"" = comdoc.""fnDefineRegion""(null::bigint, comdoc.""getFilial""()::bigint, now()::date) )) and #bdate_new2# is not null
|
|
||||||
"</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new1#</td>
|
|
||||||
<td>Перенос создан с даты ранее разрешенной</td>
|
|
||||||
<td>#bdate_new1#::date < (#year# ||substring((select t.""valueText"" from comdoc.""getAccountingConstantValues""(null, 'создавать переносы отпусков, начиная с даты (день+месяц)'::text , null) t) ,4,2)
|
|
||||||
|| left((select t.""valueText"" from comdoc.""getAccountingConstantValues""(null, 'создавать переносы отпусков, начиная с даты (день+месяц)'::text , null) t) ,2))::date</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new2#</td>
|
|
||||||
<td>Перенос создан с даты ранее разрешенной</td>
|
|
||||||
<td>#bdate_new2#::date < (#year# ||substring((select t.""valueText"" from comdoc.""getAccountingConstantValues""(null, 'создавать переносы отпусков, начиная с даты (день+месяц)'::text , null) t) ,4,2)
|
|
||||||
|| left((select t.""valueText"" from comdoc.""getAccountingConstantValues""(null, 'создавать переносы отпусков, начиная с даты (день+месяц)'::text , null) t) ,2))::date</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new2#</td>
|
|
||||||
<td>Пересечение отпусков, скорректируйте период</td>
|
|
||||||
<td>coalesce(#bdate_new2#,'19700101')<>'19700101' and #bdate_new2# between #bdate_new1# and #edate_new1#</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate_new1#</td>
|
|
||||||
<td>Пересечение отпусков, скорректируйте период</td>
|
|
||||||
<td>coalesce(#bdate_new1#,'19700101')<>'19700101' and #bdate_new1# between #bdate_new2# and #edate_new2#</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#edate_new1#</td>
|
|
||||||
<td>Пересечение отпусков, скорректируйте период</td>
|
|
||||||
<td>coalesce(#edate_new1#,'19700101')<>'19700101' and #edate_new1# between #bdate_new2# and #edate_new2#</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#edate_new2#</td>
|
|
||||||
<td>Пересечение отпусков, скорректируйте период</td>
|
|
||||||
<td>coalesce(#edate_new2#,'19700101')<>'19700101' and #edate_new2# between #bdate_new1# and #edate_new1#</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#bdate#</td>
|
|
||||||
<td>На текущий календарный год отпуск запланирован, для корректировки периода предоставления отпуска необходимо оформить перенесение отпуска</td>
|
|
||||||
<td>
|
|
||||||
exists(select 1 from aw."RP_DocVacation" p
|
|
||||||
inner join aw."RP_WorkerVacation" m on p."VCode" = m."Pcode"
|
|
||||||
where p."Year" = date_part('year'::varchar(255), #bdate#::date) and m."IdWorker" = #Master_IdWorker# and p."TypeName" = 'Base.RP_DocVacation'
|
|
||||||
limit 1)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>#Master_DocumentDate#</td>
|
|
||||||
<td>Заявление на перенос отпуска будущего месяца создаются только в период с 10 по 17 число текущего месяца</td>
|
|
||||||
<td>
|
|
||||||
date_part('day',now()) not in (10,11,12,13,14,15,16,17)</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
||||||
!!! note
|
|
||||||
Для вычислений проверки **"Перенос создан с даты ранее разрешенной"** необходимо завести константу ```создавать переносы отпусков, начиная с даты (день+месяц)```, заполняется столбец **"Значение (текст)"** числом и месяцем ранее которой не разрешается создавать заявление на перенос ежегодного отпуска.
|
|
||||||
|
|
||||||
**Ниже представлен пример проверки на заполнение реквизита в документе для пользователя с определенной должностью**, на примере документа "Заявление на получение справки 2НДФЛ", где #year# является реквизитом документа
|
|
||||||
|
|
||||||
Колонка для выделения | Сообщение | Правило для проверки
|
|
||||||
----------------------|-----------|---------------------
|
|
||||||
#year# | Необходимо заполнить информацию | #Master_Position# ilike '%водитель%'
|
|
||||||
|
|
||||||
Также возможно использовать служебное слово **#Master_PositionName#**, например, при написании заявления на ежегодный отпуск руководителем, необходимо указать заместителя на период отсутствия.
|
|
||||||
|
|
||||||
Колонка для выделения | Сообщение | Правило для проверки
|
|
||||||
----------------------|-----------|---------------------
|
|
||||||
#zam# | Необходимо заполнить информацию | coalesce(#zam#,0)::bigint=0::bigint and '#Master_PositionName#'::text ilike '%глав%врач%'::text
|
|
||||||
|
|
||||||
|
|
||||||
#### Проверки для табличных атрибутов
|
|
||||||
|
|
||||||
В столбец **"Колонка для выделения"** указывается служебное наименование таблицы,например, **#Table1#**, а в столбце **"Правило для проверки"** указывается служебные наименования таблицы и атрибута, например, **#Table1_bigint#**.
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
## Вкладка "Настройка вычислений"
|
|
||||||
|
|
||||||
Данная вкладка предназначена для вычисления зависимостей атрибутов.
|
|
||||||
|
|
||||||
В столбце **"Основной атрибут"** заполняется служебное наименование атрибута, который является основным в конструкторе. В столбце **«Зависимые атрибуты»** указываются служебные наименования атрибутов, которые необходимо указать как зависимые от основного атрибута. В столбце **"Вычисление"** указывается условие по которому вычисляется проверка по зависимым атрибутам. В столбце **"Фильтрация"** указывается условие по которому выполняется фильтрация по зависимым атрибутам.
|
|
||||||
|
|
||||||
В качестве вычисления возможно также использовать [вычисляемые атрибуты](#вычисляемые_атрибуты):
|
|
||||||
|
|
||||||
Вычисляемый атрибут | Описание
|
|
||||||
--------------------|---------
|
|
||||||
#Master_BeginDate# | дата начала действия доверенности
|
|
||||||
#Master_DocumentDate# | дата создания документа
|
|
||||||
#Master_DocumentNumber# | номер создаваемого документа
|
|
||||||
#Master_EndDate# | дата окончания действия доверенности
|
|
||||||
#Master_IdWorker# | код работника из справочника "Сотрудники"
|
|
||||||
#Master_MyCompany# | компания пользователя создателя документа
|
|
||||||
#Master_Position# | должность пользователя создателя документа
|
|
||||||
|
|
||||||
В данном примере представлены вычисления для определения подразделения и должности при выборе сотрудника из выпадающего списка. В качестве основного атрибута для обоих вычислений выступает служебное наименование **#worker#**, для должности - **#prof#**, для подразделения - **#podr#**. При необходимости вычисления можно отключить, для этого нужно проставить галочку в столбце "Вкл.".
|
|
||||||
|
|
||||||
Основной атрибут | Зависимые атрибуты | Вычисления
|
|
||||||
-----------------|--------------------|-----------
|
|
||||||
#worker# | #prof# | (select p."IdPost" from comdoc."WorkersListOnDate"(now()::date, 1, 1) p where p."IdWorker" = #worker#)
|
|
||||||
#worker# | #podr# | (select p."IdDepartment" from comdoc."WorkersListOnDate"(now()::date, 1, 1) p where p."IdWorker" = #worker#)
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
В примере указанном ниже указано условие фильтрации по которому в зависимости от выбранного подразделения будут фильтроваться сотрудники, которые работают в данном подразделении.
|
|
||||||
|
|
||||||
Основной атрибут | Зависимые атрибуты | Фильтрация
|
|
||||||
-----------------|--------------------|-----------
|
|
||||||
#podr# | #worker# | and (t."IdDepartment" = coalesce(#podr#,0) or #podr# is null)
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
!!! note
|
|
||||||
Фильтрация настроена для атрибутов с выпадающим списком: **Должность**, **Подразделение**, **Работник**, **Пользовательские типы атрибутов документов**, **Договор**, **Контрагент**, **Произвольная выборка**
|
|
||||||
|
|
||||||
Для зависимых атрибутов возможно настроить динамическое появление атрибута в документе. Для отображения атрибутов необходимо проставить галочка в столбце **"Видимость"**. должно быть **логическое**. Также данные атрибуты должны быть по умолчанию невидимыми в табличной части [дополнительные атрибуты](#дополнительные_атрибуты_документа).
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
## Вкладка "Сообщения об удаленных документах"
|
## Вкладка "Сообщения об удаленных документах"
|
||||||
|
|
||||||
|
BIN
docs/Admin manuals/Конструктор документов/media/image-45.png
Normal file
BIN
docs/Admin manuals/Конструктор документов/media/image-45.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 122 KiB |
BIN
docs/Admin manuals/Конструктор документов/media/image-46.png
Normal file
BIN
docs/Admin manuals/Конструктор документов/media/image-46.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
BIN
docs/Admin manuals/Конструктор документов/media/image-47.png
Normal file
BIN
docs/Admin manuals/Конструктор документов/media/image-47.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
BIN
docs/Admin manuals/Конструктор документов/media/image-48.png
Normal file
BIN
docs/Admin manuals/Конструктор документов/media/image-48.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
BIN
docs/Admin manuals/Конструктор документов/media/image-49.png
Normal file
BIN
docs/Admin manuals/Конструктор документов/media/image-49.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 57 KiB |
@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
search:
|
||||||
|
boost: 4
|
||||||
|
---
|
||||||
# Контур.Доверенности
|
# Контур.Доверенности
|
||||||
|
|
||||||
## Описание
|
## Описание
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
Диадок||responsible_accountant_diadoc| Роль позволяет редактировать поле "Идентификатор ЭДО" в карточке контрагента, в разделе "Настройки интеграции с Диадок"|
|
Диадок||responsible_accountant_diadoc| Роль позволяет редактировать поле "Идентификатор ЭДО" в карточке контрагента, в разделе "Настройки интеграции с Диадок"|
|
||||||
Форма "Диадок" в системе ||diadoc_client_Write|Позволяет открыть доступ к реестру и карточке документов Диадока|
|
Форма "Диадок" в системе ||diadoc_client_Write|Позволяет открыть доступ к реестру и карточке документов Диадока|
|
||||||
Доверенности | empowerment_read | empowerment_write | create_origin_pdf_empowerment - роль для формирования финальной части в формат PDF, empovermentvisibleremove, showallnotremovedempowerment - отображение кнопки "Удалить" (перевод в статус "Удаленно") внутри доверенности, **docconstructor_write** - открывает доступ к переходу в конструктор документа по данному типу/подтипу документа, **routetemplate_write** - открывает доступ к переходу в настройки шаблона маршрута по данному документу, **documentsubtype_write** - открывает доступ к переходу в настройки подтипа документа
|
Доверенности | empowerment_read | empowerment_write | create_origin_pdf_empowerment - роль для формирования финальной части в формат PDF, empovermentvisibleremove, showallnotremovedempowerment - отображение кнопки "Удалить" (перевод в статус "Удаленно") внутри доверенности, **docconstructor_write** - открывает доступ к переходу в конструктор документа по данному типу/подтипу документа, **routetemplate_write** - открывает доступ к переходу в настройки шаблона маршрута по данному документу, **documentsubtype_write** - открывает доступ к переходу в настройки подтипа документа
|
||||||
Формирование вложений в доверенностях (PDF, Word)| empowerment_pdf_report, empowerment_word_report | | **empowerment_pdf_report** открывает доступ pdf отчету через печатную форму, файл вкладывается после формирования во вложения документа. **empowerment_word_report** открывает доступ к word отчету через печатную форму, сформированный отчет так же как и pdf вкладывается во вложение документа.
|
Формирование вложений в доверенностях (PDF, Word)| empowerment_pdf_report, empowerment_word_report | | **empowerment_pdf_report** открывает доступ pdf отчету через печатную форму, файл вкладывается после формирования во вложения документа. **empowerment_word_report** открывает доступ к word отчету через печатную форму, сформированный отчет так же как и pdf вкладывается во вложение документа. **empowerment_word_jsreport** - роль для печатной формы отчета Word, формируется во вложении документа и имеет шрифт по умолчанию Times New Roman.
|
||||||
[Договоры](https://ecm-user-manuals.readthedocs.io/ru/latest/User%20manuals/%D0%94%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80/) | contract_read | super,jurist,contract_write | **master_jurist** - позволяет редактировать полный, внутренний, входящий номера в договоре на любом этапе маршрута. **projects_write** предоставляет возможность создания формы «Новый проект» из документа "Договор". Открывает доступ к кнопке «Создать проект». Данная роль предоставляется пользователю, который в системе заполняет справочник проектов. видеть_конфиденциальные_договора позволяет видеть договора с признаком "Конфиденциальность". **contract_editor** - предоставляет возможность редактировать договор в процессе согласования |
|
[Договоры](https://ecm-user-manuals.readthedocs.io/ru/latest/User%20manuals/%D0%94%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80/) | contract_read | super,jurist,contract_write | **master_jurist** - позволяет редактировать полный, внутренний, входящий номера в договоре на любом этапе маршрута. **projects_write** предоставляет возможность создания формы «Новый проект» из документа "Договор". Открывает доступ к кнопке «Создать проект». Данная роль предоставляется пользователю, который в системе заполняет справочник проектов. видеть_конфиденциальные_договора позволяет видеть договора с признаком "Конфиденциальность". **contract_editor** - предоставляет возможность редактировать договор в процессе согласования |
|
||||||
[Документы на подписание](https://ecm-user-manuals.readthedocs.io/ru/latest/User%20manuals/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B%20%D0%BD%D0%B0%20%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5/) | documentforsigning_read | documentforsigning_write | **docconstructor_write** - открывает доступ к переходу в конструктор документа по данному типу/подтипу документа, **routetemplate_write** - открывает доступ к переходу в настройки шаблона маршрута по данному документу, **documentsubtype_write** - открывает доступ к переходу в настройки подтипа документа, **document_for_signing_annulated** - возможность аннулировать документ на подписание
|
[Документы на подписание](https://ecm-user-manuals.readthedocs.io/ru/latest/User%20manuals/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B%20%D0%BD%D0%B0%20%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5/) | documentforsigning_read | documentforsigning_write | **docconstructor_write** - открывает доступ к переходу в конструктор документа по данному типу/подтипу документа, **routetemplate_write** - открывает доступ к переходу в настройки шаблона маршрута по данному документу, **documentsubtype_write** - открывает доступ к переходу в настройки подтипа документа, **document_for_signing_annulated** - возможность аннулировать документ на подписание
|
||||||
Документы, имеющие силу договора | validcontractdocument_read | super,jurist,validcontractdocument_write |
|
Документы, имеющие силу договора | validcontractdocument_read | super,jurist,validcontractdocument_write |
|
||||||
|
Loading…
x
Reference in New Issue
Block a user