В версии 4.1. появилась возможность для создания полного номера документа использовать xslt преобразование. Преобразование задается в "Справочнике нумераторов" / "Свойство нумератора"
Xslt шаблон применяется к xml карточки, для которой выделяется номер. Таким образом, в полном номере можно вывести данные из полей карточки.
В шаблоне так же можно использовать ряд тегов:
[Number] - номер
[DepPref], [DepSuff] - префикс, суфикс подразделения
[TypePref], [TypeSuff] - префикс, суфикс вида
[CasePref], [CaseSuff] - префикс, суфикс дела
[CasePrefPar], [CaseSuffPar] - префикс, суфикс дела с учетом родителей
[FolderPref], [FolderSuff] - префикс, суфикс папки
[FolderPrefPar], [FolderSuffPar] - префикс, суфикс папки с учетом родителей
Пример XSLT шаблона:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="//CardInc[1]/MainInfo/@Name"/>-[Number]+[TypePref]
</xsl:template>
</xsl:stylesheet>
Данный шаблон формирует номер по принципу:
имя карточки-номер+префикс вида
Можно ли узнать, какие еще теги бывают в xslt-преобразованиях? В частности, интересуют различные форматы даты (год2, год4 и т.д.)
ОтветитьУдалитьПробовал искать в документациях DV - нету.
Кроме перечисленных нет. Для работы с датами лучше использовать стандартные функции xsl. Например, получая дату в том формате, в котором она хранится в DV, вычленить только дату. Как это сделано можно посмотреть в любом стандартном шаблоне. Обратите внимание на часть
ОтветитьУдалить<xsl:template name="convertdatetime" match="text()" mode="replace">
</xsl:template>
1. не работает перед сохранением карточки - что очень глупо.
ОтветитьУдалитьА после сохранения выдает уже 2-й номер.
2. раз уж делать так, то и имя зоны для выдачи номеров тоже небходимо формировать преобразованием.
Подскажите, как с помощью xslt преобразований снабдить номер ведущими нулями?
ОтветитьУдалитьNemolx, можно воспользоваться ф-цией форматирования.
ОтветитьУдалитьПример, который вам может помочь.
http://www.w3schools.com/XSL/func_formatnumber.asp
Есть исх. документ на нём нумератор вида 11/22 где 11 = префикс подразделения подписанта,22 = код подразделения отправителя.
ОтветитьУдалитьС отправителем всё понятно, а как с помощью XSLT - вытащить код подразделения подписанта?