ПРИМЕР XSLT-ПРЕОБРАЗОВАНИЯ ИЗ ПРОМЕЖУТОЧНОГО XML-ФАЙЛА В SBIS.XML

Данное xslt-преобразование используется при конвертации исходящего dbf/csv-конверта.

Скачать xslt-преобразование

<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="xml" indent="yes" encoding="windows-1251" />
  <xsl:decimal-format name="dkk" decimal-separator="."/>

	<xsl:variable name="attr_name">
		<xsl:choose>
			<xsl:when test="//Строка[@Номер='1']/@Значение">
				<xsl:text>Значение</xsl:text>
			</xsl:when>
			<xsl:otherwise>
				<xsl:text>Название</xsl:text>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:variable>

   <!-- получаем номера столбцов -->
   <xsl:variable name="PACKETID">
    	<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*[name()=$attr_name]='PACKETID']
            /@Номер"/>
   </xsl:variable>

   <xsl:variable name="ROWTYPE">
		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='ROWTYPE']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="DOCUMENTID">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='DOCUMENTID']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="ROWINDEX">
		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                    [name()=$attr_name]='ROWINDEX']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="TYPE">
  		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='TYPE']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="ID">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                    [name()=$attr_name]='ID']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="NAME">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='NAME']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="VALUE">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                    [name()=$attr_name]='VALUE']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="NUMBER">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                    [name()=$attr_name]='NUMBER']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="DATE">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                    [name()=$attr_name]='DATE']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="UNITCODE">
  		 <xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='UNITCODE']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="UNITNAME">
  		 <xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='UNITNAME']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="AMOUNT">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='AMOUNT']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="PRICE">
  		 <xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                      [name()=$attr_name]='PRICE']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="SUM">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='SUM']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="TOTAL">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='TOTAL']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="TAXSUM">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='TAXSUM']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="TAXTYPE">
  		 <xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                      [name()=$attr_name]='TAXTYPE']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="TAXRATE">
  		 <xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='TAXRATE']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="EXCISESUM">
  		 <xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='EXCISESUM']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="GROSSWEIGHT">
  		 <xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                      [name()=$attr_name]='GROSSWEIGH']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="NETWEIGHT">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='NETWEIGHT']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="PACK">
  		 <xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='PACK']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="PACKAMOUNT">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='PACKAMOUNT']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="PACKNAME">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='PACKNAME']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="INN">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='INN']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="KPP">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='KPP']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="EMAIL">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='EMAIL']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="PHONE">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='PHONE']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="ADDRESS">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='ADDRESS']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="BANKNAME">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='BANKNAME']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="BANKID">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='BANKID']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="BANKACC">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='BANKACC']/@Номер"/>
   </xsl:variable>

   <xsl:variable name="BANKCORACC">
   		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*
                     [name()=$attr_name]='BANKCORACC']/@Номер"/>
   </xsl:variable>



  <xsl:template match="/">
    <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="Файл">
    <Реестр>
		<xsl:choose>
			<!-- перебираем строки с TYPE=Packet и уникальными PACKETID-->
		    <!-- для csv не берем в расчет заголовочную первую строку -->
			<xsl:when test="//Строка[@Номер='1']/@Значение">
				<xsl:for-each select="//Строка[@Номер!='1'][Столбец[@Номер=$ROWTYPE]
                                    /@Значение='Packet']
                                     [not(Столбец[@Номер=$PACKETID]/@Значение=preceding-sibling:
                                     :Строка[Столбец[@Номер=$ROWTYPE]/@Значение='Packet']
                                      /Столбец[@Номер=$PACKETID]/@Значение)]">
					<xsl:apply-templates select="." mode="Пакет"/>
				</xsl:for-each>
			</xsl:when>
			<xsl:otherwise>
				<xsl:for-each select="//Строка[Столбец[@Номер=$ROWTYPE]/@Значение='Packet']
                                     [not(Столбец[@Номер=$PACKETID]/@Значение=preceding-sibling:
                                     :Строка[Столбец[@Номер=$ROWTYPE]/@Значение='Packet']
                                      /Столбец[@Номер=$PACKETID]/@Значение)]">
					<xsl:apply-templates select="." mode="Пакет"/>
				</xsl:for-each>
			</xsl:otherwise>
		</xsl:choose>
    </Реестр>
  </xsl:template>

  <!--Формируем пакеты-->
  <xsl:template match="Строка" mode="Пакет">
  <Пакет>
	<xsl:variable name="ИдДок" select="Столбец[@Номер=$PACKETID]/@Значение"/>
	<xsl:variable name="Примечание" select="Столбец[@Номер=$NAME]/@Значение"/>
	<xsl:variable name="ТипДок" select="Столбец[@Номер=$TYPE]/@Значение"/>

	<xsl:attribute name="ИдДок">
		<xsl:value-of select="$ИдДок"/>
	</xsl:attribute>
	<xsl:if test="$Примечание!=''">
		<xsl:attribute name="Примечание">
			<xsl:value-of select="$Примечание"/>
		</xsl:attribute>
	</xsl:if>
	<xsl:attribute name="ТипДок">
		<xsl:choose>
			<xsl:when test="$ТипДок!=''">
				<xsl:value-of select="normalize-space($ТипДок)"/>
			</xsl:when>
			<xsl:otherwise>
				<xsl:text>ДокОтгрИсх</xsl:text>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:attribute>

	<!-- отправитель -->
	<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдДок]
             [Столбец[@Номер=$ROWTYPE]/@Значение='Party'][Столбец[@Номер=$TYPE]/@Значение='Sender']" 
             mode="Отправитель"/>

	<!-- получатель -->
	<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдДок]
             [Столбец[@Номер=$ROWTYPE]/@Значение='Party'][Столбец[@Номер=$TYPE]/@Значение='Receiver']" 
             mode="Получатель"/>
	
	<!-- перебираем все документы в рамках пакета -->
	<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдДок]
             [Столбец[@Номер=$ROWTYPE]/@Значение='Document'][Столбец[@Номер=$TYPE]/@Значение='СчФктр']" 
             mode="Документ">	
		<xsl:with-param name="ИдДок" select="$ИдДок"/>
	</xsl:apply-templates>
	
    
  </Пакет>	 
  </xsl:template>
	
  <xsl:template match="Строка" mode="Отправитель">
		<Отправитель>
			<xsl:attribute name="ИНН">
				<xsl:value-of select="Столбец[@Номер=$INN]/@Значение"/>
			</xsl:attribute>
			<xsl:attribute name="КПП">
				<xsl:value-of select="Столбец[@Номер=$KPP]/@Значение"/>
			</xsl:attribute>
		</Отправитель>
	</xsl:template>

  <xsl:template match="Строка" mode="Получатель">
	<xsl:variable name="Название" select="Столбец[@Номер=$NAME]/@Значение"/>	
	<xsl:variable name="Телефон"  select="Столбец[@Номер=$PHONE]/@Значение"/>
	<xsl:variable name="ЭлПочта"    select="Столбец[@Номер=$EMAIL]/@Значение"/>
		
		<Получатель>
			<xsl:attribute name="ИНН">
				<xsl:value-of select="Столбец[@Номер=$INN]/@Значение"/>
			</xsl:attribute>
			<xsl:attribute name="КПП">
				<xsl:value-of select="Столбец[@Номер=$KPP]/@Значение"/>
			</xsl:attribute>

			<xsl:if test="$Название!=''">
				<xsl:attribute name="Название">
					<xsl:value-of select="$Название"/>
				</xsl:attribute>
			</xsl:if>

			<xsl:if test="$Телефон!=''">
				<xsl:attribute name="Телефон">
					<xsl:value-of select="$Телефон"/>
				</xsl:attribute>
			</xsl:if>
			<xsl:if test="$ЭлПочта!=''">
				<xsl:attribute name="ЭлПочта">
					<xsl:value-of select="$ЭлПочта"/>
				</xsl:attribute>
			</xsl:if>

		</Получатель>
	</xsl:template>

  <xsl:template match="Строка" mode="Документ">
	<xsl:param name="ИдДок"/>	
		<Вложение>
			<xsl:variable name="ТипДокумента">
				<xsl:call-template name="uppercase">
					<xsl:with-param name="input" select="Столбец[@Номер='6']
                                            /@Значение"/>
				</xsl:call-template>
			</xsl:variable>
			
			<xsl:if test="contains($ТипДокумента,'ФАКТУРА') and not(contains($ТипДокумента,
                             'КОРРЕКТИРОВОЧНЫЙ'))">
				<xsl:variable name="ИмяФайла">
					<xsl:call-template name="create_filename">
						<xsl:with-param name="doc_date" select="Столбец[@Номер=$DATE]
                                                    /@Значение"/>
						<xsl:with-param name="file_type" select="'ON_SFAKT'"/>
						<xsl:with-param name="innpoluch" select="//Строка[Столбец
                                                    [@Номер=$PACKETID]
                                                    /@Значение=Столбец[@Номер=$PACKETID]/@Значение]
                                                    [Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                    [Столбец[@Номер=$TYPE]/@Значение='Receiver']
                                                    /Столбец[@Номер=$INN]/@Значение"/>
						<xsl:with-param name="kpppoluch" select="//Строка
                                                     [Столбец[@Номер=$PACKETID]
                                                    /@Значение=Столбец[@Номер=$PACKETID]
                                                    /@Значение][Столбец[@Номер=$ROWTYPE]
                                                    /@Значение='Party'][Столбец[@Номер=$TYPE]
                                                    /@Значение='Receiver']/Столбец[@Номер=$KPP]/@Значение"/>
						<xsl:with-param name="send_inn" 
                                                     select="//Строка[Столбец[@Номер=$PACKETID]
                                                    /@Значение=Столбец[@Номер=$PACKETID]
                                                    /@Значение][Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                   [Столбец[@Номер=$TYPE]/@Значение='Sender']
                                                    /Столбец[@Номер=$INN]/@Значение"/>
						<xsl:with-param name="send_kpp" 
                                                     select="//Строка[Столбец[@Номер=$PACKETID]
                                                    /@Значение=Столбец[@Номер=$PACKETID]/@Значение]
                                                   [Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                   [Столбец[@Номер=$TYPE]/@Значение='Sender']
                                                   /Столбец[@Номер=$KPP]/@Значение"/>
						<xsl:with-param name="dopUid" select="Столбец[@Номер=$PACKETID]
                                                    /@Значение"/>
					</xsl:call-template>
				</xsl:variable>
				
				<xsl:attribute name="ИмяФайла">
					<xsl:value-of select="concat($ИмяФайла,'.xml')"/>
				</xsl:attribute>

				<xsl:call-template name="СчетФактура">
					<xsl:with-param name="ИдПакет" select="$ИдДок"/>
					<xsl:with-param name="ИмяФайла" select="$ИмяФайла"/>
				</xsl:call-template>
				
			</xsl:if>

			<xsl:if test="contains($ТипДокумента,'ТОВАРНАЯ НАКЛАДНАЯ')">
				<xsl:variable name="ИмяФайла">
					<xsl:call-template name="create_filename">
						<xsl:with-param name="doc_date" select="Столбец[@Номер=$DATE]
                                                    /@Значение"/>
						<xsl:with-param name="file_type" select="'DP_OTORG12'"/>
						<xsl:with-param name="innpoluch" 
                                                     select="//Строка[Столбец[@Номер=$PACKETID]
                                                    /@Значение=Столбец[@Номер=$PACKETID]/@Значение]
                                                    [Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                    [Столбец[@Номер=$TYPE]/@Значение='Receiver']
                                                    /Столбец[@Номер=$INN]/@Значение"/>
						<xsl:with-param name="kpppoluch" 
                                                    select="//Строка[Столбец[@Номер=$PACKETID]
                                                    /@Значение=Столбец[@Номер=$PACKETID]/@Значение]
                                                    [Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                    [Столбец[@Номер=$TYPE]/@Значение='Receiver']
                                                    /Столбец[@Номер=$KPP]/@Значение"/>
						<xsl:with-param name="send_inn" 
                                                    select="//Строка[Столбец[@Номер=$PACKETID]
                                                    /@Значение=Столбец[@Номер=$PACKETID]/@Значение]
                                                    [Столбец[@Номер=$ROWTYPE]
                                                    /@Значение='Party'][Столбец[@Номер=$TYPE]
                                                    /@Значение='Sender']/Столбец[@Номер=$INN]/@Значение"/>
						<xsl:with-param name="send_kpp" 
                                                    select="//Строка[Столбец[@Номер=$PACKETID]
                                                    /@Значение=Столбец[@Номер=$PACKETID]/@Значение]
                                                    [Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                    [Столбец[@Номер=$TYPE]/@Значение='Sender']
                                                    /Столбец[@Номер=$KPP]/@Значение"/>
						<xsl:with-param name="dopUid" 
                                                    select="Столбец[@Номер=$PACKETID]/@Значение"/>
					</xsl:call-template>
				</xsl:variable>
				
				<xsl:attribute name="ИмяФайла">
					<xsl:value-of select="concat($ИмяФайла,'.xml')"/>
				</xsl:attribute>

				<xsl:call-template name="ТоварнаяНакладная">
					<xsl:with-param name="ИдПакет" select="$ИдДок"/>
					<xsl:with-param name="ИмяФайла" select="$ИмяФайла"/>
				</xsl:call-template>
				
			</xsl:if>
			
			<xsl:if test="contains($ТипДокумента,'АКТ ВЫПОЛНЕННЫХ РАБОТ')">
				<xsl:variable name="ИмяФайла">
					<xsl:call-template name="create_filename">
						<xsl:with-param name="doc_date" 
                                                    select="Столбец[@Номер=$DATE]/@Значение"/>
						<xsl:with-param name="file_type" select="'DP_IAKTPRM'"/>
						<xsl:with-param name="innpoluch" 
                                                     select="//Строка[Столбец[@Номер=$PACKETID]
                                                     /@Значение=Столбец[@Номер=$PACKETID]
                                                     /@Значение][Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                     [Столбец[@Номер=$TYPE]/@Значение='Receiver']
                                                     /Столбец[@Номер=$INN]/@Значение"/>
						<xsl:with-param name="kpppoluch" 
                                                     select="//Строка[Столбец[@Номер=$PACKETID]
                                                     /@Значение=Столбец[@Номер=$PACKETID]
                                                     /@Значение][Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                     [Столбец[@Номер=$TYPE]/@Значение='Receiver']
                                                     /Столбец[@Номер=$KPP]/@Значение"/>
						<xsl:with-param name="send_inn"  
                                                     select="//Строка[Столбец[@Номер=$PACKETID]
                                                     /@Значение=Столбец[@Номер=$PACKETID]
                                                     /@Значение][Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                     [Столбец[@Номер=$TYPE]/@Значение='Sender']
                                                     /Столбец[@Номер=$INN]/@Значение"/>
						<xsl:with-param name="send_kpp" 
                                                     select="//Строка[Столбец[@Номер=$PACKETID]
                                                     /@Значение=Столбец[@Номер=$PACKETID]
                                                     /@Значение][Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                     [Столбец[@Номер=$TYPE]/@Значение='Sender']
                                                     /Столбец[@Номер=$KPP]/@Значение"/>
						<xsl:with-param name="dopUid" 
                                                     select="Столбец[@Номер=$PACKETID]/@Значение"/>
					</xsl:call-template>
				</xsl:variable>
				
				<xsl:attribute name="ИмяФайла">
					<xsl:value-of select="concat($ИмяФайла,'.xml')"/>
				</xsl:attribute>

				<xsl:call-template name="АктВыполненныхРабот">
					<xsl:with-param name="ИдПакет" select="$ИдДок"/>
					<xsl:with-param name="ИмяФайла" select="$ИмяФайла"/>
				</xsl:call-template>
				
			</xsl:if>

			<xsl:if test="contains($ТипДокумента,'СЧЕТ НА ОПЛАТУ')">
				<xsl:variable name="ИмяФайла">
					<xsl:call-template name="create_filename">
						<xsl:with-param name="doc_date" 
                                                  select="Столбец[@Номер=$DATE]/@Значение"/>
						<xsl:with-param name="file_type" select="'ON_SCHET'"/>
						<xsl:with-param name="innpoluch" 
                                                     select="//Строка[Столбец[@Номер=$PACKETID]
                                                     /@Значение=Столбец[@Номер=$PACKETID]/@Значение]
                                                     [Столбец[@Номер=$ROWTYPE]
                                                     /@Значение='Party']
                                                     [Столбец[@Номер=$TYPE]/@Значение='Receiver']
                                                     /Столбец[@Номер=$INN]/@Значение"/>
						<xsl:with-param name="kpppoluch" 
                                                     select="//Строка[Столбец[@Номер=$PACKETID]
                                                     /@Значение=Столбец[@Номер=$PACKETID]/@Значение]
                                                     [Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                     [Столбец[@Номер=$TYPE]
                                                     /@Значение='Receiver']/Столбец[@Номер=$KPP]
                                                     /@Значение"/>
						<xsl:with-param name="send_inn" 
                                                     select="//Строка[Столбец[@Номер=$PACKETID]
                                                     /@Значение=Столбец[@Номер=$PACKETID]/@Значение]
                                                     [Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                     [Столбец[@Номер=$TYPE]
                                                     /@Значение='Sender']/Столбец[@Номер=$INN]
                                                     /@Значение"/>
						<xsl:with-param name="send_kpp" 
                                                     select="//Строка[Столбец[@Номер=$PACKETID]
                                                     /@Значение=Столбец[@Номер=$PACKETID]/@Значение]
                                                     [Столбец[@Номер=$ROWTYPE]
                                                     /@Значение='Party'][Столбец[@Номер=$TYPE]
                                                     /@Значение='Sender']/Столбец[@Номер=$KPP]
                                                     /@Значение"/>
						<xsl:with-param name="dopUid" 
                                                     select="Столбец[@Номер=$PACKETID]/@Значение"/>
					</xsl:call-template>
				</xsl:variable>
				
				<xsl:attribute name="ИмяФайла">
					<xsl:value-of select="concat($ИмяФайла,'.xml')"/>
				</xsl:attribute>

				<xsl:call-template name="Счет">
					<xsl:with-param name="ИдПакет" select="$ИдДок"/>
					<xsl:with-param name="ИмяФайла" select="$ИмяФайла"/>
				</xsl:call-template>
				
			</xsl:if>

		</Вложение>
	</xsl:template>
  
  <!-- Начало блока темплейтов для счета фактуры ######################################-->
  <xsl:template name="СчетФактура">
  <xsl:param name="ИдПакет"/>
  <xsl:param name="ИмяФайла"/>
  <xsl:variable name="ИдДок" select="Столбец[@Номер=$DOCUMENTID]/@Значение"/>
  <Файл>
  	<xsl:attribute name="ИдФайл">
		<xsl:value-of select="$ИмяФайла"/>
	</xsl:attribute>
	
	<xsl:attribute name="ВерсФорм">
        <xsl:text>5.01</xsl:text>
    </xsl:attribute>

	<xsl:call-template name="СвУчДокОбор"/>

	  <Документ>
          <xsl:attribute name="КНД">
            <xsl:value-of select="1115101"/>
          </xsl:attribute>
          <СвСчФакт>
            <xsl:attribute name="НомерСчФ">
              <xsl:value-of select="normalize-space(Столбец[@Номер=$NUMBER]/@Значение)"/>
            </xsl:attribute>
            <xsl:attribute name="ДатаСчФ">
              <xsl:value-of select="normalize-space(Столбец[@Номер=$DATE]/@Значение)"/>
            </xsl:attribute>
            <xsl:attribute name="КодОКВ">
				<xsl:text>643</xsl:text>
			</xsl:attribute>
			
			<!-- Продавец -->
			<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID] 
                             /@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]
                             /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                             /@Значение='Party'][Столбец[@Номер=$TYPE]/@Значение='Seller']" 
                             mode="СчетФактура_ПродавецПокупатель">
				<xsl:with-param name="ТипУчастника" select="'СвПрод'"/>
			</xsl:apply-templates>
			
			<xsl:variable name="ИНН_Продавца">
				<xsl:value-of select="//Строка[Столбец[@Номер=$PACKETID]
                                    /@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]
                                    /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                                    /@Значение='Party'][Столбец[@Номер=$TYPE]
                                    /@Значение='Seller']/Столбец[@Номер=$INN]/@Значение"/>
			</xsl:variable>
			<xsl:variable name="КПП_Продавца">
				<xsl:value-of select="//Строка[Столбец[@Номер=$PACKETID]
                                     /@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]
                                     /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                                     /@Значение='Party'][Столбец[@Номер=$TYPE]
                                     /@Значение='Seller']/Столбец[@Номер=$KPP]/@Значение"/>
			</xsl:variable>
					
			<!-- Грузоотправитель -->
			<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                             /@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]
                             /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                             /@Значение='Party'][Столбец[@Номер=$TYPE]
                             /@Значение='Shipper']" mode="СчетФактура_Грузоотправитель">
				<xsl:with-param name="ИНН_Продавца" select="normalize-space($ИНН_Продавца)"/>
				<xsl:with-param name="КПП_Продавца" select="normalize-space($КПП_Продавца)"/>
			</xsl:apply-templates>
			
			<!-- Грузополучатель -->
			<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                         /@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]
                         /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                         /@Значение='Party'][Столбец[@Номер=$TYPE]
                         /@Значение='Consignee']"
                         mode="СчетФактура_Грузополучатель"/>

			<!-- СвПРД -->
			<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                             /@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]
                             /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                             /@Значение='Base'][Столбец[@Номер=$TYPE]/@Значение='ПРД']" 
                             mode="СчетФактура_ПРД"/>			
			
			<!-- Покупатель -->
			<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                            /@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]
                            /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                            /@Значение='Party'][Столбец[@Номер=$TYPE]/@Значение='Buyer']" 
                        mode="СчетФактура_ПродавецПокупатель">
				<xsl:with-param name="ТипУчастника" select="'СвПокуп'"/>
			</xsl:apply-templates>

			<!-- ИнфПол ТекстИнф -->
			<xsl:call-template name="ИнфПол">
				<xsl:with-param name="ИдДок" select="$ИдДок"/>
				<xsl:with-param name="ИдПакет" select="$ИдПакет"/>
			</xsl:call-template>
			</СвСчФакт>	
			<ТаблСчФакт>
				<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                                      /@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]
                                      /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                                      /@Значение='RowTable']" 
                                     mode="СчетФактура_СведТов">	
					<xsl:with-param name="ИдПакет" select="$ИдПакет"/>
				</xsl:apply-templates>
				<ВсегоОпл>
					<xsl:if test="normalize-space(Столбец[@Номер=$SUM]/@Значение)!=''">
						<xsl:attribute name="СтТовБезНДСВсего">
	             			 <xsl:value-of select="normalize-space(Столбец[@Номер=$SUM]
                                              /@Значение)"/>
	            		</xsl:attribute>
					</xsl:if>
						<xsl:attribute name="СтТовУчНалВсего">
	             			 <xsl:value-of select="normalize-space(Столбец[@Номер=$TOTAL]
                                              /@Значение)"/>
	            		</xsl:attribute>
						<СумНалВсего>
						<xsl:attribute name="СумНДС">
	             			 <xsl:value-of select="normalize-space(Столбец[@Номер=$TAXSUM]
                                              /@Значение)"/>
	            		</xsl:attribute>
						</СумНалВсего>
				</ВсегоОпл>
			</ТаблСчФакт>
			<xsl:call-template name="Подписант"/>
			
	  </Документ>
  </Файл>
  </xsl:template>

  <xsl:template match="Строка" mode="СчетФактура_ПродавецПокупатель">
  	<xsl:param name="ТипУчастника"/>
		<xsl:element name="{$ТипУчастника}">
	       <xsl:apply-templates select="." mode="ИдСв"/>
		   <xsl:apply-templates select="." mode="Адрес"/>
		</xsl:element>
  </xsl:template>

  <xsl:template match="Строка" mode="СчетФактура_Грузоотправитель">
  <xsl:param name="ИНН_Продавца"/>
  <xsl:param name="КПП_Продавца"/>
  <xsl:variable name="ИНН" select="normalize-space(Столбец[@Номер=$INN]/@Значение)"/>
  <xsl:variable name="КПП" select="normalize-space(Столбец[@Номер=$KPP]/@Значение)"/>
	<ГрузОт>
		<xsl:choose>
			<xsl:when test="$ИНН=$ИНН_Продавца and $КПП=$КПП_Продавца">
				<ОнЖе>он же</ОнЖе>
			</xsl:when>
		    <xsl:otherwise>
				<ГрузОтпр>
			        <НаимГОП>
						<xsl:choose>
							<xsl:when test="string-length($ИНН)=10">
								<НаимОрг>
							         <xsl:value-of 
                                                                      select="normalize-space(Столбец
                                                                      [@Номер=$NAME]/@Значение)"/>
								</НаимОрг>
							</xsl:when>
							<xsl:otherwise>
								<ФИОИП>
									<xsl:call-template name="ФИО">
								       <xsl:with-param name="input" 
                                                            select="normalize-space
                                                            (Столбец[@Номер=$NAME]/@Значение)"/>
									</xsl:call-template>
								</ФИОИП>
							</xsl:otherwise>
						</xsl:choose>
					</НаимГОП>
					<xsl:apply-templates select="." mode="Адрес"/>
				</ГрузОтпр>
			</xsl:otherwise>
		</xsl:choose>
	</ГрузОт>
  </xsl:template>
	
  <xsl:template match="Строка" mode="СчетФактура_Грузополучатель">
  <xsl:variable name="ИНН" select="normalize-space(Столбец[@Номер=$INN]/@Значение)"/>
	<ГрузПолуч>
        <НаимГОП>
			<xsl:choose>
				<xsl:when test="string-length($ИНН)=10">
					<xsl:attribute name="НаимОрг">
						<xsl:value-of select="normalize-space(Столбец[@Номер=$NAME]
                                                     /@Значение)"/>
					</xsl:attribute>
				</xsl:when>
				<xsl:otherwise>
					<ФИОИП>
						<xsl:call-template name="ФИО">
							<xsl:with-param name="input" select="normalize-space
                                                            (Столбец[@Номер=$NAME]/@Значение)"/>
						</xsl:call-template>
					</ФИОИП>
				</xsl:otherwise>
			</xsl:choose>
		</НаимГОП>
			<xsl:apply-templates select="." mode="Адрес"/>
	</ГрузПолуч>
  </xsl:template>
		
  <xsl:template match="Строка" mode="СчетФактура_ПРД">
	<СвПРД>
		<xsl:attribute name="НомерПРД">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$NUMBER]/@Значение)"/>
		</xsl:attribute>
		<xsl:attribute name="ДатаПРД">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$DATE]/@Значение)"/>
		</xsl:attribute>
	</СвПРД>
  </xsl:template>
  
  <xsl:template match="Строка" mode="СчетФактура_СведТов">
  <xsl:param name="ИдПакет"/>
  	<xsl:variable name="INDEX" select="Столбец[@Номер=$ROWINDEX]/@Значение"/>
	<СведТов>
		<xsl:attribute name="НомСтр">
			<xsl:value-of select="position()"/>
		</xsl:attribute>
		<xsl:attribute name="НаимТов">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$NAME]/@Значение)"/>
		</xsl:attribute>
		
		<xsl:if test="normalize-space(Столбец[@Номер=$UNITCODE]/@Значение)!=''">
			<xsl:attribute name="ОКЕИ_Тов">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$UNITCODE]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:if test="normalize-space(Столбец[@Номер=$AMOUNT]/@Значение)!=''">
			<xsl:attribute name="КолТов">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$AMOUNT]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:if test="normalize-space(Столбец[@Номер=$PRICE]/@Значение)!=''">
			<xsl:attribute name="ЦенаТов">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$PRICE]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:if test="normalize-space(Столбец[@Номер=$SUM]/@Значение)!=''">
			<xsl:attribute name="СтТовБезНДС">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$SUM]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>
		
		<xsl:attribute name="СтТовУчНал">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$TOTAL]/@Значение)"/>
		</xsl:attribute>

		<xsl:variable name="Ид_Товара">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$ID]/@Значение)"/>
		</xsl:variable>
		
		<xsl:if test="count(//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет]
                     [Столбец[@Номер=$DOCUMENTID]
                     /@Значение=Столбец[@Номер=$DOCUMENTID]/@Значение][Столбец[@Номер=$ROWTYPE]
                     /@Значение='Parameter']
                     [Столбец[@Номер=$ROWINDEX]/@Значение=$INDEX])!=0 or $Ид_Товара!=''">
			<xsl:attribute name="ИнфПолСтр">
				<xsl:text><Данные></xsl:text>
					<xsl:if test="$Ид_Товара!=''">
						<xsl:text><Реквизит Имя="ИД"</xsl:text>
						<xsl:text> Значение="</xsl:text>
							<xsl:value-of select="$Ид_Товара"/>
						<xsl:text>"/></xsl:text>
					</xsl:if>					

					<xsl:for-each select="//Строка[Столбец[@Номер=$PACKETID]
                                             /@Значение=$ИдПакет]
                                             [Столбец[@Номер=$DOCUMENTID]
                                             /@Значение=Столбец[@Номер=$DOCUMENTID]/@Значение]
                                             [Столбец[@Номер=$ROWTYPE]/@Значение='Parameter']
                                             [Столбец[@Номер=$ROWINDEX]/@Значение=$INDEX]">
						<xsl:text><Реквизит Имя="</xsl:text>
							<xsl:value-of select="Столбец[@Номер=$NAME]/@Значение"/>
						<xsl:text>" Значение="</xsl:text>
							<xsl:value-of select="Столбец[@Номер=$VALUE]/@Значение"/>
						<xsl:text>"/></xsl:text>
					</xsl:for-each>
				<xsl:text></Данные></xsl:text>
			</xsl:attribute>
		</xsl:if>

		<Акциз>
			<xsl:attribute name="СумАкциз">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$EXCISESUM]/@Значение)"/>
			</xsl:attribute>
		</Акциз>

		<НалСт>
			<xsl:attribute name="НалСтВел">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$TAXRATE]/@Значение)"/>
			</xsl:attribute>
			<xsl:attribute name="НалСтТип">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$TAXTYPE]/@Значение)"/>
			</xsl:attribute>
		</НалСт>
		
		<СумНал>
			<xsl:attribute name="СумНДС">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение)"/>
			</xsl:attribute>
		</СумНал>

	</СведТов>
  </xsl:template>	
  <!-- Конец блока темплейтов для счета фактуры ######################################-->
  
  <!-- Начало блока общих темплейтов для документов ######################################-->
  <xsl:template name="СвУчДокОбор">
  	<СвУчДокОбор>
      <xsl:attribute name="ИдОтпр"/>
      <xsl:attribute name="ИдПок"/>
      <СвОЭДОтпр>
        <xsl:attribute name="НаимОрг">ООО 'Компания Тензор'</xsl:attribute>
        <xsl:attribute name="ИННЮЛ">7605016030</xsl:attribute>
        <xsl:attribute name="ИдЭДО">2ВЕ</xsl:attribute>
      </СвОЭДОтпр>
    </СвУчДокОбор>
  </xsl:template>
    
  <xsl:template match="Строка" mode="ИдСв">
   <xsl:param name="ТипУчастника"/>
   <xsl:variable name="ИНН" select="normalize-space(Столбец[@Номер=$INN]/@Значение)"/>
   <xsl:if test="normalize-space(Столбец[@Номер=$NAME]/@Значение)!='' or $ИНН!=''">
   <ИдСв>
			<xsl:choose>
				<xsl:when test="string-length($ИНН)=10">
            		<СвЮЛ>
						<xsl:if test="normalize-space(Столбец[@Номер=$NAME]
                                                     /@Значение)!=''">
							<xsl:attribute name="НаимОрг">
								<xsl:value-of 
                                                          select="normalize-space(Столбец[@Номер=$NAME]
                                                           /@Значение)"/>
							</xsl:attribute>
						</xsl:if>

						<xsl:if test="$ИНН!=''">
							<xsl:attribute name="ИННЮЛ">
	                    		<xsl:value-of select="$ИНН"/>
			                </xsl:attribute>
						</xsl:if>

						<xsl:if test="normalize-space(Столбец[@Номер=$KPP]
                                                    /@Значение)!=''">
	         		        <xsl:attribute name="КПП">
	                		    <xsl:value-of select="normalize-space(Столбец[@Номер=$KPP]
                                                     /@Значение)"/>
	                  		</xsl:attribute>
						</xsl:if>
					</СвЮЛ>
					<xsl:if test="$ТипУчастника='Исполнитель'">
						<СвФЛ>
							<ФИОИП>
								<xsl:attribute name="Фамилия">
									<xsl:text>---</xsl:text>
								</xsl:attribute>
								<xsl:attribute name="Имя">
									<xsl:text>---</xsl:text>
								</xsl:attribute>
							</ФИОИП>
						</СвФЛ>
					</xsl:if>
				</xsl:when>
				<xsl:otherwise>
					<xsl:if test="$ТипУчастника='Исполнитель'">
						<СвЮЛ>
							<xsl:attribute name="НаимОрг">
								<xsl:text>---</xsl:text>
							</xsl:attribute>
						</СвЮЛ>
					</xsl:if>
					<СвФЛ>
						<xsl:if test="$ИНН!=''">
							<xsl:attribute name="ИННФЛ">
                    			<xsl:value-of select="$ИНН"/>
		                	</xsl:attribute>
						</xsl:if>
						<ФИОИП>
							<xsl:call-template name="ФИО">
								<xsl:with-param name="input" 
                                                                     select="normalize-space
                                                                     (Столбец[@Номер=$NAME]/@Значение)"/>
							</xsl:call-template>
						</ФИОИП>
					</СвФЛ>
				</xsl:otherwise>
			</xsl:choose>
		</ИдСв>
	</xsl:if>
  </xsl:template>	 	

  <xsl:template match="Строка" mode="Адрес">
  <xsl:if test="normalize-space(Столбец[@Номер=$ADDRESS]/@Значение)!=''">
	<Адрес>
    	<АдрИно>
          <xsl:attribute name="КодСтр">
		  	<xsl:text>643</xsl:text>
		  </xsl:attribute>

          <xsl:attribute name="АдрТекст" >
            <xsl:value-of select="normalize-space(Столбец[@Номер=$ADDRESS]/@Значение)" />
          </xsl:attribute>
        </АдрИно>
    </Адрес>
  </xsl:if>
  </xsl:template>	  

  <xsl:template match="Строка" mode="Контакт">
  	<xsl:if test="normalize-space(Столбец[@Номер=$PHONE]/@Значение)!=''">
		<Контакт>
			<xsl:attribute name="Тлф">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$PHONE]
                                    /@Значение)"/>
			</xsl:attribute>
			<!--<xsl:attribute name="Факс">
				<xsl:text>dummy</xsl:text>
			</xsl:attribute>-->
		</Контакт>
	</xsl:if>
  </xsl:template>	
  	
  <xsl:template match="Строка" mode="БанкРекв">
   <xsl:variable name="НомерСчета" select="normalize-space(Столбец[@Номер=$BANKACC]
       /@Значение)"/>
   <xsl:variable name="НаимБанк" select="normalize-space(Столбец[@Номер=$BANKNAME]
       /@Значение)"/>
   <xsl:variable name="БИК" select="normalize-space(Столбец[@Номер=$BANKID]/@Значение)"/>
   <!--<xsl:variable name="КоррСч" select="normalize-space(Столбец[@Номер=$BANKCORACC]
      /@Значение)"/>-->
   <xsl:if test="$НомерСчета!='' or $НаимБанк!='' or $БИК!=''">
   	<БанкРекв>
		<xsl:if test="$НомерСчета!=''">
			<xsl:attribute name="НомерСчета">
				<xsl:value-of select="$НомерСчета"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="$НаимБанк!='' or $БИК!=''">
			<СвБанк>
				<xsl:if test="$НаимБанк!=''">
					<xsl:attribute name="НаимБанк">
						<xsl:value-of select="$НаимБанк"/>
					</xsl:attribute>
				</xsl:if>
				<xsl:if test="$БИК!=''">
					<xsl:attribute name="БИК">
						<xsl:value-of select="$БИК"/>
					</xsl:attribute>
				</xsl:if>
			</СвБанк>
		</xsl:if>
	</БанкРекв>
   </xsl:if>
  </xsl:template>

  <xsl:template name="ФИО">
  	<xsl:param name="input"/>
	
	<xsl:variable name="UpperName">
		<xsl:call-template name="uppercase">
			<xsl:with-param name="input" select="$input"/>
		</xsl:call-template>
    </xsl:variable>

	<xsl:variable name="NameWithoutPrefix">
		<xsl:choose>
			<xsl:when test="starts-with($UpperName,'ИП"')">
			   <xsl:value-of select="normalize-space(substring($UpperName,3))"/>
			</xsl:when>
			<xsl:when test="starts-with($UpperName,'ИП ')">
			   <xsl:value-of select="normalize-space(substring($UpperName,4))"/>
			</xsl:when>
			<xsl:when test="starts-with($UpperName,'ЧП ')">
			   <xsl:value-of select="normalize-space(substring($UpperName,4))"/>
			</xsl:when>
			<xsl:when test="starts-with($UpperName,'ПБОЮЛ ')">
			   <xsl:value-of select="normalize-space(substring($UpperName,7))"/>
			</xsl:when>
			<xsl:when test="starts-with($UpperName,'И.П. ')">
		           <xsl:value-of select="normalize-space(substring($UpperName,6))"/>
			</xsl:when>
			<xsl:when test="starts-with($UpperName,'И П ')">
			   <xsl:value-of select="normalize-space(substring($UpperName,5))"/>
			</xsl:when>
			<xsl:when test="starts-with($UpperName,'ИНД.ПРЕД.')">
			   <xsl:value-of select="normalize-space(substring($UpperName,10))"/>
			</xsl:when>
			<xsl:when test="starts-with($UpperName,'ИНДИВИДУАЛЬНЫЙ ПРЕДПРИНИМАТЕЛЬ ')">
			   <xsl:value-of select="normalize-space(substring($UpperName,32))"/>
			</xsl:when>
			<xsl:when test="starts-with($UpperName,'ИП.')">
			   <xsl:value-of select="normalize-space(substring($UpperName,4))"/>
			</xsl:when>
			<xsl:when test="starts-with($UpperName,'ЧАСТНЫЙ ПРЕДПРИНИМАТЕЛЬ ')">
			   <xsl:value-of select="normalize-space(substring($UpperName,25))"/>
			</xsl:when>
			<xsl:when test="starts-with($UpperName,'ПРЕДПРИНИМАТЕЛЬ ')">
			   <xsl:value-of select="normalize-space(substring($UpperName,16))"/>
			</xsl:when>
			<xsl:otherwise>
			   <xsl:value-of select="$UpperName"/>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:variable>
	<xsl:variable name="SurName">
		<xsl:if test="contains($NameWithoutPrefix,' ')">
			<xsl:value-of select="substring-before($NameWithoutPrefix,' ')"/>
		</xsl:if>
		<xsl:if test="not(contains($NameWithoutPrefix,' '))">
			<xsl:value-of select="$NameWithoutPrefix"/>
		</xsl:if>
	</xsl:variable>	
	<xsl:variable name="NameWithoutSurName">
		<xsl:value-of select="substring-after($NameWithoutPrefix,' ')"/>
	</xsl:variable>
	<xsl:variable name="Name_">
		<xsl:if test="contains($NameWithoutSurName,' ')">
			<xsl:value-of select="substring-before($NameWithoutSurName,' ')"/>
		</xsl:if>
		<xsl:if test="not(contains($NameWithoutSurName,' '))">
			<xsl:value-of select="$NameWithoutSurName"/>
		</xsl:if>
	</xsl:variable>
	<xsl:variable name="FatherName">
		<xsl:if test="contains($NameWithoutSurName,' ')">
			<xsl:value-of select="substring(substring-after
                            ($NameWithoutSurName,' '),1,60)"/>
		</xsl:if>
	</xsl:variable>

	<xsl:attribute name="Фамилия">
		<xsl:value-of select="$SurName"/>
	</xsl:attribute>
	<xsl:attribute name="Имя">
		<xsl:value-of select="$Name_"/>
	</xsl:attribute>
	<xsl:if test="$FatherName !=''">
		<xsl:attribute name="Отчество">
			<xsl:value-of select="$FatherName"/>
		</xsl:attribute>
	</xsl:if>
  </xsl:template>	
  
  <xsl:template name="Подписант">
  	<Подписант>
		<ЮЛ ИННЮЛ="" Должн="">
			<ФИО Фамилия="" Имя=""/>
		</ЮЛ>
	</Подписант>
  </xsl:template>
  
  <xsl:template name="ИнфПол">
  <xsl:param name="ИдДок"/>
  <xsl:param name="ИдПакет"/>
  <xsl:param name="ДопИнф"/>
  <xsl:if test="count(//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет]
       [Столбец[@Номер=$DOCUMENTID]
       /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter']
       [Столбец[@Номер=$ROWINDEX]/@Значение=''])
       !=0 or $ДопИнф!=''">
	<ИнфПол>
		<xsl:attribute name="ТекстИнф">
			<xsl:text><Данные></xsl:text>
				<xsl:for-each select="//Строка[Столбец[@Номер=$PACKETID]
                                     /@Значение=$ИдПакет]
                                     [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок]
                                     [Столбец[@Номер=$ROWTYPE]
                                     /@Значение='Parameter'][Столбец[@Номер=$ROWINDEX]
                                     /@Значение='']">
					<xsl:text><Реквизит Имя="</xsl:text>
						<xsl:value-of select="Столбец[@Номер=$NAME]
                                                    /@Значение"/>
					<xsl:text>" Значение="</xsl:text>
						<xsl:value-of select="Столбец[@Номер=$VALUE]  
                                                    /@Значение"/>
					<xsl:text>"/></xsl:text>
				</xsl:for-each>
			<xsl:value-of select="$ДопИнф"/>
			<xsl:text></Данные></xsl:text>
		</xsl:attribute>
	</ИнфПол>
  </xsl:if>
  </xsl:template>  

  <!-- Конец блока общих темплейтов для документов ######################################-->
  
  
  <!-- Начало блока темплейтов для накладной ######################################-->
  <xsl:template name="ТоварнаяНакладная">
  <xsl:param name="ИдПакет"/>
  <xsl:param name="ИмяФайла"/>
  <xsl:variable name="ИдДок" select="Столбец[@Номер=$DOCUMENTID]/@Значение"/>
  <Файл>
  	<xsl:attribute name="ИдФайл">
		<xsl:value-of select="$ИмяФайла"/>
	</xsl:attribute>
	
	<xsl:attribute name="ВерсФорм">
        <xsl:text>5.01</xsl:text>
    </xsl:attribute>

	<xsl:call-template name="СвУчДокОбор"/>

	  <Документ>
          <xsl:attribute name="КНД">
            <xsl:value-of select="1175004"/>
          </xsl:attribute>
		  <xsl:attribute name="ДатаДок">
            <xsl:value-of select="normalize-space(Столбец[@Номер=$DATE]/@Значение)"/>
          </xsl:attribute>
		  <xsl:attribute name="ВремяДок">
            <xsl:text>00.00.00</xsl:text>
          </xsl:attribute>
		  <СвТНО>
		  	<xsl:attribute name="НаимПервДок">
            	<xsl:text>Товарная накладная</xsl:text>
          	</xsl:attribute>
			<xsl:attribute name="ОКУДПервДок">
            	<xsl:text>0330212</xsl:text>
          	</xsl:attribute>
			<xsl:attribute name="НомФорм">
            	<xsl:text>ТОРГ-12</xsl:text>
          	</xsl:attribute>
			
			<!-- Грузоотправитель -->
			<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                         /@Значение=$ИдПакет]
                         [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                         /@Значение='Party']
                         [Столбец[@Номер=$TYPE]/@Значение='Shipper']" 
                         mode="Накладная_Грузоотправитель"/>

			<!-- Грузополучатель -->
			<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                        /@Значение=$ИдПакет]
                        [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                        /@Значение='Party']
                        [Столбец[@Номер=$TYPE]/@Значение='Consignee']" mode="Участник">
				<xsl:with-param name="ТипУчастника" select="'ГрузПолуч'"/>
			</xsl:apply-templates>

			<!-- Поставщик -->
			<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                        /@Значение=$ИдПакет]
                        [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                        /@Значение='Party']
                        [Столбец[@Номер=$TYPE]/@Значение='Seller']" mode="Участник">
				<xsl:with-param name="ТипУчастника" select="'Поставщик'"/>
			</xsl:apply-templates>

			<!-- Плательщик -->
			<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                        /@Значение=$ИдПакет]
                        [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                        /@Значение='Party']
                        [Столбец[@Номер=$TYPE]/@Значение='Buyer']" mode="Участник">
				<xsl:with-param name="ТипУчастника" select="'Плательщик'"/>
			</xsl:apply-templates>
		  
		  	<!-- Основание -->
			<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                        /@Значение=$ИдПакет]
                        [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                        /@Значение='Base']" 
                        mode="Накладная_Основание"/>
			
			<!-- д.б. узел ТранНакл-->

			<!-- <ВидОперации>dummy<ВидОперации> -->

			<ТН>
				<xsl:if test="normalize-space(Столбец[@Номер=$NUMBER]/@Значение)!=''">
					<xsl:attribute name="НомТН">
						<xsl:value-of 
                                                    select="normalize-space(Столбец[@Номер=$NUMBER]
                                                    /@Значение)"/>
					</xsl:attribute>
				</xsl:if>
				<xsl:attribute name="ДатаТН">
					<xsl:value-of select="normalize-space(Столбец[@Номер=$DATE]
                                            /@Значение)"/>
				</xsl:attribute>
				<Таблица>
					<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID] 
                                             /@Значение=$ИдПакет]
                                             [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок]
                                             [Столбец[@Номер=$ROWTYPE]/@Значение='RowTable']" 
                                             mode="Накладная_СвТов">	
						<xsl:with-param name="ИдПакет" select="$ИдПакет"/>
					</xsl:apply-templates>
					
					<xsl:variable name="КолМестВс" 
                                             select="normalize-space(Столбец[@Номер=$PACK]/@Значение)"/>
					<xsl:variable name="БруттоВс" 
                                             select="normalize-space(Столбец[@Номер=$GROSSWEIGHT]/@Значение)"/>
					<xsl:variable name="НеттоВс" 
                                             select="normalize-space(Столбец[@Номер=$NETWEIGHT]/@Значение)"/>
					<xsl:variable name="СумБезНДСВс" 
                                             select="normalize-space(Столбец[@Номер=$SUM]/@Значение)"/>
					<xsl:variable name="СумНДСВс" 
                                             select="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение)"/>
					<xsl:variable name="СумУчНДСВс" 
                                             select="normalize-space(Столбец[@Номер=$TOTAL]/@Значение)"/>
					
					<xsl:if test="$КолМестВс!='' or $БруттоВс!='' or $НеттоВс!=''
                                             or $СумБезНДСВс!='' or $СумНДСВс!=''
                                             or $СумУчНДСВс!=''">
						<ВсегоНакл>
							<xsl:if test="$КолМестВс!=''">
								<xsl:attribute name="КолМестВс">
									<xsl:value-of select="$КолМестВс"/>
								</xsl:attribute>
							</xsl:if>
							<xsl:if test="$БруттоВс!=''">
								<xsl:attribute name="БруттоВс">
									<xsl:value-of select="$БруттоВс"/>
								</xsl:attribute>
							</xsl:if>
							<xsl:if test="$НеттоВс!=''">
								<xsl:attribute name="НеттоВс">
									<xsl:value-of select="$НеттоВс"/>
								</xsl:attribute>
							</xsl:if>
							<xsl:if test="$СумБезНДСВс!=''">
								<xsl:attribute name="СумБезНДСВс">
									<xsl:value-of select="$СумБезНДСВс"/>
								</xsl:attribute>
							</xsl:if>
							<xsl:if test="$СумНДСВс!=''">
								<xsl:attribute name="СумНДСВс">
									<xsl:value-of select="$СумНДСВс"/>
								</xsl:attribute>
							</xsl:if>
							<xsl:if test="$СумУчНДСВс!=''">
								<xsl:attribute name="СумУчНДСВс">
									<xsl:value-of select="$СумУчНДСВс"/>
								</xsl:attribute>
							</xsl:if>
						</ВсегоНакл>
					</xsl:if>
			
				</Таблица>

				<!-- д.б. блок ТНОбщ-->
			</ТН>
				<!-- д.б. блок ОтпускГруз-->

				<!-- ИнфПол ТекстИнф -->
				<xsl:call-template name="ИнфПол">
					<xsl:with-param name="ИдДок" select="$ИдДок"/>
					<xsl:with-param name="ИдПакет" select="$ИдПакет"/>
				</xsl:call-template>
		  </СвТНО>
				<xsl:call-template name="Подписант"/>
	  </Документ>
	</Файл>
  </xsl:template>
  
  <xsl:template match="Строка" mode="Накладная_Грузоотправитель">
  	<ГрузОт>
		<!--<xsl:attribute name="ОКДП">
           	<xsl:text></xsl:text>
        </xsl:attribute>-->
		<xsl:apply-templates select="." mode="Участник">
			<xsl:with-param name="ТипУчастника" select="'ГрузОтпр'"/>
		</xsl:apply-templates>

	</ГрузОт>
  </xsl:template>

  <xsl:template match="Строка" mode="Участник">
  <xsl:param name="ТипУчастника"/>
	  <xsl:element name="{$ТипУчастника}">
	  	<!--<xsl:attribute name="ОКПО">
			<xsl:text>dummy</xsl:text>
		</xsl:attribute>-->
		<xsl:apply-templates select="." mode="ИдСв">
			<xsl:with-param name="ТипУчастника" select="$ТипУчастника"/>
		</xsl:apply-templates>
		<xsl:apply-templates select="." mode="Адрес"/>
		<xsl:apply-templates select="." mode="Контакт"/>
		<xsl:apply-templates select="." mode="БанкРекв"/>
	  </xsl:element>
  </xsl:template>
  
  <xsl:template match="Строка" mode="Накладная_Основание">
  <Основание>
  	<xsl:if test="normalize-space(Столбец[@Номер=$TYPE]/@Значение)!=''">
		<xsl:attribute name="НаимОсн">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$TYPE]/@Значение)"/>
		</xsl:attribute>
	</xsl:if>
	<xsl:if test="normalize-space(Столбец[@Номер=$NUMBER]/@Значение)!=''">
		<xsl:attribute name="НомОсн">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$NUMBER]/@Значение)"/>
		</xsl:attribute>
	</xsl:if>
	<xsl:if test="normalize-space(Столбец[@Номер=$DATE]/@Значение)!=''">
		<xsl:attribute name="ДатаОсн">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$DATE]/@Значение)"/>
		</xsl:attribute>
	</xsl:if>
	<xsl:if test="normalize-space(Столбец[@Номер=$NAME]/@Значение)!=''">
		<xsl:attribute name="ДопСвОсн">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$NAME]/@Значение)"/>
		</xsl:attribute>
	</xsl:if>
  </Основание>
  </xsl:template>	

  <xsl:template match="Строка" mode="Накладная_СвТов">
  <xsl:param name="ИдПакет"/>
  	<xsl:variable name="INDEX" select="Столбец[@Номер=$ROWINDEX]/@Значение"/>
	<СвТов>
		<xsl:attribute name="НомТов">
			<xsl:value-of select="position()"/>
		</xsl:attribute>
		<xsl:attribute name="НаимТов">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$NAME]/@Значение)"/>
		</xsl:attribute>
		
		<!--<xsl:attribute name="ХарактерТов">
			<xsl:text>dummy</xsl:text>
		</xsl:attribute>-->

		<!--<xsl:attribute name="СортТов">
			<xsl:text>dummy</xsl:text>
		</xsl:attribute>-->

		<!--<xsl:attribute name="АртикулТов">
			<xsl:text>dummy</xsl:text>
		</xsl:attribute>-->

		<xsl:if test="normalize-space(Столбец[@Номер=$ID]/@Значение)!=''">
			<xsl:attribute name="КодТов">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$ID]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>
		
		<xsl:attribute name="НаимЕдИзм">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$UNITNAME]/@Значение)"/>
		</xsl:attribute>

		<xsl:if test="normalize-space(Столбец[@Номер=$UNITCODE]/@Значение)!=''">
			<xsl:attribute name="ОКЕИ_Тов">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$UNITCODE]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:if test="normalize-space(Столбец[@Номер=$PACKNAME]/@Значение)!=''">
			<xsl:attribute name="ВидУпак">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$PACKNAME]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:if test="normalize-space(Столбец[@Номер=$PACKAMOUNT]/@Значение)!=''">
			<xsl:attribute name="Место">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$PACKAMOUNT]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:if test="normalize-space(Столбец[@Номер=$PACK]/@Значение)!=''">
			<xsl:attribute name="КолМест">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$PACK]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:if test="normalize-space(Столбец[@Номер=$GROSSWEIGHT]/@Значение)!=''">
			<xsl:attribute name="Брутто">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$GROSSWEIGHT]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:attribute name="Нетто">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$NETWEIGHT]/@Значение)"/>
		</xsl:attribute>
		

		<xsl:if test="normalize-space(Столбец[@Номер=$PRICE]/@Значение)!=''">
			<xsl:attribute name="Цена">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$PRICE]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:if test="normalize-space(Столбец[@Номер=$SUM]/@Значение)!=''">
			<xsl:attribute name="СумБезНДС">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$SUM]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:if test="normalize-space(Столбец[@Номер=$TAXRATE]/@Значение)!=''">
			<xsl:attribute name="СтавкаНДС">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$TAXRATE]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>
		
		<xsl:if test="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение)!=''">
			<xsl:attribute name="СумНДС">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:attribute name="СумУчНДС">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$TOTAL]/@Значение)"/>
		</xsl:attribute>

		<xsl:variable name="Ид_Товара">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$ID]/@Значение)"/>
		</xsl:variable>
	
		<xsl:if test="count(//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет]
                     [Столбец[@Номер=$DOCUMENTID]
                     /@Значение=Столбец[@Номер=$DOCUMENTID]/@Значение][Столбец[@Номер=$ROWTYPE]
                     /@Значение='Parameter']
                     [Столбец[@Номер=$ROWINDEX]/@Значение=$INDEX])!=0 or $Ид_Товара!=''">
			<xsl:attribute name="ИнфПолСтр">
				<xsl:text><Данные></xsl:text>
					<xsl:if test="$Ид_Товара!=''">
						<xsl:text><Реквизит Имя="ИД"</xsl:text>
						<xsl:text> Значение="</xsl:text>
							<xsl:value-of select="$Ид_Товара"/>
						<xsl:text>"/></xsl:text>
					</xsl:if>					

					<xsl:for-each select="//Строка[Столбец[@Номер=$PACKETID]
                                        /@Значение=$ИдПакет]
                                        [Столбец[@Номер=$DOCUMENTID]/@Значение=Столбец[@Номер=$DOCUMENTID]
                                        /@Значение]
                                        [Столбец[@Номер=$ROWTYPE]/@Значение='Parameter']
                                        [Столбец[@Номер=$ROWINDEX]
                                        /@Значение=$INDEX]">
						<xsl:text><Реквизит Имя="</xsl:text>
							<xsl:value-of select="Столбец[@Номер=$NAME]
                                                            /@Значение"/>
						<xsl:text>" Значение="</xsl:text>
							<xsl:value-of select="Столбец[@Номер=$VALUE]
                                                            /@Значение"/>
						<xsl:text>"/></xsl:text>
					</xsl:for-each>
				<xsl:text></Данные></xsl:text>
			</xsl:attribute>
		</xsl:if>

	</СвТов>
  </xsl:template>	
  <!-- Конец блока темплейтов для накладной ######################################-->	

  <!-- Начало блока темплейтов для акта выполненных работ ######################################-->
  <xsl:template name="АктВыполненныхРабот">
  <xsl:param name="ИдПакет"/>
  <xsl:param name="ИмяФайла"/>
  <xsl:variable name="ИдДок" select="Столбец[@Номер=$DOCUMENTID]/@Значение"/>
  <Файл>
  	<xsl:attribute name="ИдФайл">
		<xsl:value-of select="$ИмяФайла"/>
	</xsl:attribute>
	
	<xsl:attribute name="ВерсФорм">
        <xsl:text>5.01</xsl:text>
    </xsl:attribute>

	<xsl:call-template name="СвУчДокОбор"/>
	<Документ>
		<xsl:attribute name="КНД">
			<xsl:text>1175006</xsl:text>
		</xsl:attribute>
		<xsl:attribute name="ДатаДок">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$DATE]/@Значение)"/>
		</xsl:attribute>
		<xsl:attribute name="ВремДок">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$DATE]/@Значение)"/>
		</xsl:attribute>
		<СвАктИ>
			<xsl:attribute name="НаимПервДок">
				<xsl:text>Акт о выполнении работ (оказании услуг)</xsl:text>
			</xsl:attribute>
			<xsl:if test="normalize-space(Столбец[@Номер=$DATE]/@Значение)!=''">
				<xsl:attribute name="НомАкт">
					<xsl:value-of select="normalize-space(Столбец[@Номер=$DATE]
                                            /@Значение)"/>
				</xsl:attribute>
			</xsl:if>
			<xsl:attribute name="ДатаАкт">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$DATE]/@Значение)"/>
			</xsl:attribute>
			<Заголовок>Мы, нижеподписавшиеся, представитель ИСПОЛНИТЕЛЯ, с одной стороны и 
                        представитель ЗАКАЗЧИКА с другой стороны, составили настоящий акт в том, 
                        что ИСПОЛНИТЕЛЬ выполнил, а ЗАКАЗЧИК принял следующие работы (услуги)</Заголовок>
			
			<!-- Исполнитель -->
			<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                        /@Значение=$ИдПакет]
                        [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                        /@Значение='Party']
                        [Столбец[@Номер=$TYPE]/@Значение='Seller']" mode="Участник">
				<xsl:with-param name="ТипУчастника" select="'Исполнитель'"/>
			</xsl:apply-templates>
			<ОписРабот>
				<!--<xsl:attribute name="НачРабот">
					<xsl:text>dummy</xsl:text>
				</xsl:attribute>-->
				<!--<xsl:attribute name="КонРабот">
					<xsl:text>dummy</xsl:text>
				</xsl:attribute>-->
				<xsl:if test="normalize-space(Столбец[@Номер=$SUM]/@Значение)!=''">
					<xsl:attribute name="СумБезНДСИт">
						<xsl:value-of select="normalize-space(Столбец[@Номер=$SUM]
                                                     /@Значение)"/>
					</xsl:attribute>
				</xsl:if>
				<xsl:if test="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение)!=''">
					<xsl:attribute name="СумНДСИт">
						<xsl:value-of 
                                           select="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение)"/>
					</xsl:attribute>
				</xsl:if>
				<xsl:attribute name="СумУчНДСИт">
					<xsl:value-of select="normalize-space(Столбец[@Номер=$TOTAL]
                                           /@Значение)"/>
				</xsl:attribute>
				<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                                          /@Значение=$ИдПакет]
                                     [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок]
                                     [Столбец[@Номер=$ROWTYPE]
                                     /@Значение='RowTable']" mode="Акт_Работа">	
					<xsl:with-param name="ИдПакет" select="$ИдПакет"/>
				</xsl:apply-templates>
			</ОписРабот>

			<!-- д.б. блок Сдал -->

			<xsl:variable name="Заказчик">
			    <xsl:if test="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет]
                                 [Столбец[@Номер=$DOCUMENTID]
                                 /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                 [Столбец[@Номер=$TYPE]
                                 /@Значение='Buyer']/Столбец[@Номер=$NAME]/@Значение!=''">
					<xsl:text><Реквизит Имя="Заказчик" Значение="</xsl:text>
						<xsl:value-of select="//Строка[Столбец[@Номер=$PACKETID]
                                                    /@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]
                                                    /@Значение=$ИдДок]
                                                    [Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                    [Столбец[@Номер=$TYPE]
                                                    /@Значение='Buyer']/Столбец[@Номер=$NAME]/@Значение"/>
					<xsl:text>"/></xsl:text>
				</xsl:if>
				<xsl:if test="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет]
                                                    [Столбец[@Номер=$DOCUMENTID]
                                    /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                                    [Столбец[@Номер=$TYPE]
                                    /@Значение='Buyer']/Столбец[@Номер=$INN]/@Значение!=''">
					<xsl:text><Реквизит Имя="ЗаказчикИНН" Значение="</xsl:text>
						<xsl:value-of select="//Строка[Столбец[@Номер=$PACKETID]
                                                     /@Значение=$ИдПакет]
                                                     [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок]
                                                     [Столбец[@Номер=$ROWTYPE]
                                                     /@Значение='Party'][Столбец[@Номер=$TYPE]
                                                     /@Значение='Buyer']
                                                     /Столбец[@Номер=$INN]/@Значение"/>
					<xsl:text>"/></xsl:text>
				</xsl:if>
				<xsl:if test="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет]
                                     [Столбец[@Номер=$DOCUMENTID]
                                     /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Party']
                                     [Столбец[@Номер=$TYPE]
                                     /@Значение='Buyer']/Столбец[@Номер=$KPP]/@Значение!=''">
					<xsl:text><Реквизит Имя="ЗаказчикКПП" Значение="</xsl:text>
						<xsl:value-of select="//Строка[Столбец[@Номер=$PACKETID]
                                                     /@Значение=$ИдПакет]
                                                     [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок]  
                                                     [Столбец[@Номер=$ROWTYPE]
                                                     /@Значение='Party'][Столбец[@Номер=$TYPE]
                                                     /@Значение='Buyer']
                                                     /Столбец[@Номер=$KPP]/@Значение"/>
					<xsl:text>"/></xsl:text>
				</xsl:if>
				<xsl:if test="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет]
                                    [Столбец[@Номер=$DOCUMENTID]
                                    /@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                                    /@Значение='Party'][Столбец[@Номер=$TYPE]
                                    /@Значение='Buyer']/Столбец[@Номер=$ADDRESS]/@Значение!=''">
					<xsl:text><Реквизит Имя="ЗаказчикАдрес" Значение="</xsl:text>
						<xsl:value-of select="//Строка[Столбец[@Номер=$PACKETID]
                                                    /@Значение=$ИдПакет]
                                                    [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок]
                                                    [Столбец[@Номер=$ROWTYPE]
                                                    /@Значение='Party'][Столбец[@Номер=$TYPE]
                                                    /@Значение='Buyer']
                                                    /Столбец[@Номер=$ADDRESS]/@Значение"/>
					<xsl:text>"/></xsl:text>
				</xsl:if>
			</xsl:variable>

			<!-- ИнфПол ТекстИнф -->
			<xsl:call-template name="ИнфПол">
				<xsl:with-param name="ИдДок" select="$ИдДок"/>
				<xsl:with-param name="ИдПакет" select="$ИдПакет"/>
				<xsl:with-param name="ДопИнф" select="normalize-space($Заказчик)"/>
			</xsl:call-template>
		</СвАктИ>
		<xsl:call-template name="Подписант"/>
	</Документ>
  </Файл>
  </xsl:template>

  <xsl:template match="Строка" mode="Акт_Работа">
  <xsl:param name="ИдПакет"/>
  <xsl:variable name="INDEX" select="Столбец[@Номер=$ROWINDEX]/@Значение"/>
  	<Работа>
		<xsl:attribute name="Номер">
			<xsl:value-of select="position()"/>
		</xsl:attribute>
		
		<xsl:attribute name="НаимЕдИзм">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$UNITNAME]/@Значение)"/>
		</xsl:attribute>
		
		<xsl:if test="normalize-space(Столбец[@Номер=$UNITCODE]/@Значение)!=''">
			<xsl:attribute name="ОКЕИ">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$UNITCODE]
                                     /@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:if test="normalize-space(Столбец[@Номер=$PRICE]/@Значение)!=''">
			<xsl:attribute name="Цена">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$PRICE]
                                    /@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:if test="normalize-space(Столбец[@Номер=$AMOUNT]/@Значение)!=''">
			<xsl:attribute name="Количество">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$AMOUNT]
                                    /@Значение)"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:attribute name="СумБезНДС">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$SUM]/@Значение)"/>
		</xsl:attribute>

		<xsl:if test="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение)!=''">
			<xsl:attribute name="СумНДС">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$TAXSUM]
                                     /@Значение)"/>
			</xsl:attribute>
		</xsl:if>
			<xsl:attribute name="СумУчНДС">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$TOTAL]
                                     /@Значение)"/>
			</xsl:attribute>

			<xsl:variable name="Ид_Товара">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$ID]/@Значение)"/>
		</xsl:variable>
		
		<xsl:if test="count(//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет]
                     [Столбец[@Номер=$DOCUMENTID]
                     /@Значение=normalize-space(Столбец[@Номер=$DOCUMENTID]/@Значение)]
                     [Столбец[@Номер=$ROWTYPE] 
                     /@Значение='Parameter'][Столбец[@Номер=$ROWINDEX]/@Значение=$INDEX])
                     !=0 or $Ид_Товара!=''">
			<xsl:attribute name="ИнфПолСтр">
				<xsl:text><Данные></xsl:text>
					<xsl:if test="$Ид_Товара!=''">
						<xsl:text><Реквизит Имя="ИД"</xsl:text>
						<xsl:text> Значение="</xsl:text>
							<xsl:value-of select="$Ид_Товара"/>
						<xsl:text>"/></xsl:text>
					</xsl:if>					

					<xsl:for-each select="//Строка[Столбец[@Номер=$PACKETID]
                                             /@Значение=$ИдПакет]
                                             [Столбец[@Номер=$DOCUMENTID]
                                             /@Значение=normalize-space(Столбец[@Номер=$DOCUMENTID]
                                             /@Значение)][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter']
                                             [Столбец[@Номер=$ROWINDEX]/@Значение=$INDEX]">
						<xsl:text><Реквизит Имя="</xsl:text>
							<xsl:value-of select="Столбец[@Номер=$NAME]/@Значение"/>
						<xsl:text>" Значение="</xsl:text>
							<xsl:value-of select="Столбец[@Номер=$VALUE]/@Значение"/>
						<xsl:text>"/></xsl:text>
					</xsl:for-each>
				<xsl:text></Данные></xsl:text>
			</xsl:attribute>
		</xsl:if>
		
		<xsl:choose>
			<xsl:when test="normalize-space(Столбец[@Номер=$UNITCODE]/@Значение)!='' 
                            and normalize-space
                            (Столбец[@Номер=$UNITNAME]/@Значение)!='' and normalize-space
                            (Столбец[@Номер=$AMOUNT]/@Значение)!=''">
				<xsl:attribute name="НаимРабот">
					<xsl:value-of select="normalize-space(Столбец[@Номер=$NAME]/@Значение)"/>
				</xsl:attribute>
			</xsl:when>
			<xsl:otherwise>
				<Описание>
					<xsl:value-of select="normalize-space(Столбец[@Номер=$NAME]/@Значение)"/>
				</Описание>
			</xsl:otherwise>
		</xsl:choose>	
			
	</Работа>
  </xsl:template>
  <!-- Конец блока темплейтов для акта выполненных работ ######################################-->
  
  
  <!-- Начало блока темплейтов для счета ######################################-->
  <xsl:template name="Счет">
  <xsl:param name="ИдПакет"/>
  <xsl:param name="ИмяФайла"/>
  <xsl:variable name="ИдДок" select="Столбец[@Номер=$DOCUMENTID]/@Значение"/>
  <Файл>
  	<xsl:attribute name="Имя">
		<xsl:value-of select="$ИмяФайла"/>
	</xsl:attribute>
	
	<xsl:attribute name="ВерсияФормата">
        <xsl:text>3.01</xsl:text>
    </xsl:attribute>

	<xsl:attribute name="Формат">
        <xsl:text>ЭДОСч</xsl:text>
    </xsl:attribute>
	<Документ>
		<xsl:if test="normalize-space(Столбец[@Номер=$NAME]/@Значение)!=''">
			<xsl:attribute name="Название">
	        	<xsl:value-of select="normalize-space(Столбец[@Номер=$NAME]/@Значение)"/>
	    	</xsl:attribute>
		</xsl:if>
		<xsl:if test="normalize-space(Столбец[@Номер=$DATE]/@Значение)!=''">
			<xsl:attribute name="Дата">
	        	<xsl:value-of select="normalize-space(Столбец[@Номер=$DATE]/@Значение)"/>
	    	</xsl:attribute>
		</xsl:if>
		<xsl:if test="normalize-space(Столбец[@Номер=$NUMBER]/@Значение)!=''">
			<xsl:attribute name="Номер">
	        	<xsl:value-of select="normalize-space(Столбец[@Номер=$NUMBER]/@Значение)"/>
	    	</xsl:attribute>
		</xsl:if>

		 
		<xsl:for-each select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет]
                    [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                    /@Значение='Parameter'][Столбец[@Номер=$ROWINDEX]/@Значение='']">
			<Параметр>
				<xsl:attribute name="Имя">
					<xsl:value-of select="Столбец[@Номер=$NAME]/@Значение"/>
				</xsl:attribute>
				<xsl:attribute name="Значение">
					<xsl:value-of select="Столбец[@Номер=$VALUE]/@Значение"/>
				</xsl:attribute>
			</Параметр>
		</xsl:for-each>
		 
		
		<!-- Продавец -->
		<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет]
                [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                /@Значение='Party'][Столбец[@Номер=$TYPE]/@Значение='Seller']" mode="Счет_Участник">
			<xsl:with-param name="ТипУчастника" select="'Поставщик'"/>
		</xsl:apply-templates>

		<!-- Покупатель -->
		<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет]
                    [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                    /@Значение='Party'][Столбец[@Номер=$TYPE]/@Значение='Buyer']" mode="Счет_Участник">
			<xsl:with-param name="ТипУчастника" select="'Покупатель'"/>
		</xsl:apply-templates>
		
		<ТаблДок>
			<xsl:variable name="Кол_во" select="normalize-space(Столбец[@Номер=$AMOUNT]/@Значение)"/>
			<xsl:variable name="Сумма" select="normalize-space(Столбец[@Номер=$TOTAL]/@Значение)"/>
			<xsl:variable name="СуммаБезНал" select="normalize-space(Столбец[@Номер=$SUM]
                            /@Значение)"/>
			<xsl:variable name="СуммаНДС" select="normalize-space(Столбец[@Номер=$TAXSUM]
                            /@Значение)"/>
			<xsl:if test="$Кол_во!='' or $Сумма!='' or $СуммаБезНал!='' or $СуммаНДС!=''">
				<ИтогТабл>
					<xsl:if test="$Кол_во!=''">
						<xsl:attribute name="Кол_во">
							<xsl:value-of select="$Кол_во"/>
						</xsl:attribute>
					</xsl:if>
					<xsl:if test="$Сумма!=''">
						<xsl:attribute name="Сумма">
							<xsl:value-of select="$Сумма"/>
						</xsl:attribute>
					</xsl:if>
					<xsl:if test="$СуммаБезНал!=''">
						<xsl:attribute name="СуммаБезНал">
							<xsl:value-of select="$СуммаБезНал"/>
						</xsl:attribute>
					</xsl:if>
					<xsl:if test="$СуммаНДС!=''">
						<НДС>
							<xsl:attribute name="Сумма">
								<xsl:value-of select="$СуммаНДС"/>
							</xsl:attribute>
						</НДС>
					</xsl:if>
						

				</ИтогТабл>
			</xsl:if>
			
			<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]
                            /@Значение=$ИдПакет]
                            [Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]
                            /@Значение='RowTable']" mode="Счет_ТаблДокСтрТабл">	
				<xsl:with-param name="ИдПакет" select="$ИдПакет"/>
			</xsl:apply-templates>
		</ТаблДок>

	</Документ>
  </Файл>
  </xsl:template>

  <xsl:template match="Строка" mode="Счет_Участник">
  	<xsl:param name="ТипУчастника"/>
	<xsl:variable name="ИНН" select="normalize-space(Столбец[@Номер=$INN]/@Значение)"/>
	<xsl:variable name="Название" select="normalize-space(Столбец[@Номер=$NAME]/@Значение)"/>
	<xsl:variable name="ТипЮрЛица">
		<xsl:choose>
			<xsl:when test="string-length($ИНН)=12">
				<xsl:text>СвФЛ</xsl:text>
			</xsl:when>
			<xsl:otherwise>
				<xsl:text>СвЮЛ</xsl:text>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:variable>
	
	<xsl:element name="{$ТипУчастника}">
		<xsl:attribute name="Роль">
			<xsl:value-of select="$ТипУчастника"/>
		</xsl:attribute>
		<xsl:if test="$Название!=''">
			<xsl:attribute name="Название">
				<xsl:value-of select="$Название"/>
			</xsl:attribute>
		</xsl:if>

		<xsl:apply-templates select="." mode="Счет_УчастникАдрес"/>
		<xsl:apply-templates select="." mode="Счет_УчастникБанк"/>
		<xsl:apply-templates select="." mode="Счет_УчастникКонтакт"/>

		<xsl:element name="{$ТипЮрЛица}">
			<xsl:if test="$Название!=''">
				<xsl:attribute name="Название">
					<xsl:value-of select="$Название"/>
				</xsl:attribute>
			</xsl:if>
			<xsl:if test="$ИНН!=''">
				<xsl:attribute name="ИНН">
					<xsl:value-of select="$ИНН"/>
				</xsl:attribute>
			</xsl:if>
			<xsl:if test="normalize-space(Столбец[@Номер=$KPP]/@Значение)!=''">
				<xsl:attribute name="КПП">
					<xsl:value-of select="normalize-space(Столбец[@Номер=$KPP]
                                            /@Значение)"/>
				</xsl:attribute>
			</xsl:if>
	   </xsl:element>		
	
	</xsl:element>
  </xsl:template>

  <xsl:template match="Строка" mode="Счет_УчастникАдрес">
  <xsl:if test="normalize-space(Столбец[@Номер=$ADDRESS]/@Значение)!=''">
	  <Адрес>
	  	<xsl:attribute name="Тип">
			<xsl:text>Юридический</xsl:text>
		</xsl:attribute>
		<xsl:attribute name="АдрТекст">
			<xsl:value-of select="normalize-space(Столбец[@Номер=$ADDRESS]/@Значение)"/>
		</xsl:attribute>
		<АдрИно>
			<xsl:attribute name="КодСтр">
				<xsl:text>643</xsl:text>
			</xsl:attribute>
			<xsl:attribute name="АдрТекст">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$ADDRESS]
                                     /@Значение)"/>
			</xsl:attribute>
		</АдрИно>
	  </Адрес>
  </xsl:if>
  </xsl:template>

  <xsl:template match="Строка" mode="Счет_УчастникБанк">
  <xsl:variable name="НаимБанк" select="normalize-space(Столбец[@Номер=$BANKNAME]/@Значение)"/>
  <xsl:variable name="БИК" select="normalize-space(Столбец[@Номер=$BANKID]/@Значение)"/>
  <xsl:variable name="КСчет" select="normalize-space(Столбец[@Номер=$BANKCORACC]/@Значение)"/>
  <xsl:variable name="РСчет" select="normalize-space(Столбец[@Номер=$BANKACC]/@Значение)"/>
  <xsl:if test="$НаимБанк!='' or $БИК!='' or $КСчет!='' or $РСчет!=''">
  	<БанкРекв>
		<xsl:if test="$НаимБанк!=''">
			<xsl:attribute name="НаимБанк">
				<xsl:value-of select="$НаимБанк"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="$БИК!=''">
			<xsl:attribute name="БИК">
				<xsl:value-of select="$БИК"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="$КСчет!=''">
			<xsl:attribute name="КСчет">
				<xsl:value-of select="$КСчет"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="$РСчет!=''">
			<xsl:attribute name="РСчет">
				<xsl:value-of select="$РСчет"/>
			</xsl:attribute>
		</xsl:if>
		
	</БанкРекв>
  </xsl:if>


  </xsl:template>	
  
  <xsl:template match="Строка" mode="Счет_УчастникКонтакт">
  <xsl:variable name="Телефон" select="normalize-space(Столбец[@Номер=$BANKNAME]/@Значение)"/>
  <xsl:variable name="EMAIL" select="normalize-space(Столбец[@Номер=$BANKID]/@Значение)"/>

  <xsl:if test="$Телефон!='' or $EMAIL!=''">
  	<Контакт>
		<xsl:if test="$Телефон!=''">
			<xsl:attribute name="Телефон">
				<xsl:value-of select="$Телефон"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="$EMAIL!=''">
			<xsl:attribute name="EMAIL">
				<xsl:value-of select="$EMAIL"/>
			</xsl:attribute>
		</xsl:if>
	</Контакт>
  </xsl:if>


  </xsl:template>	
  
  <xsl:template match="Строка" mode="Счет_ТаблДокСтрТабл">
  <xsl:param name="ИдПакет"/>
  <xsl:variable name="INDEX" select="Столбец[@Номер=$ROWINDEX]/@Значение"/>
  	<СтрТабл>
		<xsl:attribute name="ПорНомер">
			<xsl:value-of select="position()"/>
		</xsl:attribute>
		<xsl:if test="normalize-space(Столбец[@Номер=$NAME]/@Значение)!=''">
			<xsl:attribute name="Название">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$NAME]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="normalize-space(Столбец[@Номер=$ID]/@Значение)!=''">
			<xsl:attribute name="Код">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$ID]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="normalize-space(Столбец[@Номер=$ID]/@Значение)!=''">
			<xsl:attribute name="Идентификатор">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$ID]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="normalize-space(Столбец[@Номер=$PRICE]/@Значение)!=''">
			<xsl:attribute name="Цена">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$PRICE]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="normalize-space(Столбец[@Номер=$AMOUNT]/@Значение)!=''">
			<xsl:attribute name="Кол_во">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$AMOUNT]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="normalize-space(Столбец[@Номер=$UNITNAME]/@Значение)!=''">
			<xsl:attribute name="ЕдИзм">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$UNITNAME]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="normalize-space(Столбец[@Номер=$UNITCODE]/@Значение)!=''">
			<xsl:attribute name="ОКЕИ">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$UNITCODE]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="normalize-space(Столбец[@Номер=$TOTAL]/@Значение)!=''">
			<xsl:attribute name="Сумма">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$TOTAL]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="normalize-space(Столбец[@Номер=$SUM]/@Значение)!=''">
			<xsl:attribute name="СуммаБезНал">
				<xsl:value-of select="normalize-space(Столбец[@Номер=$SUM]/@Значение)"/>
			</xsl:attribute>
		</xsl:if>
		<xsl:if test="normalize-space(Столбец[@Номер=$EXCISESUM]/@Значение)!=''">
			<Акциз>
				<xsl:attribute name="Сумма">
					<xsl:value-of select="normalize-space(Столбец[@Номер=$EXCISESUM]
                                            /@Значение)"/>
				</xsl:attribute>
			</Акциз>
		</xsl:if>
		<xsl:variable name="СуммаНДС" select="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение)"/>
		<xsl:variable name="ТипСтавкиНДС" select="normalize-space(Столбец[@Номер=$TAXTYPE]/@Значение)"/>
		<xsl:variable name="СтавкаНДС" select="normalize-space(Столбец[@Номер=$TAXRATE]/@Значение)"/>
		<xsl:if test="$СуммаНДС!='' or $ТипСтавкиНДС!='' or $СтавкаНДС!=''">
			<НДС>
				<xsl:if test="$СуммаНДС!=''">
					<xsl:attribute name="Сумма">
						<xsl:value-of select="$СуммаНДС"/>
					</xsl:attribute>
				</xsl:if>
				<xsl:if test="$ТипСтавкиНДС!=''">
					<xsl:attribute name="ТипСтавки">
						<xsl:value-of select="$ТипСтавкиНДС"/>
					</xsl:attribute>
				</xsl:if>
				<xsl:if test="$СтавкаНДС!=''">
					<xsl:attribute name="Ставка">
						<xsl:value-of select="$СтавкаНДС"/>
					</xsl:attribute>
				</xsl:if>
			</НДС>
		</xsl:if>
	
		<xsl:for-each select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет]
                     [Столбец[@Номер=$DOCUMENTID]
                    /@Значение=Столбец[@Номер=$DOCUMENTID]/@Значение][Столбец[@Номер=$ROWTYPE]
                    /@Значение='Parameter']
                    [Столбец[@Номер=$ROWINDEX]/@Значение=$INDEX]">
			<Параметр>
				<xsl:attribute name="Имя">
					<xsl:value-of select="Столбец[@Номер=$NAME]/@Значение"/>
				</xsl:attribute>
				<xsl:attribute name="Значение">
					<xsl:value-of select="Столбец[@Номер=$VALUE]/@Значение"/>
				</xsl:attribute>
			</Параметр>
		</xsl:for-each>
		
	</СтрТабл>
  </xsl:template>
  
  <!-- Конец блока темплейтов для счета ######################################-->

  <!-- Начало блока служебных темплейтов ######################################-->
  <xsl:template name="uppercase">
    <xsl:param name="input"/>
    <xsl:value-of select="translate($input, 'йцукенгшщзхъфывапролджэячсмитьбю', 
          'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ')"/>
  </xsl:template>

  <!--Формирование имени файла для всех типов документов******************************-->
	<xsl:template name="create_filename">
		<xsl:param name="param"/>
		<xsl:param name="file_type"/>
		<xsl:param name="send_inn"/>
		<xsl:param name="send_kpp"/>
		<xsl:param name="doc_date"/>
		<xsl:param name="kpppoluch"/>
		<xsl:param name="innpoluch"/>
		<xsl:param name="dopUid"/>

		<xsl:variable name="uid" select="generate-id()"/>
		<xsl:variable name="dopUid_" select="translate($dopUid,'\/:*?>|','-------')"/>		

		<xsl:value-of select="$file_type"/>_<xsl:value-of select="$innpoluch"/>
                <xsl:value-of select="$kpppoluch"/>
                     _<xsl:value-of select="$send_inn"/><xsl:value-of select="$send_kpp"/>
                     _<xsl:value-of select="translate($doc_date,'.','')"/>
                     _<xsl:value-of select="$uid"/><xsl:value-of select="$dopUid_"/>
		<xsl:if test="$param = 1">
			<xsl:text>.xml</xsl:text>
		</xsl:if>
	</xsl:template>

	<xsl:template name="outValue">
    <xsl:param name="value"/>
    <!--десятичный формат - количество нулей-->
    <xsl:param name="decimalFormat">00</xsl:param>

    <xsl:choose>
      <xsl:when test="number($value)">
        <xsl:value-of select="format-number($value,concat('# ##0.',$decimalFormat),'dkk')"/>
        <!--<xsl:call-template name="format-number">
          <xsl:with-param name="value" select="$value"/>
        </xsl:call-template>-->
      </xsl:when>
      <xsl:otherwise>
	  <xsl:text>0.00</xsl:text>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  <!-- Конец блока служебных темплейтов ######################################-->
</xsl:stylesheet>
0
0
Оставьте свой отзыв:
ОТПРАВИТЬ