ПРИМЕР XSLT-ПРЕОБРАЗОВАНИЯ ИЗ NATIVE.XML В ПРОМЕЖУТОЧНЫЙ XML

Пример xslt-преобразования из native.XML в промежуточный xml

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

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

<?xml version="1.0" encoding="utf-8"?>
<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="COUNTTD">
		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*[name()=$attr_name]='COUNTTD']/@Номер"/>
	</xsl:variable>

	<xsl:variable name="COUNTRYCODE">
		<xsl:value-of select="//Строка[@Номер='1']/Столбец[@*[name()=$attr_name]='COUNTRYCODE']/@Номер"/>
	</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']" 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="Столбец[@Номер='5']/@Значение"/>
				</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.02</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:if test="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter'][Столбец[@Номер=$NAME]/@Значение!=''][Столбец[@Номер=$VALUE]/@Значение!='']">
						<ИнфПол>
							<xsl:for-each select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter'][Столбец[@Номер=$NAME]/@Значение!=''][Столбец[@Номер=$VALUE]/@Значение!='']">

								<ТекстИнф>
									<xsl:attribute name="Идентиф">
										<xsl:value-of select="Столбец[@Номер=$NAME]/@Значение"/>
									</xsl:attribute>
									<xsl:attribute name="Значен">
										<xsl:value-of select="Столбец[@Номер=$VALUE]/@Значение"/>
									</xsl:attribute>
								</ТекстИнф>
							</xsl:for-each>
						</ИнфПол>
					</xsl:if>
				</СвСчФакт>
				<ТаблСчФакт>
					<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:choose>
								<xsl:when test="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение) != '' and normalize-space(Столбец[@Номер=$TAXSUM]/@Значение) != '0' and normalize-space(Столбец[@Номер=$TAXSUM]/@Значение) != '0.00'">
									<СумНДС>
										<xsl:value-of select="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение)"/>
									</СумНДС>
								</xsl:when>
								<xsl:otherwise>
									<БезНДС>
										<xsl:value-of select="'без НДС'"/>
									</БезНДС>
								</xsl:otherwise>
							</xsl:choose>
						</СумНалВсего>
					</ВсегоОпл>
				</ТаблСчФакт>
				<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: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: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(Столбец[@Номер=$TAXRATE]/@Значение)"/>
			</xsl:attribute>



			<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:choose>
					<xsl:when test="normalize-space(Столбец[@Номер=$EXCISESUM]/@Значение) != 'без акциза'">
						<СумАкциз>
							<xsl:value-of select="normalize-space(Столбец[@Номер=$EXCISESUM]/@Значение)"/>
						</СумАкциз>
					</xsl:when>
					<xsl:otherwise>
						<БезАкциз>
							<xsl:value-of select="'без акциза'"/>
						</БезАкциз>
					</xsl:otherwise>
				</xsl:choose>
			</Акциз>



			<СумНал>
				<xsl:choose>
					<xsl:when test="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение) != '' and normalize-space(Столбец[@Номер=$TAXSUM]/@Значение) != '0' and normalize-space(Столбец[@Номер=$TAXSUM]/@Значение) != '0.00'">
						<СумНДС>
							<xsl:value-of select="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение)"/>
						</СумНДС>
					</xsl:when>
					<xsl:otherwise>
						<БезНДС>
							<xsl:value-of select="'без НДС'"/>
						</БезНДС>
					</xsl:otherwise>
				</xsl:choose>
			</СумНал>
			<xsl:if test="normalize-space(Столбец[@Номер=$COUNTRYCODE]/@Значение)!=''">
				<СвТД>
					<xsl:attribute name="КодПроисх">
						<xsl:value-of select="normalize-space(Столбец[@Номер=$COUNTRYCODE]/@Значение)"/>
					</xsl:attribute>
					<xsl:attribute name="НомерТД">
						<xsl:value-of select="normalize-space(Столбец[@Номер=$COUNTTD]/@Значение)"/>
					</xsl:attribute>
				</СвТД>
			</xsl:if>
			<xsl:if test="count(//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=Столбец[@Номер=$DOCUMENTID]/@Значение][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter'][Столбец[@Номер=$ROWINDEX]/@Значение=$INDEX])!=0 or $Ид_Товара!=''">
				<ИнфПолСтр>
					<xsl:for-each select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=Столбец[@Номер=$DOCUMENTID]/@Значение][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter'][Столбец[@Номер=$ROWINDEX]/@Значение=$INDEX]">
						<xsl:choose>
							<xsl:when test="$Ид_Товара!=''">
								<xsl:attribute name="Идентиф">
									<xsl:value-of select="'ИД'"/>
								</xsl:attribute>
								<xsl:attribute name="Значен">
									<xsl:value-of select="$Ид_Товара"/>
								</xsl:attribute>
							</xsl:when>
							<xsl:otherwise>
								<xsl:attribute name="Идентиф">
									<xsl:value-of select="Столбец[@Номер=$NAME]/@Значение"/>
								</xsl:attribute>
								<xsl:attribute name="Значен">
									<xsl:value-of select="Столбец[@Номер=$VALUE]/@Значение"/>
								</xsl:attribute>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:for-each>
				</ИнфПолСтр>
			</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: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:for-each select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=Столбец[@Номер=$DOCUMENTID]/@Значение][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter'][Столбец[@Номер=$ROWINDEX]/@Значение=$INDEX]">
						<xsl:choose>
							<xsl:when test="$Ид_Товара!=''">
								<xsl:attribute name="Идентиф">
									<xsl:value-of select="'ИД'"/>
								</xsl:attribute>
								<xsl:attribute name="Значен">
									<xsl:value-of select="$Ид_Товара"/>
								</xsl:attribute>
							</xsl:when>
							<xsl:otherwise>
								<xsl:attribute name="Идентиф">
									<xsl:value-of select="Столбец[@Номер=$NAME]/@Значение"/>
								</xsl:attribute>
								<xsl:attribute name="Значен">
									<xsl:value-of select="Столбец[@Номер=$VALUE]/@Значение"/>
								</xsl:attribute>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:for-each>
				</ИнфПолСтр>
			</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:choose>
					<xsl:when test="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение) != '' and normalize-space(Столбец[@Номер=$TAXSUM]/@Значение) != '0' and normalize-space(Столбец[@Номер=$TAXSUM]/@Значение) != '0.00'">
						<xsl:attribute name="СумНДС">
							<xsl:value-of select="normalize-space(Столбец[@Номер=$TAXSUM]/@Значение)"/>
						</xsl:attribute>
					</xsl:when>
					<xsl:otherwise>
						<xsl:attribute name="БезНДС">
							<xsl:value-of select="'без НДС'"/>
						</xsl:attribute>
					</xsl:otherwise>
				</xsl:choose>
			</СумНал>
		</СведТов>
	</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:when>
					<xsl:otherwise>
						<СвФЛ>
							<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="ИнфПол_5.02">
		<xsl:param name="ИдДок"/>
		<xsl:param name="ИдПакет"/>
		<xsl:param name="ДопИнф"/>
	</xsl:template>
	<xsl:template name="ИнфПол_5.01">
		<xsl:param name="ИдДок"/>
		<xsl:param name="ИдПакет"/>
		<xsl:param name="ДопИнф"/>
	</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:attribute name="ИдОтпр"/>
				<xsl:attribute name="ИдПок"/>
				<СвОЭДОтпрСФ>
					<xsl:attribute name="НаимОрг">ООО 'Компания Тензор'</xsl:attribute>
					<xsl:attribute name="ИННЮЛ">7605016030</xsl:attribute>
					<xsl:attribute name="ИдЭДОСФ">2ВЕ</xsl:attribute>
				</СвОЭДОтпрСФ>
			</СвУчДокОбор>

			<Документ>
				<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:if test="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter'][Столбец[@Номер=$NAME]/@Значение!=''][Столбец[@Номер=$VALUE]/@Значение!='']">
						<ИнфПол>
							<xsl:attribute name="ТекстИнф">
								<xsl:text><Данные></xsl:text>
								<xsl:for-each select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter']">
									<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: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: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(Столбец[@Номер=$AMOUNT]/@Значение)"/>
			</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:attribute name="ИдОтпр"/>
				<xsl:attribute name="ИдПок"/>
				<СвОЭДОтпрСФ>
					<xsl:attribute name="НаимОрг">ООО 'Компания Тензор'</xsl:attribute>
					<xsl:attribute name="ИННЮЛ">7605016030</xsl:attribute>
					<xsl:attribute name="ИдЭДОСФ">2ВЕ</xsl:attribute>
				</СвОЭДОтпрСФ>
			</СвУчДокОбор>
			<Документ>
				<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="'00.00.00'"/>
				</xsl:attribute>
				<СвАктИ>
					<xsl:attribute name="НаимПервДок">
						<xsl:text>Акт о выполнении работ (оказании услуг)</xsl:text>
					</xsl:attribute>
					<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]/@Значение='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:if test="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter'][Столбец[@Номер=$NAME]/@Значение!=''][Столбец[@Номер=$VALUE]/@Значение!='']">
						<ИнфПол>
							<xsl:attribute name="ТекстИнф">
								<xsl:text><Данные></xsl:text>
								<xsl:for-each select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter']">
									<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: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="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter'][Столбец[@Номер=$NAME]/@Значение!=''][Столбец[@Номер=$VALUE]/@Значение!='']">
			<xsl:attribute name="КодФормы">
				<xsl:value-of select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Parameter'][Столбец[@Номер=$NAME]/@Значение='ИдВизуализации']/Столбец[@Номер=$VALUE]/@Значение"/>
			</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: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'][Столбец[@Номер=$NAME]/@Значение!='']">
					<Параметр>
						<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:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Party'][Столбец[@Номер=$TYPE]/@Значение='Shipper']" mode="Счет_Участник">
					<xsl:with-param name="ТипУчастника" select="'Грузоотправитель'"/>
				</xsl:apply-templates>

				<!-- Грузополучатель -->
				<xsl:apply-templates select="//Строка[Столбец[@Номер=$PACKETID]/@Значение=$ИдПакет][Столбец[@Номер=$DOCUMENTID]/@Значение=$ИдДок][Столбец[@Номер=$ROWTYPE]/@Значение='Party'][Столбец[@Номер=$TYPE]/@Значение='Consignee']" 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(Столбец[@Номер=$PHONE]/@Значение)"/>
		<xsl:variable name="EMAIL" select="normalize-space(Столбец[@Номер=$EMAIL]/@Значение)"/>

		<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><!-- Stylus Studio meta-information - (c) 2004-2009. Progress Software Corporation. All rights reserved.

<metaInformation>
	<scenarios>
		<scenario default="yes" name="Scenario1" userelativepaths="yes" externalpreview="no" url="only_scheta22.xml" htmlbaseurl="" outputurl="Результат\результат формирования.xml" processortype="saxon8" useresolver="yes" profilemode="0" profiledepth=""
		          profilelength="" urlprofilexml="" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext="" validateoutput="no" validator="internal"
		          customvalidator="">
			<advancedProp name="sInitialMode" value=""/>
			<advancedProp name="schemaCache" value="||"/>
			<advancedProp name="bXsltOneIsOkay" value="true"/>
			<advancedProp name="bSchemaAware" value="true"/>
			<advancedProp name="bGenerateByteCode" value="true"/>
			<advancedProp name="bXml11" value="false"/>
			<advancedProp name="iValidation" value="0"/>
			<advancedProp name="bExtensions" value="true"/>
			<advancedProp name="iWhitespace" value="0"/>
			<advancedProp name="sInitialTemplate" value=""/>
			<advancedProp name="bTinyTree" value="true"/>
			<advancedProp name="xsltVersion" value="2.0"/>
			<advancedProp name="bWarnings" value="true"/>
			<advancedProp name="bUseDTD" value="false"/>
			<advancedProp name="iErrorHandling" value="fatal"/>
		</scenario>
	</scenarios>
	<MapperMetaTag>
		<MapperInfo srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no">
			<SourceSchema srcSchemaPath="Пример csv файла_с_грузоотпр_и_грузополуч.xml" srcSchemaRoot="Файл" AssociatedInstance="" loaderFunction="document" loaderFunctionUsesURI="no"/>
		</MapperInfo>
		<MapperBlockPosition>
			<template match="/">
				<block path="xsl:apply-templates" x="517" y="0"/>
			</template>
		</MapperBlockPosition>
		<TemplateContext></TemplateContext>
		<MapperFilter side="source"></MapperFilter>
	</MapperMetaTag>
</metaInformation>
-->
0
0
Оставьте свой отзыв:
ОТПРАВИТЬ