Это старая версия документа.
Для того, чтобы в отчетах типа HTML (HTML-публикация, Business Studio Portal), названия Процессов, Субъектов и т.д. показывались ссылками (при условии, что есть куда ссылаться), необходимо, чтобы соответствующие привязки создавались как объекты, а не как параметры объекта. При этом текст такого объекта предопределен. Например, в отчетах ссылка будет только у процессов с текстом вида "Код НазваниеПроцесса". Если в отчет вывести параметр "Автокод процесса", то гиперссылки у такого кода процесса не будет.
В отчете формата Word по процессу в таблице с данными его подпроцессов столбец "Следующий процесс" должен быть:
Ничего не делать с данными о следующем процессе для отчетов типа HTML в случаях, если:
Решение описывается с момента, когда в шаблоне отчета создана необходимая привязка типа "Список", которую можно видеть таблицей. В таблице есть столбец "Следующий процесс", который представлен форматом "Код + Название процесса".
После того, как отчет будет сформирован и Business Studio создаст все необходимые ссылки, будем запоминать каждую ссылку и название столбца.
Только если отчет формируется для HTML-публикации или Business Studio Portal необходимо кодом VBA для каждой ячейки столбца "Следующий процесс":
Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) ие вывода отчета (файл или HTML: публикатор или портал) Dim HTMLCreate As Booл или HTML: публикатор или портал) Dim HTMLCreate As Boolean HTMLCreate = Application.ActiveDocument.Variables("BSHtml").Value If HTMLCreate Then tring Dim SpecText As String или BS Portal ng DiНАЯ Dim BookmarkName As String Dim SpecText As String Список, формирующей нужн Dim СolumnNextProc As Integer 4860073" СolumnNextProc = 4 'номер столбца "Следующий процесс" в табисок, формирующей нужную таблицу BookmarkName = "Подпроцессы_54860073" СolumnNextProc = 4 Dim KodText As String Dim hLinkAdress A процесс" в таблице SpecText = "{" НАЯ ЧАСТЬ If BookmarkIs(BookmarkName) Then 'если есть неция о {Туннель} или {Граница} odes = Not бные Dim CellText As String Dim KodText As String Dim hLinkAdress As String Dim spaceNum As Integer nt.Bookmarks(BookmaАЯ ЧАСТЬ If BookmarkIs(BookmarkName) Then bleKod.Rows.Count 'количество стимая закладка ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes On Error Resume Next ' игнорирование <erй, а значения Set TableKod = Application.ActiveDocument.Bookmarks(BookmarkName).Range.Tables(1) TableKodRows = TableKod.Rows.Count Text = Left$(CellText, (Leрок таблицы For i = 2 To TableKodRows ки If Len(CellText)аблицы, кроме первой On Error Resume Next ая ячейка И не {Туннель} или {Границы} spaceNum = InStr(ют вертикальное объединение CellText = TableKod.Cell(i, СolumnNextProc).Range.Text обела ение ячейки CellText = Left$(CellText, (Len(CellText) - 2)) hLinkAdress бных символа ячейки If Len(CellText) <> 0 And _ SpecText <> Left$(CellText, 1) Then k.Address 'определяем адрес гиперссылки уннель} или {Границы} spaceNum = InStr(1, CellText, " ") цесс имеет ссылку о пробела KodText = Mid(CellText, 1, spaceNum - 1) ActiveDocumого пробела TableKod.Cell(i, СolumnNextProc).Range.Select LinkAdress, _ ячейкой hLinkAdress = "" Tip:="", _ адреса ссылки For Each hLink In Selection.Hyperlinks hLinkAdress = hLink.Address End Sub Function BookmarkIs(с гиперссылки Next hLink If Len(hLinkAdress) <> 0 Then дка BookmarkIs = False 'снмеет ссылку ment.Bookmarks 'перебираем все закладки вчейки гиперссылкой ActiveDocument.Hyperlinks.Add _ Anchor:=Selection.Range, _ Address:=hLinkAdress, _