XSLT конвертер: DBF.xml в ФНС.xml (факура, акт, ТОРГ-12)

Материал из razgovorov.ru
Перейти к: навигация, поиск
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:ext="urn:extension-functions" exclude-result-prefixes="msxsl ext">
	<xsl:output method="xml" indent="yes" encoding="windows-1251"/>
	<xsl:include href="change.xslt"/>

	<xsl:template name="recursive_TeksInf">
		<xsl:param name="text"/>
		<xsl:param name="id"/>

		<xsl:if test="$text!='' and contains($text,'/&gt;&lt;')">

			<xsl:call-template name="Шаблон">
				<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
				<xsl:with-param name="ROWTYPE" select="'Parameter'"/>
				<xsl:with-param name="DOCUMENTID" select="normalize-space($id)"/>
				<xsl:with-param name="ROWINDEX" select="../@НомСтр|../@Номер|../@НомТов"/>
				<xsl:with-param name="NAME">
					<xsl:variable name="after" select="substring-after($text, 'Реквизит Имя=&quot;')"/>
					<xsl:value-of select="substring-before($after,'&quot; Значение=')"/>
				</xsl:with-param>

				<xsl:with-param name="VALUE">
					<xsl:variable name="after" select="substring-after($text, 'Значение=&quot;')"/>
					<xsl:value-of select="substring-before($after,'&quot;/&gt;&lt;')"/>
				</xsl:with-param>
			</xsl:call-template>

			<xsl:call-template name="recursive_TeksInf">
				<xsl:with-param name="text" select="substring-after($text,'/&gt;&lt;')"/>
				<xsl:with-param name="id" select="$id"/>
			</xsl:call-template>
		</xsl:if>
	</xsl:template>



	<xsl:template match="//ИнфПол">
		<xsl:call-template name="recursive_TeksInf">
			<xsl:with-param name="text" select="@ТекстИнф"/>
			<xsl:with-param name="id">
				<xsl:value-of select="../../../../../../@Идентификатор"/>
			</xsl:with-param>
		</xsl:call-template>
	</xsl:template>

	<xsl:template match="//@ИнфПолСтр">
		<xsl:call-template name="recursive_TeksInf">
			<xsl:with-param name="text" select="current()"/>
			<xsl:with-param name="id">
				<xsl:choose>
					<xsl:when test="../../../../../../../../@Тип = 'АктВР'">
						<xsl:value-of select="../../../../../../../../@Идентификатор"/>
					</xsl:when>
					<xsl:when test="../../../../../../../@Тип = 'СчФктр'">
						<xsl:value-of select="../../../../../../../@Идентификатор"/>
					</xsl:when>
					<xsl:when test="../../../../../../../../../@Тип = 'ЭДОНакл'">
						<xsl:value-of select="../../../../../../../../../@Идентификатор"/>
					</xsl:when>
				</xsl:choose>
			</xsl:with-param>
		</xsl:call-template>
	</xsl:template>


	<xsl:template match="/Документ/СписокВложение/Вложение/Файл/XMLДанные/Файл/Документ/СвТНО/ТН/Таблица/СвТов">
		<xsl:call-template name="Шаблон">
			<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
			<xsl:with-param name="ROWTYPE" select="'RowTable'"/>
			<xsl:with-param name="DOCUMENTID" select="../../../../../../../../@Идентификатор"/>
			<xsl:with-param name="ROWINDEX" select="@НомТов"/>
			<xsl:with-param name="NAME" select="@НаимТов"/>
			<xsl:with-param name="ID" select="@КодТов"/>
			<xsl:with-param name="UNITCODE" select="@ОКЕИ_Тов"/>
			<xsl:with-param name="UNITNAME" select="@НаимЕдИзм"/>
			<xsl:with-param name="AMOUNT" select="@Нетто"/>
			<xsl:with-param name="PRICE" select="@Цена"/>
			<xsl:with-param name="SUM" select="@СумБезНДС"/>
			<xsl:with-param name="TOTAL" select="@СумУчНДС"/>
			<xsl:with-param name="TAXSUM" select="@СумНДС"/>
			<xsl:with-param name="TAXTYPE" select="''"/>
			<xsl:with-param name="TAXRATE" select="''"/>
			<xsl:with-param name="EXCISESUM" select="''"/>
			<xsl:with-param name="GROSSWEIGH" select="@Брутто"/>
			<xsl:with-param name="NETWEIGHT" select="@Нетто"/>
			<xsl:with-param name="PACK" select="@КолМест"/>
			<xsl:with-param name="PACKAMOUNT" select="@Место"/>
			<xsl:with-param name="PACKNAME" select="@ВидУпак"/>
		</xsl:call-template>
	</xsl:template>



	<xsl:template match="/Документ/СписокВложение/Вложение/Файл/XMLДанные/Файл/Документ/ТаблСчФакт/СведТов">
		<xsl:call-template name="Шаблон">
			<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
			<xsl:with-param name="ROWTYPE" select="'RowTable'"/>
			<xsl:with-param name="DOCUMENTID" select="../../../../../../@Идентификатор"/>
			<xsl:with-param name="ROWINDEX" select="@НомСтр"/>
			<xsl:with-param name="NAME" select="@НаимТов"/>
			<xsl:with-param name="UNITCODE" select="@ОКЕИ_Тов"/>
			<xsl:with-param name="UNITNAME" select="''"/>
			<xsl:with-param name="AMOUNT" select="@КолТов"/>
			<xsl:with-param name="PRICE" select="@ЦенаТов"/>
			<xsl:with-param name="SUM" select="@СтТовБезНДС"/>
			<xsl:with-param name="TOTAL" select="@СтТовУчНал"/>
			<xsl:with-param name="TAXSUM" select="СумНал/@СумНДС"/>
			<xsl:with-param name="TAXTYPE" select="НалСт/@НалСтТип"/>
			<xsl:with-param name="TAXRATE" select="НалСт/@НалСтВел"/>
			<xsl:with-param name="EXCISESUM" select="Акциз/@СумАкциз"/>
		</xsl:call-template>
	</xsl:template>

	<xsl:template match="/Документ/СписокВложение/Вложение/Файл/XMLДанные/Файл/Документ/СвАктИ/ОписРабот/Работа">
		<xsl:call-template name="Шаблон">
			<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
			<xsl:with-param name="ROWTYPE" select="'RowTable'"/>
			<xsl:with-param name="DOCUMENTID" select="../../../../../../../@Идентификатор"/>
			<xsl:with-param name="ROWINDEX" select="@Номер"/>
			<xsl:with-param name="NAME" select="@НаимРабот|@Описание"/>
			<xsl:with-param name="UNITCODE" select="@ОКЕИ"/>
			<xsl:with-param name="UNITNAME" select="@НаимЕдИзм"/>
			<xsl:with-param name="AMOUNT" select="@Количество"/>
			<xsl:with-param name="PRICE" select="@Цена"/>
			<xsl:with-param name="SUM" select="@СумБезНДС"/>
			<xsl:with-param name="TOTAL" select="@СумУчНДС"/>
			<xsl:with-param name="TAXSUM" select="@СумНДС"/>
			<xsl:with-param name="TAXTYPE" select="''"/>
			<xsl:with-param name="TAXRATE" select="''"/>
			<xsl:with-param name="EXCISESUM" select="''"/>
		</xsl:call-template>
	</xsl:template>
<!-- Шаблон для Грузополучателя-->
	<xsl:template match="/Документ/СписокВложение/Вложение" mode="Party_Consignee">
		<xsl:if test="Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузПолуч or Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч">
			<xsl:variable name="BANKACC">
				<xsl:choose>
					<xsl:when test="@Тип = 'АктВР'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/БанкРекв/@НомерСчета"/>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>

			<xsl:variable name="BANKID">
				<xsl:choose>
					<xsl:when test="@Тип = 'АктВР'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/БанкРекв/СвБанк/@БИК"/>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>

			<xsl:variable name="BANKNAME">
				<xsl:choose>
					<xsl:when test="@Тип = 'АктВР'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/БанкРекв/СвБанк/@НаимБанк"/>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>

			<xsl:variable name="ADRESS">
				<xsl:choose>

					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:apply-templates select="Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузПолуч/Адрес/АдрИно|Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузПолуч/Адрес/АдрРФ"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:apply-templates select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/Адрес/АдрРФ|Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/Адрес/АдрИно"/>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>
			<xsl:variable name="PHONE">
				<xsl:choose>
					<xsl:when test="@Тип = 'АктВР'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/Контакт/@Тлф"/>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>

			<xsl:variable name="KPP">
				<xsl:choose>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:choose>
							<xsl:when test="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
								<xsl:value-of select="''"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвЮЛ/@КПП"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>

			<xsl:variable name="INN">
				<xsl:choose>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:choose>
							<xsl:when test="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
								<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвФЛ/@ИННФЛ"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвЮЛ/@ИННЮЛ"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>
			<xsl:variable name="NAME">
				<xsl:choose>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:choose>
							<xsl:when test="Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузПолуч/НаимГОП/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузПолуч/НаимГОП/ФИОИП/@Фамилия != '---'">
								<xsl:value-of select="concat(Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузПолуч/НаимГОП/ФИОИП/@Фамилия,' ',Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузПолуч/НаимГОП/ФИОИП/@Имя,' ',Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузПолуч/НаимГОП/ФИОИП/@Отчество)"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузПолуч/НаимГОП/@НаимОрг"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:choose>
							<xsl:when test="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
								<xsl:value-of select="concat(Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвФЛ/ФИОИП/@Фамилия,' ',Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвФЛ/ФИОИП/@Имя,' ',Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвФЛ/ФИОИП/@Отчество)"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузПолуч/ИдСв/СвЮЛ/@НаимОрг"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>

			<xsl:call-template name="Шаблон">
				<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
				<xsl:with-param name="ROWTYPE" select="'Party'"/>
				<xsl:with-param name="DOCUMENTID" select="@Идентификатор"/>
				<xsl:with-param name="TYPE" select="'Consignee'"/>
				<xsl:with-param name="NAME" select="$NAME"/>
				<xsl:with-param name="INN" select="$INN"/>
				<xsl:with-param name="KPP" select="$KPP"/>
				<xsl:with-param name="PHONE" select="$PHONE"/>
				<xsl:with-param name="ADDRESS" select="$ADRESS"/>
				<xsl:with-param name="BANKACC" select="$BANKACC"/>
				<xsl:with-param name="BANKID" select="$BANKID"/>
				<xsl:with-param name="BANKNAME" select="$BANKNAME"/>
			</xsl:call-template>
		</xsl:if>
	</xsl:template>

	<xsl:template match="/Документ/СписокВложение/Вложение" mode="Party_Shipper">
		<xsl:if test="Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузОт or Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт">
			<xsl:variable name="BANKACC">
				<xsl:choose>
					<xsl:when test="@Тип = 'АктВР'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/БанкРекв/@НомерСчета"/>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>

			<xsl:variable name="BANKID">
				<xsl:choose>
					<xsl:when test="@Тип = 'АктВР'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/БанкРекв/СвБанк/@БИК"/>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>

			<xsl:variable name="BANKNAME">
				<xsl:choose>
					<xsl:when test="@Тип = 'АктВР'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/БанкРекв/СвБанк/@НаимБанк"/>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>

			<xsl:variable name="ADRESS">
				<xsl:choose>

					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:apply-templates select="Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузОт/ГрузОтпр/Адрес/АдрИно|Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузОт/ГрузОтпр/Адрес/АдрРФ"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:apply-templates select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/Адрес/АдрРФ|Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/Адрес/АдрИно"/>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>
			<xsl:variable name="PHONE">
				<xsl:choose>
					<xsl:when test="@Тип = 'АктВР'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:value-of select="''"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/Контакт/@Тлф"/>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>

			<xsl:variable name="KPP">
				<xsl:choose>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:choose>
							<xsl:when test="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
								<xsl:value-of select="''"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвЮЛ/@КПП"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>

			<xsl:variable name="INN">
				<xsl:choose>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:choose>
							<xsl:when test="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
								<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвФЛ/@ИННФЛ"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвЮЛ/@ИННЮЛ"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>
			<xsl:variable name="NAME">
				<xsl:choose>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:choose>
							<xsl:when test="Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузОт/ГрузОтпр/НаимГОП/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузОт/ГрузОтпр/НаимГОП/ФИОИП/@Фамилия != '---'">
								<xsl:value-of select="concat(Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузОт/ГрузОтпр/НаимГОП/ФИОИП/@Фамилия,' ',Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузОт/ГрузОтпр/НаимГОП/ФИОИП/@Имя,' ',Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузОт/ГрузОтпр/НаимГОП/ФИОИП/@Отчество)"/>
							</xsl:when>
							<xsl:when test="Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузОт/ОнЖе">
								<xsl:text>Он же</xsl:text>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвСчФакт/ГрузОт/ГрузОтпр/НаимГОП/@НаимОрг"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:choose>
							<xsl:when test="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
								<xsl:value-of select="concat(Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвФЛ/ФИОИП/@Фамилия,' ',Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвФЛ/ФИОИП/@Имя,' ',Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвФЛ/ФИОИП/@Отчество)"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ГрузОт/ГрузОтпр/ИдСв/СвЮЛ/@НаимОрг"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:when>
				</xsl:choose>
			</xsl:variable>

			<xsl:call-template name="Шаблон">
				<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
				<xsl:with-param name="ROWTYPE" select="'Party'"/>
				<xsl:with-param name="DOCUMENTID" select="@Идентификатор"/>
				<xsl:with-param name="TYPE" select="'Shipper'"/>
				<xsl:with-param name="NAME" select="$NAME"/>
				<xsl:with-param name="INN" select="$INN"/>
				<xsl:with-param name="KPP" select="$KPP"/>
				<xsl:with-param name="PHONE" select="$PHONE"/>
				<xsl:with-param name="ADDRESS" select="$ADRESS"/>
				<xsl:with-param name="BANKACC" select="$BANKACC"/>
				<xsl:with-param name="BANKID" select="$BANKID"/>
				<xsl:with-param name="BANKNAME" select="$BANKNAME"/>
			</xsl:call-template>
		</xsl:if>
	</xsl:template>

	<xsl:template match="/Документ/СписокВложение/Вложение" mode="Party_Buyer">
		<xsl:variable name="BANKACC">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:value-of select="''"/>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:value-of select="''"/>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/БанкРекв/@НомерСчета"/>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>

		<xsl:variable name="BANKID">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:value-of select="''"/>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:value-of select="''"/>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/БанкРекв/СвБанк/@БИК"/>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>

		<xsl:variable name="BANKNAME">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:value-of select="''"/>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:value-of select="''"/>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/БанкРекв/СвБанк/@НаимБанк"/>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>

		<xsl:variable name="ADRESS">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:call-template name="findValue">
						<xsl:with-param name="dopInfStr" select="Файл/XMLДанные/Файл/Документ/СвАктИ/ИнфПол/@ТекстИнф"/>
						<xsl:with-param name="name">ЗаказчикАдрес</xsl:with-param>
					</xsl:call-template>/</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:apply-templates select="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/Адрес/АдрИно|Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/Адрес/АдрРФ"/>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:apply-templates select="Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/Адрес/АдрРФ|Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/Адрес/АдрИно"/>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>
		<xsl:variable name="PHONE">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:value-of select="''"/>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:value-of select="''"/>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/Контакт/@Тлф"/>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>

		<xsl:variable name="KPP">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:call-template name="findValue">
						<xsl:with-param name="dopInfStr" select="Файл/XMLДанные/Файл/Документ/СвАктИ/ИнфПол/@ТекстИнф"/>
						<xsl:with-param name="name">ЗаказчикКПП</xsl:with-param>
					</xsl:call-template>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="''"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвЮЛ/@КПП"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="''"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвЮЛ/@КПП"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>
		<xsl:variable name="INN">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:call-template name="findValue">
						<xsl:with-param name="dopInfStr" select="Файл/XMLДанные/Файл/Документ/СвАктИ/ИнфПол/@ТекстИнф"/>
						<xsl:with-param name="name">ЗаказчикИНН</xsl:with-param>
					</xsl:call-template>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвФЛ/@ИННФЛ"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвЮЛ/@ИННЮЛ"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвФЛ/@ИННФЛ"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвЮЛ/@ИННЮЛ"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>
		<xsl:variable name="NAME">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:call-template name="findValue">
						<xsl:with-param name="dopInfStr" select="Файл/XMLДанные/Файл/Документ/СвАктИ/ИнфПол/@ТекстИнф"/>
						<xsl:with-param name="name">Заказчик</xsl:with-param>
					</xsl:call-template>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="concat(Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвФЛ/ФИОИП/@Фамилия,' ',Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвФЛ/ФИОИП/@Имя,' ',Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвФЛ/ФИОИП/@Отчество)"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПокуп/ИдСв/СвЮЛ/@НаимОрг"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="concat(Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвФЛ/ФИОИП/@Фамилия,' ',Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвФЛ/ФИОИП/@Имя,' ',Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвФЛ/ФИОИП/@Отчество)"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Плательщик/ИдСв/СвЮЛ/@НаимОрг"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>

		<xsl:call-template name="Шаблон">
			<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
			<xsl:with-param name="ROWTYPE" select="'Party'"/>
			<xsl:with-param name="DOCUMENTID" select="@Идентификатор"/>
			<xsl:with-param name="TYPE" select="'Buyer'"/>
			<xsl:with-param name="NAME" select="$NAME"/>
			<xsl:with-param name="INN" select="$INN"/>
			<xsl:with-param name="KPP" select="$KPP"/>
			<xsl:with-param name="PHONE" select="$PHONE"/>
			<xsl:with-param name="ADDRESS" select="$ADRESS"/>
			<xsl:with-param name="BANKACC" select="$BANKACC"/>
			<xsl:with-param name="BANKID" select="$BANKID"/>
			<xsl:with-param name="BANKNAME" select="$BANKNAME"/>
		</xsl:call-template>
	</xsl:template>

	<xsl:template match="/Документ/СписокВложение/Вложение" mode="Party_Seller">

		<xsl:variable name="BANKACC">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/БанкРекв/@НомерСчета"/>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:value-of select="''"/>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/БанкРекв/@НомерСчета"/>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>

		<xsl:variable name="BANKID">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/БанкРекв/СвБанк/@БИК"/>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:value-of select="''"/>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/БанкРекв/СвБанк/@БИК"/>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>

		<xsl:variable name="BANKNAME">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/БанкРекв/СвБанк/@НаимБанк"/>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:value-of select="''"/>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/БанкРекв/СвБанк/@НаимБанк"/>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>

		<xsl:variable name="ADRESS">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:apply-templates select="Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/Адрес/АдрИно|Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/Адрес/АдрРФ"/>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:apply-templates select="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/Адрес/АдрИно|Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/Адрес/АдрРФ"/>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:apply-templates select="Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/Адрес/АдрРФ|Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/Адрес/АдрИно"/>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>
		<xsl:variable name="PHONE">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/Контакт/@Тлф"/>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/Контакт/@Тлф"/>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>

		<xsl:variable name="KPP">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="''"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвЮЛ/@КПП"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="''"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвЮЛ/@КПП"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="''"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвЮЛ/@КПП"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>
		<xsl:variable name="INN">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвФЛ/@ИННФЛ"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвЮЛ/@ИННЮЛ"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвФЛ/@ИННФЛ"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвЮЛ/@ИННЮЛ"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвФЛ/@ИННФЛ"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвЮЛ/@ИННЮЛ"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>
		<xsl:variable name="NAME">
			<xsl:choose>
				<xsl:when test="@Тип = 'АктВР'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="concat(Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвФЛ/ФИОИП/@Фамилия,' ',Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвФЛ/ФИОИП/@Имя,' ',Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвФЛ/ФИОИП/@Отчество)"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвАктИ/Исполнитель/ИдСв/СвЮЛ/@НаимОрг"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:when test="@Тип = 'СчФктр'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="concat(Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвФЛ/ФИОИП/@Фамилия,' ',Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвФЛ/ФИОИП/@Имя,' ',Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвФЛ/ФИОИП/@Отчество)"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПрод/ИдСв/СвЮЛ/@НаимОрг"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:when test="@Тип = 'ЭДОНакл'">
					<xsl:choose>
						<xsl:when test="Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвФЛ/ФИОИП/@Имя != '---' and Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвФЛ/ФИОИП/@Фамилия != '---'">
							<xsl:value-of select="concat(Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвФЛ/ФИОИП/@Фамилия,' ',Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвФЛ/ФИОИП/@Имя,' ',Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвФЛ/ФИОИП/@Отчество)"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Поставщик/ИдСв/СвЮЛ/@НаимОрг"/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
			</xsl:choose>
		</xsl:variable>

		<xsl:call-template name="Шаблон">
			<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
			<xsl:with-param name="ROWTYPE" select="'Party'"/>
			<xsl:with-param name="DOCUMENTID" select="@Идентификатор"/>
			<xsl:with-param name="TYPE" select="'Seller'"/>
			<xsl:with-param name="NAME" select="$NAME"/>
			<xsl:with-param name="INN" select="$INN"/>
			<xsl:with-param name="KPP" select="$KPP"/>
			<xsl:with-param name="PHONE" select="$PHONE"/>
			<xsl:with-param name="ADDRESS" select="$ADRESS"/>
			<xsl:with-param name="BANKACC" select="$BANKACC"/>
			<xsl:with-param name="BANKID" select="$BANKID"/>
			<xsl:with-param name="BANKNAME" select="$BANKNAME"/>
		</xsl:call-template>
	</xsl:template>


	<xsl:template match="/Документ/СписокВложение/Вложение" mode="Base">
		<xsl:if test="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПРД/@НомерПРД or Файл/XMLДанные/Файл/Документ/СвТНО/Основание/@НаимОсн">

			<xsl:call-template name="Шаблон">
				<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
				<xsl:with-param name="ROWTYPE" select="'Base'"/>
				<xsl:with-param name="DOCUMENTID" select="@Идентификатор"/>
				<xsl:with-param name="TYPE">
					<xsl:choose>
						<xsl:when test="@Тип = 'АктВР'">
							<xsl:value-of select="''"/>
						</xsl:when>
						<xsl:when test="@Тип = 'СчФктр'">
							<xsl:value-of select="'ПРД'"/>
						</xsl:when>
						<xsl:when test="@Тип = 'ЭДОНакл'">
							<xsl:choose>
								<xsl:when test="contains(Файл/XMLДанные/Файл/Документ/СвТНО/Основание/@НаимОсн,'Заказ')">
									<xsl:value-of select="'Заказ'"/>
								</xsl:when>
								<xsl:otherwise>
									<xsl:value-of select="'Договор'"/>
								</xsl:otherwise>
							</xsl:choose>
						</xsl:when>
					</xsl:choose>
				</xsl:with-param>
				<xsl:with-param name="NAME">
					<xsl:choose>
						<xsl:when test="@Тип = 'АктВР'">
							<xsl:value-of select="''"/>
						</xsl:when>
						<xsl:when test="@Тип = 'СчФктр'">
							<xsl:value-of select="''"/>
						</xsl:when>
						<xsl:when test="@Тип = 'ЭДОНакл'">
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Основание/@НаимОсн"/>
						</xsl:when>
					</xsl:choose>
				</xsl:with-param>
				<xsl:with-param name="NUMBER">
					<xsl:choose>
						<xsl:when test="@Тип = 'АктВР'">
							<xsl:value-of select="''"/>
						</xsl:when>
						<xsl:when test="@Тип = 'СчФктр'">
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПРД/@НомерПРД"/>
						</xsl:when>
						<xsl:when test="@Тип = 'ЭДОНакл'">
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Основание/@НомОсн"/>
						</xsl:when>
					</xsl:choose>
				</xsl:with-param>
				<xsl:with-param name="DATE">
					<xsl:choose>
						<xsl:when test="@Тип = 'АктВР'">
							<xsl:value-of select="''"/>
						</xsl:when>
						<xsl:when test="@Тип = 'СчФктр'">
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвСчФакт/СвПРД/@ДатаПРД"/>
						</xsl:when>
						<xsl:when test="@Тип = 'ЭДОНакл'">
							<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/Основание/@ДатаОсн"/>
						</xsl:when>
					</xsl:choose>
				</xsl:with-param>
			</xsl:call-template>
		</xsl:if>
	</xsl:template>
	<xsl:template match="/Документ/СписокВложение/Вложение" mode="Document">

		<xsl:call-template name="Шаблон">
			<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
			<xsl:with-param name="ROWTYPE" select="'Document'"/>
			<xsl:with-param name="DOCUMENTID" select="@Идентификатор"/>
			<xsl:with-param name="ROWINDEX" select="position()"/>
			<xsl:with-param name="TYPE" select="@Тип"/>
			<xsl:with-param name="NAME" select="@Название"/>
			<xsl:with-param name="NUMBER" select="@Номер"/>
			<xsl:with-param name="DATE" select="@Дата"/>
			<xsl:with-param name="AMOUNT">
				<xsl:choose>
					<xsl:when test="@Тип = 'АктВР'">
						<xsl:value-of select="count(Файл/XMLДанные/Файл/Документ/СвАктИ/ОписРабот/Работа)"/>
					</xsl:when>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:value-of select="count(Файл/XMLДанные/Файл/Документ/ТаблСчФакт/СведТов)"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="count(Файл/XMLДанные/Файл/Документ/СвТНО/ТН/Таблица/СвТов)"/>
					</xsl:when>
				</xsl:choose>
			</xsl:with-param>
			<xsl:with-param name="SUM">
				<xsl:choose>
					<xsl:when test="@Тип = 'АктВР'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвАктИ/ОписРабот/Работа/@СумБезНДС"/>
					</xsl:when>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/ТаблСчФакт/ВсегоОпл/@СтТовБезНДСВсего"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ТН/Таблица/ВсегоНакл/@СумБезНДСВс"/>
					</xsl:when>
				</xsl:choose>
			</xsl:with-param>
			<xsl:with-param name="TOTAL" select="@Сумма"/>
			<xsl:with-param name="TAXSUM">
				<xsl:choose>
					<xsl:when test="@Тип = 'АктВР'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвАктИ/ОписРабот/Работа/@СумНДС"/>
					</xsl:when>
					<xsl:when test="@Тип = 'СчФктр'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/ТаблСчФакт/ВсегоОпл/СумНалВсего/@СумНДС"/>
					</xsl:when>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ТН/Таблица/ВсегоНакл/@СумНДСВс"/>
					</xsl:when>
				</xsl:choose>
			</xsl:with-param>
			<xsl:with-param name="GROSSWEIGH">
				<xsl:choose>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ТН/Таблица/ВсегоНакл/@БруттоВс"/>
					</xsl:when>
				</xsl:choose>
			</xsl:with-param>
			<xsl:with-param name="NETWEIGHT">
				<xsl:choose>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ТН/Таблица/ВсегоНакл/@НеттоВс"/>
					</xsl:when>
				</xsl:choose>
			</xsl:with-param>
			<xsl:with-param name="PACK">
				<xsl:choose>
					<xsl:when test="@Тип = 'ЭДОНакл'">
						<xsl:value-of select="Файл/XMLДанные/Файл/Документ/СвТНО/ТН/Таблица/ВсегоНакл/@КолМестВс"/>
					</xsl:when>
				</xsl:choose>
			</xsl:with-param>
		</xsl:call-template>
	</xsl:template>

	<xsl:template match="/">
		<СписокФайл>
			<Файл>
				<xsl:attribute name="ИмяФайла">
					<xsl:value-of select="concat(/Документ/@Идентификатор,'.dbf')"/>
				</xsl:attribute>
				<Формат>
					<Столбец Номер="0" Название="PACKETID" Тип="Char(30)"/>
					<Столбец Номер="1" Название="ROWTYPE" Тип="Char(10)"/>
					<Столбец Номер="2" Название="DOCUMENTID" Тип="Char(30)"/>
					<Столбец Номер="3" Название="ROWINDEX" Тип="Char(30)"/>
					<Столбец Номер="4" Название="TYPE" Тип="Char(10)"/>
					<Столбец Номер="5" Название="ID" Тип="Char(30)"/>
					<Столбец Номер="6" Название="NAME" Тип="Char(100)"/>
					<Столбец Номер="7" Название="VALUE" Тип="Char(100)"/>
					<Столбец Номер="8" Название="NUMBER" Тип="Char(30)"/>
					<Столбец Номер="9" Название="DATE" Тип="Char(10)"/>
					<Столбец Номер="10" Название="UNITCODE" Тип="Char(10)"/>
					<Столбец Номер="11" Название="UNITNAME" Тип="Char(30)"/>
					<Столбец Номер="12" Название="AMOUNT" Тип="Char(10)"/>
					<Столбец Номер="13" Название="PRICE" Тип="Char(10)"/>
					<Столбец Номер="14" Название="SUM" Тип="Char(10)"/>
					<Столбец Номер="15" Название="TOTAL" Тип="Char(10)"/>
					<Столбец Номер="16" Название="TAXSUM" Тип="Char(10)"/>
					<Столбец Номер="17" Название="TAXTYPE" Тип="Char(10)"/>
					<Столбец Номер="18" Название="TAXRATE" Тип="Char(10)"/>
					<Столбец Номер="19" Название="EXCISESUM" Тип="Char(10)"/>
					<Столбец Номер="20" Название="GROSSWEIGH" Тип="Char(30)"/>
					<Столбец Номер="21" Название="NETWEIGHT" Тип="Char(30)"/>
					<Столбец Номер="22" Название="PACK" Тип="Char(30)"/>
					<Столбец Номер="23" Название="PACKAMOUNT" Тип="Char(10)"/>
					<Столбец Номер="24" Название="PACKNAME" Тип="Char(30)"/>
					<Столбец Номер="25" Название="INN" Тип="Char(12)"/>
					<Столбец Номер="26" Название="KPP" Тип="Char(10)"/>
					<Столбец Номер="27" Название="EMAIL" Тип="Char(30)"/>
					<Столбец Номер="28" Название="PHONE" Тип="Char(20)"/>
					<Столбец Номер="29" Название="ADDRESS" Тип="Char(100)"/>
					<Столбец Номер="30" Название="BANKNAME" Тип="Char(100)"/>
					<Столбец Номер="31" Название="BANKID" Тип="Char(50)"/>
					<Столбец Номер="32" Название="BANKACC" Тип="Char(50)"/>
					<Столбец Номер="33" Название="BANKCORACC" Тип="Char(50)"/>		
				</Формат>

				<!-- Блок Packet-->

				<xsl:call-template name="Шаблон">
					<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
					<xsl:with-param name="ROWTYPE" select="'Packet'"/>
					<xsl:with-param name="TYPE" select="/Документ/@Тип"/>
				</xsl:call-template>

				<!-- Блок Party(Packet) SENDER-->

				<xsl:call-template name="Шаблон">
					<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
					<xsl:with-param name="ROWTYPE" select="'Party'"/>
					<xsl:with-param name="TYPE" select="'Sender'"/>
					<xsl:with-param name="NAME">
						<xsl:choose>
							<xsl:when test="Документ/Контрагент/СвФЛ/ФИОИП">
								<xsl:value-of select="concat(Документ/Контрагент/СвФЛ/ФИОИП/@Фамилия,' ',Документ/Контрагент/СвФЛ/ФИОИП/@Имя,' ',Документ/Контрагент/СвФЛ/ФИОИП/@Отчество)"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Документ/Контрагент/СвЮЛ/@Название"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:with-param>
					<xsl:with-param name="NUMBER" select="''"/>
					<xsl:with-param name="UNITCODE" select="''"/>
					<xsl:with-param name="UNITNAME" select="''"/>
					<xsl:with-param name="INN">
						<xsl:choose>
							<xsl:when test="Документ/Контрагент/СвФЛ/@ИНН">
								<xsl:value-of select="Документ/Контрагент/СвФЛ/@ИНН"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Документ/Контрагент/СвЮЛ/@ИНН"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:with-param>

					<xsl:with-param name="KPP">
						<xsl:choose>
							<xsl:when test="Документ/Контрагент/СвФЛ">
								<xsl:value-of select="''"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Документ/Контрагент/СвЮЛ/@КПП"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:with-param>
				</xsl:call-template>

				<!-- Блок Party(Packet) RECIEVER-->

				<xsl:call-template name="Шаблон">
					<xsl:with-param name="PACKETID" select="/Документ/@Идентификатор"/>
					<xsl:with-param name="ROWTYPE" select="'Party'"/>
					<xsl:with-param name="TYPE" select="'Receiver'"/>
					<xsl:with-param name="NAME">
						<xsl:choose>
							<xsl:when test="Документ/НашаОрганизация/СвФЛ/ФИОИП">
								<xsl:value-of select="concat(Документ/НашаОрганизация/СвФЛ/ФИОИП/@Фамилия,' ',Документ/НашаОрганизация/СвФЛ/ФИОИП/@Имя,' ',Документ/НашаОрганизация/СвФЛ/ФИОИП/@Отчество)"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Документ/НашаОрганизация/СвЮЛ/@Название"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:with-param>
					<xsl:with-param name="NUMBER" select="''"/>
					<xsl:with-param name="UNITCODE" select="''"/>
					<xsl:with-param name="UNITNAME" select="''"/>
					<xsl:with-param name="INN">
						<xsl:choose>
							<xsl:when test="Документ/НашаОрганизация/СвФЛ/@ИНН">
								<xsl:value-of select="Документ/НашаОрганизация/СвФЛ/@ИНН"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Документ/НашаОрганизация/СвЮЛ/@ИНН"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:with-param>

					<xsl:with-param name="KPP">
						<xsl:choose>
							<xsl:when test="Документ/НашаОрганизация/СвФЛ">
								<xsl:value-of select="''"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:value-of select="Документ/НашаОрганизация/СвЮЛ/@КПП"/>
							</xsl:otherwise>
						</xsl:choose>
					</xsl:with-param>
				</xsl:call-template>

				<!-- Блок Document-->
				<xsl:apply-templates select="/Документ/СписокВложение/Вложение" mode="Document"/>

				<!-- Блок Base-->
				<xsl:apply-templates select="/Документ/СписокВложение/Вложение" mode="Base"/>

				<!-- Блок Party (Document)-->
				<xsl:apply-templates select="/Документ/СписокВложение/Вложение" mode="Party_Seller"/>
				<xsl:apply-templates select="/Документ/СписокВложение/Вложение" mode="Party_Buyer"/>
				<xsl:apply-templates select="/Документ/СписокВложение/Вложение" mode="Party_Shipper"/>
				<xsl:apply-templates select="/Документ/СписокВложение/Вложение" mode="Party_Consignee"/>
				<!-- Блок RowTable -->

				<xsl:apply-templates select="/Документ/СписокВложение/Вложение/Файл/XMLДанные/Файл/Документ/СвАктИ/ОписРабот/Работа|/Документ/СписокВложение/Вложение/Файл/XMLДанные/Файл/Документ/ТаблСчФакт/СведТов|/Документ/СписокВложение/Вложение/Файл/XMLДанные/Файл/Документ/СвТНО/ТН/Таблица/СвТов"/>

				<!-- Блок Parameter  -->

				<xsl:apply-templates select="//ИнфПол"/>
				<xsl:apply-templates select="//@ИнфПолСтр"/>
			</Файл>
		</СписокФайл>
	</xsl:template>

<!--Общий шаблон блока, передаем в него необходимые параметры -->
	<xsl:template name="Шаблон">
		<xsl:param name="PACKETID"/>
		<xsl:param name="ROWTYPE"/>
		<xsl:param name="DOCUMENTID"/>
		<xsl:param name="ROWINDEX"/>
		<xsl:param name="TYPE"/>
		<xsl:param name="ID"/>
		<xsl:param name="NAME"/>
		<xsl:param name="VALUE"/>
		<xsl:param name="NUMBER"/>
		<xsl:param name="DATE"/>
		<xsl:param name="UNITCODE"/>
		<xsl:param name="UNITNAME"/>
		<xsl:param name="AMOUNT"/>
		<xsl:param name="PRICE"/>
		<xsl:param name="SUM"/>
		<xsl:param name="TOTAL"/>
		<xsl:param name="TAXSUM"/>
		<xsl:param name="TAXTYPE"/>
		<xsl:param name="TAXRATE"/>
		<xsl:param name="EXCISESUM"/>
		<xsl:param name="GROSSWEIGH"/>
		<xsl:param name="NETWEIGHT"/>
		<xsl:param name="PACK"/>
		<xsl:param name="PACKAMOUNT"/>
		<xsl:param name="PACKNAME"/>
		<xsl:param name="INN"/>
		<xsl:param name="KPP"/>
		<xsl:param name="EMAIL"/>
		<xsl:param name="PHONE"/>
		<xsl:param name="ADDRESS"/>
		<xsl:param name="BANKNAME"/>
		<xsl:param name="BANKID"/>
		<xsl:param name="BANKACC"/>
		<xsl:param name="BANKCORACC"/>

		<Строка>
			<Столбец Номер="0" Название="PACKETID" Значение="{$PACKETID}"/>
			<Столбец Номер="1" Название="ROWTYPE" Значение="{$ROWTYPE}"/>
			<Столбец Номер="2" Название="DOCUMENTID" Значение="{$DOCUMENTID}"/>
			<Столбец Номер="3" Название="ROWINDEX" Значение="{$ROWINDEX}"/>
			<Столбец Номер="4" Название="TYPE" Значение="{$TYPE}"/>
			<Столбец Номер="5" Название="ID" Значение="{$ID}"/>
			<Столбец Номер="6" Название="NAME" Значение="{$NAME}"/>
			<Столбец Номер="7" Название="VALUE" Значение="{$VALUE}"/>
			<Столбец Номер="8" Название="NUMBER" Значение="{$NUMBER}"/>
			<Столбец Номер="9" Название="DATE" Значение="{$DATE}"/>
			<Столбец Номер="10" Название="UNITCODE" Значение="{$UNITCODE}"/>
			<Столбец Номер="11" Название="UNITNAME" Значение="{$UNITNAME}"/>
			<Столбец Номер="12" Название="AMOUNT" Значение="{$AMOUNT}"/>
			<Столбец Номер="13" Название="PRICE" Значение="{$PRICE}"/>
			<Столбец Номер="14" Название="SUM" Значение="{$SUM}"/>
			<Столбец Номер="15" Название="TOTAL" Значение="{$TOTAL}"/>
			<Столбец Номер="16" Название="TAXSUM" Значение="{$TAXSUM}"/>
			<Столбец Номер="17" Название="TAXTYPE" Значение="{$TAXTYPE}"/>
			<Столбец Номер="18" Название="TAXRATE" Значение="{$TAXRATE}"/>
			<Столбец Номер="19" Название="EXCISESUM" Значение="{$EXCISESUM}"/>
			<Столбец Номер="20" Название="GROSSWEIGH" Значение="{$GROSSWEIGH}"/>
			<Столбец Номер="21" Название="NETWEIGHT" Значение="{$NETWEIGHT}"/>
			<Столбец Номер="22" Название="PACK" Значение="{$PACK}"/>
			<Столбец Номер="23" Название="PACKAMOUNT" Значение="{$PACKAMOUNT}"/>
			<Столбец Номер="24" Название="PACKNAME" Значение="{$PACKNAME}"/>
			<Столбец Номер="25" Название="INN" Значение="{$INN}"/>
			<Столбец Номер="26" Название="KPP" Значение="{$KPP}"/>
			<Столбец Номер="27" Название="EMAIL" Значение="{$EMAIL}"/>
			<Столбец Номер="28" Название="PHONE" Значение="{$PHONE}"/>
			<Столбец Номер="29" Название="ADDRESS" Значение="{$ADDRESS}"/>
			<Столбец Номер="30" Название="BANKNAME" Значение="{$BANKNAME}"/>
			<Столбец Номер="31" Название="BANKID" Значение="{$BANKID}"/>
			<Столбец Номер="32" Название="BANKACC" Значение="{$BANKACC}"/>
			<Столбец Номер="33" Название="BANKCORACC" Значение="{$BANKCORACC}"/>
		</Строка>
	</xsl:template>

	<xsl:template name="findValue">
		<xsl:param name="name"/>
		<xsl:param name="dopInfStr"/>
		<xsl:variable name="after" select="substring-after($dopInfStr, concat('Имя=&quot;',$name,'&quot; Значение=&quot;'))"/>
		<xsl:choose>
			<xsl:when test="$name = 'ЗаказчикКПП'">
				<xsl:if test="string-length($after) != 0">
					<xsl:value-of select="substring-before($after,'&quot;/&gt;')" disable-output-escaping="yes"/>
				</xsl:if>
			</xsl:when>
			<xsl:otherwise>
				<xsl:value-of select="substring-before($after,'&quot;/&gt;')" disable-output-escaping="yes"/>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:template>
</xsl:stylesheet>