- Создатель Васильев Антон, отредактировано 29.01.2025
Настройки типа документа
Для листа согласования добавлен тип объекта APPROVING_LIST.
В типовой версии палитры создан тип документа с этим объектом и схемой ApprovingListResource.
Для ознакомления тип объекта - REVIEW_LIST, схема по умолчанию - ReviewListResource.
Схема листа согласования/ознакомления
Системой поддерживается добавление несистемных сохраняемых и несохраняемых вычисляемых полей. Можно добавлять кастомное содержание (ричтекст и файлы). Поддерживаются события QueryCreate, QuerySave и PostSave. Стандартный recalc не используется, у листа согласования выполняется по специальной ссылке с обработчиком на сервере - нужно для корректной обработки смены типа согласования. Доступ по несистемным actor-полям не поддерживается.
С помощью временных вычисляемых полей есть возможность менять значения других полей, добавлять или удалять ссылки (например, на справочники СО).
Форма листа согласования
По НР-форме показывается только содержимое секции "Содержание". Параметры согласования, участники рисуются web-клиентом. Поэтому отображаемые несистемные поля можно добавить только в секцию "Содержание". В режиме редактирования (новый и приостановленный лист) секция показывается под параметрами согласования. В режиме чтения (лист в процессе или завершен/прекращен) - по иконке скрепки в правой части плашки листа.
Специальные поля
$hideDueDate - если равно true, то скрывается общий срок согласования. Если любой другое значение - показывается.
contentTnCount - количество прикрепленных файлов в несистемных полях. Нужно для корректного отображения в WebDocs.
contentTnCopy - поле-массив объектов, содержащее информацию по полях, копируемых в лист из согласуемого документа по кнопке "Копировать содержание". Также поле может добавляться в схему и форму визы, если структура содержания там должна быть такая же, как в листе. Атрибуты объекта: id - имя поля, title - отображаемая в диалоге надпись.
Вычисление через временное свойство:
<boolean name="fillcontentTnCopy" temporal="true"> <calc-values> <script event="open"><![CDATA[#root.isMeetingPack==true? { #session = T(ru.intertrust.cmj.af.core.AFSession).get(), #list = new java.util.ArrayList(), #appendixUOB1 = new java.util.HashMap(), #appendixUOB1.put("id", "appendixUOB1"), #appendixUOB1.put("title", "Проекты решений УОБ (одобрение)"), #list.add(#appendixUOB1), #appendixUOB2 = new java.util.HashMap(), #appendixUOB2.put("id", "appendixUOB2"), #appendixUOB2.put("title", "Проекты решений УОБ (утверждение)"), #list.add(#appendixUOB2), #appendixNDoc = new java.util.HashMap(), #appendixNDoc.put("id", "appendixNDoc"), #appendixNDoc.put("title", "Проекты нормативных документов"), #list.add(#appendixNDoc), #appendixIntDoc = new java.util.HashMap(), #appendixIntDoc.put("id", "appendixIntDoc"), #appendixIntDoc.put("title", "Проекты внутренних документов"), #list.add(#appendixIntDoc), #appendixExpNote = new java.util.HashMap(), #appendixExpNote.put("id", "appendixExpNote"), #appendixExpNote.put("title", "Пояснительная записка"), #list.add(#appendixExpNote), #appendixPresentation = new java.util.HashMap(), #appendixPresentation.put("id", "appendixPresentation"), #appendixPresentation.put("title", "Презентации"), #list.add(#appendixPresentation), #appendixADoc = new java.util.HashMap(), #appendixADoc.put("id", "appendixADoc"), #appendixADoc.put("title", "Проект распорядительного документа"), #list.add(#appendixADoc), #appendixOther = new java.util.HashMap(), #appendixOther.put("id", "appendixOther"), #appendixOther.put("title", "Иные файлы"), #list.add(#appendixOther), #appendixIssFix = new java.util.HashMap(), #appendixIssFix.put("id", "appendixIssFix"), #appendixIssFix.put("title", "Учет замечаний"), #list.add(#appendixIssFix), T(ru.intertrust.cmj.tunable.object.common.TunableObjectHelper).putAFInstanceValue(#root.tuning(), "contentTnCopy", #list), true }[39] :false]]></script> </calc-values> </boolean>
Вычисленное значение:
contentTnCopy: [ {id: "appendixNDoc", title: "Проект нормативного документа"}, {id: "appendixADoc", title: "Проект распорядительного документа"} ... ]
$showContentInPrimaryList - если true, то секция содержания показывается в первичном листе.
$expandContent - если true, то секция Содержания по умолчанию развернута в новом листе.
- Нет меток