доп описание для настроек жсд

This commit is contained in:
mirzakaev_tf 2024-01-30 15:23:52 +05:00
parent 538dd39a2c
commit b576137ddf
1 changed files with 25 additions and 1 deletions

View File

@ -69,6 +69,30 @@
![Дополнительная колонка](media/dopColonka.png) ![Дополнительная колонка](media/dopColonka.png)
В данном блоке могут быть указаны колонки, значения которых можно вычислить на основании реквизитов документов и их маршрутов.
## Примеры настроек колонок
В колонке **"Статус общий"** указан статус маршрута. Если он "Текущий", то будет заполнена и колонка "На ком документ" пользователями, у которых не выполнено действие на текущем этапе маршрута. Колонка "Согласовавшие участники", напротив, заполняется теми пользователями, у которых уже выполнены действия по маршруту. Эти колонки как правило не нуждаются в донастройке Журнала состояния документов (ЖСД) или конструкторов.
Колонка **"Реквизиты документа"** в запросах обычно заполняется стандартным значением t."AnyColumnA", в котором перечисляются номер, дата документа и ФИО его создателя.
Колонки **"Период с", "Период по" и "Кол-во"** заполняются значениями дополнительных атрибутов (реквизитов) с хэштегами '#bdate#', '#edate#', '#kolvo#' соответственно, если документ на конструкторе (Заявления от сотрудника, универсальные документы и т.д.), а также заполняются датами и продолжительностью командировки, указанными в теле документа "СЗ на командировку".
Если уже есть конструкторы, поля которых хотелось бы сопоставить с этими колонками, то можно либо скорректировать запрос в поле **"Итоговая выборка"**, заменив bd.`"ColumnName" = '#bdate#'` на `bd."ColumnName" = '#another_bdate_name#'` (аналогично с другими доп. атрибутами), либо заменить в конструкторе документов старое служебное наименование на новое, не забывая как про основную вкладку с мемо-полем, так и остальные: Ограничения, Сформировать наименование документа из реквизитов, Настройка интерфейса, Настройка проверок, Настройка вычислений.
В колонке **"Прочее"** перечисляются все остальные доп. атрибуты документа и их значения, т.е. со служебными наименованиями, отличными от #bdate#, #edate#, #kolvo#.
Вычисления для колонок **Сотрудник** и **Таб.номер** немного сложнее. Для СЗ на командировку они берутся из таблицы с командированными сотрудниками в документе.
Для универсальных документов и документов на подписание (ДНП) в первую очередь ищется доп.атрибут типа Работник со служебным наименованием, сформированному по правилу #worker%# это значит, что могут подобраться `#worker#`, `#worker1#` и т.д., т.к. % означает, что после слова worker может идти любой набор симоволов любой длины (даже нулевой). Если такие доп. атрибуты отсутствуют или не заполнены, проверяется, заполнено ли в документе поле IdWorker, которое может быть заполнено кодом сотрудника при загрузке документа из сторонней системы (базы). Для остальных типов документов по умолчанию ищется значение IdWorker.
В заявлениях, актах аннулирования оно заполняется, для ЛНА, доверенностей и прочих документов оно скорее всего не заполняется. Для них можно либо скорректировать запрос в поле **"Итоговая выборка"**, добавив внутрь coalesce вычисление сотрудника по создателю документа или какое-то другое правило, либо определить правило заполнения `IdWorker` в представлении `comdoc."DocflowExists"` (задаётся в базе).
Для вычисления родительского подразделения тоже необходимо определить сотрудника, чьё родительское подразделение (а также Инициатор документа, Подразделение, Должность) будет показано в результирующей таблице ЖСД.
Для универсальных документов и ДНП в первую очередь ищется доп.атрибут со служебным наименованием `#worker#` (или `#Worker#`). Если такой отсутствует или не заполнен, проверяется, заполнено ли в документе поле `IdWorker`, которое может быть заполнено при загрузке документа из сторонней системы (базы). Во всех остальных случаях как для универсальных документов с ДНП, так и остальных типов, берётся пользователь, создавший документ. Если пользователь не заведён как сотрудник, Родительское подразделение не заполнится.
## Вкладка "Запрос" ## Вкладка "Запрос"
В данном блоке указывается часть с динамическим запросом, содержащим непосредственно запроса для отображения документов. В данном блоке указывается часть с динамическим запросом, содержащим непосредственно запроса для отображения документов.
@ -80,7 +104,7 @@
!!! note !!! note
Для того чтобы запрос фильтровался по заданному количеству документов, которое указывается в поле **Кол-во строк/Период (с/по):** необзодимо в конце запроса добавить строку `_topcount` , например: ```left join "tmp_workers_for_documentStatusJournalProc" w2 on w2."VCode" = t."IdWorker" _topcount;``` Для того чтобы запрос фильтровался по заданному количеству документов, которое указывается в поле **Кол-во строк/Период (с/по):** необзодимо в конце запроса добавить строку `_topcount` , например: ```left join "tmp_workers_for_documentStatusJournalProc" w2 on w2."VCode" = t."IdWorker" _topcount;```
### Примеры запросов: ### Примеры запросов
**Просроченные документы** - в реестре отображаются документы, по которым были нарушены сроки обработки: **Просроченные документы** - в реестре отображаются документы, по которым были нарушены сроки обработки: