Для карточки задания:
Const REF_TYPE_DVDOCUMENT = 1 Const REPORT_NAME = "Шаблон печати" 'Название шаблона печати Function DoEvent(UserSession, CardFrame, CardData, ActivateFlags, ModeID, FolderID) Dim docCard, dlg Set docCard = GetDocCard(CardData, UserSession) If Not docCard Is Nothing Then Set dlg = CreateObject("DVSystemDialogs.SystemDialogs") dlg.ShowPreviewWithCustomXML 0, CardFrame.Host, UserSession, docCard.GetXml, REPORT_NAME, "", docCatd.Type.ID End If End Function ' Получить документ, приложенный к заданию Function GetDocCard(taskCard, session) Dim refs, row, refId, docCard, typeAlias Set refs = Sect(taskCard, "CardReferences2").Rows For Each row In refs If row.Value("RefType") = REF_TYPE_DVDOCUMENT Then refId = row.Value("RefID") If Not IsNull(refId) Then Set docCard = session.CardManager.CardData(refId) typeAlias = docCard.Type.Alias If typeAlias = "CardInc" Or _ typeAlias = "CardOrd" Or _ typeAlias = "CardOut" Or _ typeAlias = "CardUni" _ Then Set GetDocCard = docCard Exit Function End If End If End If Next Set GetDocCard = Nothing End Function ' Получение секции карточки по имени Function Sect(CardData, Alias) Set Sect = CardData.Sections(CardData.Type.AllSections.GetByAlias(Alias).ID) End Function ' Получение подчиненной секции по имени Function SubSect(RowData, Alias) Set SubSect = RowData.ChildSections(RowData.Section.Card.Type.AllSections.GetByAlias(Alias).ID) End Function
Для карточки документа:
Const REF_TYPE_DVDOCUMENT = 1 Const REPORT_NAME = "Шаблон печати" 'Название шаблона печати Function DoEvent(UserSession, CardFrame, CardData, ActivateFlags, ModeID, FolderID) Dim docCard, dlg Set docCard = CardData If Not docCard Is Nothing Then Set dlg = CreateObject("DVSystemDialogs.SystemDialogs") dlg.ShowPreviewWithCustomXML 0, CardFrame.Host, UserSession, docCard.GetXml, REPORT_NAME, "", docCard.Type.ID End If End Function ' Получение секции карточки по имени Function Sect(CardData, Alias) Set Sect = CardData.Sections(CardData.Type.AllSections.GetByAlias(Alias).ID) End Function ' Получение подчиненной секции по имени Function SubSect(RowData, Alias) Set SubSect = RowData.ChildSections(RowData.Section.Card.Type.AllSections.GetByAlias(Alias).ID) End Function