Копировать ссылку на страницу

В типовом маршруте «Согласование договорных документов» есть параметр Руководитель подразделения. В этом параметре задается имя руководителя, для которого готовится договор. Значение параметра заполняется программно от инициатора. Значение выбирается из справочника Пользователи.

Без добавления разрезов данные в отчетах по этому типовому маршруту можно анализировать в разрезе имен руководителей подразделений.

Предположим, что только имен руководителей для анализа недостаточно. Требуются их подразделения. В этом случае в список параметров следует добавить параметр Должность руководителя (Post), тип Справочник Виды должностей.

Значение этого параметра не имеет смысла запрашивать у пользователей, его можно получить программно. Для этого в событие типового маршрута «Завершение выбора» можно добавить вычисления:

 

  DEPARTMENT_MANAGER_PARAM_NAME = "РуководительПодразделения"

  PARAM_IS_NOT_EXIST = -1

  LIST_IS_EMPTY_COUNT = 0

  FIRST_EMPLOYEE_INDEX = 0

 

  // Получить список параметров ТМ

  WorkflowParams = Object.WorkflowParams

  DepartmentManagerParamIndex = WorkflowParams.IndexOfName(DEPARTMENT_MANAGER_PARAM_NAME)

  if DepartmentManagerParamIndex <> PARAM_IS_NOT_EXIST

    // Получить пользователя руководителя подразделения

    DepartmentManagerUser = WorkflowParams.Values(DepartmentManagerParamIndex).Value

    DepartmentManagerUserID = DepartmentManagerUser.ID

    DepartmentManagerEmployeesCodeList = GetEmployeesByUserID(DepartmentManagerUserID)

    if DepartmentManagerEmployeesCodeList.Count > LIST_IS_EMPTY_COUNT

      // Получить работника руководителя подразделения

      DepartmentManagerEmployeeCode = DepartmentManagerEmployeesCodeList.Values(FIRST_EMPLOYEE_INDEX)

      DepartmentManagerEmployeeRecord = References.РАБ.GetObjectByCode(DepartmentManagerEmployeeCode)

      PostKindCode = DepartmentManagerEmployeeRecord.ВидДолжности

      if Assigned(PostKindCode)

        // Получить вид должности

        PostKindID = GetRequisiteValueAsString("PositionKinds"; PostKindCode; SYSREQ_ID)

        PostKindInfo = References.PositionKinds.ObjectInfo(PostKindID)

        WorkflowParams.ValueByName("Post").Value = PostKindInfo

      endif

© 2016 Компания DIRECTUM Сообщество пользователей DIRECTUM