Это старая версия документа.
Для того чтобы в отчетах типа 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 860073" СolumnNextProc = 4 'номер столбца "Следующий процесс" в табсок, формирующей нужную таблицу BookmarkName = "Подпроцессы_54860073" СolumnNextProc = 4 Dim KodText As String Dim hLinkAdress процесс" в таблице SpecText = "{" РНАЯ ЧАСТЬ If BookmarkIs(BookmarkName) Then 'если есть нция о {Туннель} или {Граница} Codes = Notбные Dim CellText As String Dim KodText As String Dim hLinkAdress As String Dim spaceNum As Integer ent.Bookmarks(BookmАЯ ЧАСТЬ If BookmarkIs(BookmarkName) Then ableKod.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 nk.Address 'определяем адрес гиперссылки уннель} или {Границы} spaceNum = InStr(1, CellText, " ") оцесс имеет ссылку о пробела KodText = Mid(CellText, 1, spaceNum - 1) ActiveDocuого пробела TableKod.Cell(i, СolumnNextProc).Range.Select hLinkAdress, _ ячейкой hLinkAdress = "" nTip:="", _ адреса ссылки For Each hLink In Selection.Hyperlinks hLinkAdress = hLink.Address End Sub Function BookmarkIsс гиперссылки Next hLink If Len(hLinkAdress) <> 0 Then адка BookmarkIs = False 'смеет ссылку ument.Bookmarks 'перебираем все закладки чейки гиперссылкой ActiveDocument.Hyperlinks.Add _ Anchor:=Selection.Range, _ Address:=hLinkAdress, _