Для карточки задания:

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