Детальная история работы с объектами хранится в базе данных в формате XML. Например, для документов она фиксируется в таблице SBEDocProtocol в поле Detail. Информация из базы выводится пользователю в окне «История работы» в колонке Детальное описание.
Чтобы в колонке Детальное описание вывести строку в определенном формате, необходимо использовать XSL-преобразование. Подробное описание синтаксиса и используемых элементов см. в справке Microsoft по XSLT.
Настройка XSL-преобразования не является обязательной. Если XSL-преобразование не задано, то данные в формате XML отображаются в том виде, в каком они хранятся в базе данных.
  Пример
Постановка задачи 
Настроить историю работы с документами: 
| • | фиксировать добавление, изменение и удаление прав доступа на документы: ИД пользователя или группы пользователей, имя пользователя или группы пользователей, тип прав; |  
 | • | информацию о правах доступа выводить в формате: |  
 <Имя пользователя или группы пользователей> - <Тип прав доступа>; 
| • | если в правах указаны несколько пользователей или групп пользователей, то они должны указываться через запятую и перевод строки. |  
 Решение 
Фиксируются значения реквизитов: 
| • | ISBEDocAccountID – ИД пользователя или группы пользователей; |  
 | • | ISBEDocAccountName – имя пользователя или группы пользователей; |  
 | • | ISBEDocAccessType – тип прав доступа. |  
 Если пользователя лишили прав на документ, то выводится значение строки локализации SYSRES_SYSCOMP.ACCESS_RIGHTS_REVOKED_TEXT – «Права отозваны». 
  
<?xml version="1.0" encoding="windows-1251"?> 
<settings> 
<action name="laRights" when="always"> 
  <detail when="always"> 
    <requisite name="ISBEDocAccountID" when="always" /> 
    <requisite name="ISBEDocAccountName" when="always" /> 
    <requisite name="ISBEDocAccessType" when="always" /> 
  </detail> 
</action> 
<view><![CDATA[<?xml version="1.0" encoding="windows-1251"?> 
  
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
  <xsl:output method="text" /> 
  <xsl:template match="/H"> 
    <xsl:for-each select="./R"> 
      <xsl:value-of select="@LN" />: <xsl:value-of select="text()" /><xsl:if test="not(position() = last())">, </xsl:if> 
    </xsl:for-each> 
    <xsl:if test="count(/H/R) > 0"><xsl:text>
</xsl:text></xsl:if> 
    <xsl:for-each select="./D[@I='1']"> 
      <xsl:for-each select="./TR"> 
        <xsl:if test="./R[@N='ISBEDocAccessType']"> 
          <xsl:value-of select="./R[@N='ISBEDocAccountName']"/> 
          <xsl:text> - </xsl:text> 
          <xsl:choose> 
            <xsl:when test="@S='D'"> 
              <xsl:text>LoadString('ACCESS_RIGHTS_REVOKED_TEXT'; 'SYSRES_SYSCOMP')</xsl:text> 
            </xsl:when> 
            <xsl:otherwise> 
              <xsl:value-of select="./R[@N='ISBEDocAccessType']"/> 
            </xsl:otherwise> 
          </xsl:choose> 
          <xsl:if test="not(position() = last())"><xsl:text>, 
</xsl:text></xsl:if> 
        </xsl:if> 
      </xsl:for-each> 
    </xsl:for-each> 
  </xsl:template> 
</xsl:stylesheet>]]> 
</view> 
</settings> 
В результате при изменении прав доступа в истории фиксируется: 
  
 |