Настройки типа документа

Для листа согласования добавлен тип объекта 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, то секция Содержания по умолчанию развернута в новом листе.