Имя: Пароль:
IT
 
Чем просмотреть отчет НДФЛ из xml файла
0 Drac0
 
20.01.12
12:00
День добрый.
Возникла потребность просмотреть данные НДФЛ отчета из xml-файла за 2010 и 2011 года. Раньше для таких случаев использовал онлайн приложение на БухСофте, но его выпилили. Пробовал скачать другие программы для формирования отчетности (вроде ПУ-5), но они не могут почему-то открыть файл за 2010 год.
Кто-нибудь может подсказать, как можно решить задачу? Заранее благодарен.
1 Ёпрст
 
20.01.12
12:05
блокнотом
2 1Сергей
 
20.01.12
12:10
лучше браузером
3 Drac0
 
20.01.12
12:11
Блин, так-то я смогу, а вот буху не очень удобно :) Ей бы в печатной форме. Извините, что ен уточнил.
4 Tatitutu
 
20.01.12
12:16
Напиши файлик  с расширением .xsl и брось в папку с этими файлами
при открытии через браузер будут правильно отображаться как печатная форма

Как пример:

<?xml version="1.0" ?>

<xsl:stylesheet version="1.0"
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
       xmlns:dt="urn:schemas-microsoft-com:datatypes" >
 <xsl:output method="html"/>
 <xsl:decimal-format decimal-separator="-" grouping-separator=" "/>

 <xsl:template match="/">
   <HTML>
   <HEAD><TITLE>МАГАЗьКА - программа для магазина (www.magazka.com) </TITLE>
   </HEAD>

   <BODY>
     <H2>Данные от: <EM><xsl:value-of select="//@Источник" /></EM></H2>
     <xsl:apply-templates />
   </BODY>
   </HTML>
 </xsl:template>

 <!-- Объекты по ссылкам не отображаем (они будут показаны в том месте,
   где на них ссылаются) -->
 <xsl:template match="Перечисление" />
 <xsl:template match="Справочник[./@Ссылка='1']" />
 <xsl:template match="Документ[./@Ссылка='1']" />

 <xsl:template match="Константа">
   <P>
   <B><xsl:value-of select="@Вид"/></B>=<xsl:call-template name="Реквизит"/>
   </P>
 </xsl:template>

 <!-- все прочие, не имеющие аттрибута "Ссылка" или Ссылка = 0 -->
 <xsl:template match="Справочник">
   <P>
   <B><xsl:value-of select="@Вид"/></B>
   <xsl:for-each select="*">
   <DIV><xsl:value-of select="name()" />:
   <xsl:call-template name="Реквизит"/>
   </DIV>
   </xsl:for-each>
   </P>
 </xsl:template>

 <xsl:template match="Документ">
   <P>
   <H3><xsl:value-of select="@Вид"/> №<xsl:value-of select="@НомерДок" /> от <xsl:value-of select="@ДатаДок"/></H3>
   <TABLE><TBODY>
   <xsl:for-each select="*">
     <xsl:choose>
   <xsl:when test="name()='Строка'">
     <xsl:if test="@НомерСтроки='1'">
       <xsl:text disable-output-escaping="yes">&lt;/TBODY&gt; &lt;/TABLE&gt;</xsl:text>
       <xsl:text disable-output-escaping="yes">&lt;TABLE border="1"&gt; &lt;THEAD bgcolor="silver"&gt;</xsl:text>
       <xsl:call-template name="Заголовок"/>
       <xsl:text disable-output-escaping="yes">&lt;/THEAD&gt; &lt;TBODY&gt;</xsl:text>
     </xsl:if>
     <xsl:call-template name="Строка"/>
     </xsl:when>

   <xsl:otherwise>
     <TR>
       <TD><xsl:value-of select="name()" /></TD>
       <TD><xsl:call-template name="Реквизит"/></TD>
     </TR>
     </xsl:otherwise>
     </xsl:choose>
   </xsl:for-each>
   </TBODY></TABLE>
   </P>
 </xsl:template>

 <xsl:template match="Остатки">
   <H3><xsl:value-of select="name()"/> по '<xsl:value-of select="@Склад" />' на <xsl:value-of select="@ДатаОстатков"/></H3>
   <TABLE><TBODY>
     <xsl:for-each select="Запись">
   <TR>
     <xsl:for-each select="*">
       <TD><xsl:call-template name="Реквизит"/></TD>
     </xsl:for-each>
   </TR>
     </xsl:for-each>
   </TBODY></TABLE>
 </xsl:template>

 <xsl:template name="Заголовок">
   <TR>
     <TD>№</TD>
     <xsl:for-each select="*">
   <xsl:text disable-output-escaping="yes">&lt;TD align=center&gt;</xsl:text>
   <xsl:value-of select="name()"/>
   <xsl:text disable-output-escaping="yes">&lt;/TD&gt;</xsl:text>
     </xsl:for-each>
   </TR>
 </xsl:template>

 <xsl:template name="Строка">
   <TR>
     <TD><xsl:value-of select="@НомерСтроки"/></TD>
     <xsl:for-each select="*">
   <xsl:choose>
     <xsl:when test="@dt:dt='float'">
       <xsl:text disable-output-escaping="yes">&lt;TD align=right&gt;</xsl:text></xsl:when>

     <xsl:otherwise>
       <xsl:text disable-output-escaping="yes">&lt;TD&gt;</xsl:text></xsl:otherwise>
   </xsl:choose>
   <xsl:call-template name="Реквизит"/>
   <xsl:text disable-output-escaping="yes">&lt;/TD&gt;</xsl:text>
     </xsl:for-each>
   </TR>
 </xsl:template>

 <xsl:template name="Реквизит">
   <xsl:choose>
     <xsl:when test="@dt:dt='IDREF'">
   <!-- Ссылки раскрываем -->
   <xsl:call-template name="Ссылка">
     <xsl:with-param name="ID"><xsl:value-of select="text()"/></xsl:with-param>
   </xsl:call-template></xsl:when>

     <xsl:when test="@dt='periodic'">
   <!-- Периодические реквизиты - показываем историю (дата:значение) -->
   <xsl:for-each select="*">
     <xsl:text>| </xsl:text><xsl:call-template name="Реквизит"/><xsl:text> |</xsl:text>
   </xsl:for-each>
   </xsl:when>

     <xsl:when test="@dt:dt='float'">
   <!-- числа форматируем (в 'денежном' формате) -->
   <xsl:value-of select="format-number(text(),'# ##0-##')"/>
   </xsl:when>

     <xsl:otherwise>
   <xsl:value-of select="text()"/></xsl:otherwise>
   </xsl:choose>
 </xsl:template>

 <xsl:template name="Ссылка">
   <xsl:param name="ID"/>
   <EM>
   <xsl:for-each select="//*[@ID=$ID]">
     <xsl:choose>
   <xsl:when test="name()='Справочник'">
     <xsl:value-of select="Наименование/text()"/></xsl:when>
   <xsl:when test="name()='Перечисление'">
     <xsl:value-of select="text()"/></xsl:when>
   <xsl:when test="name()='Документ'">
     <xsl:value-of select="@Вид"/> №<xsl:value-of select="@НомерДок" /> от <xsl:value-of select="@ДатаДок"/></xsl:when>
   <!-- xsl:otherwise>
     </xsl:otherwise -->
     </xsl:choose>
   </xsl:for-each>
   </EM>
 </xsl:template>

</xsl:stylesheet>
5 Drac0
 
20.01.12
12:47
Ясно. Спасибо. Поразбираемся.