Описание XML - форматов

представления данных в формах электронной отчетности

1. Общие понятия

Настоящий документ описывает форматы сообщений, используемые в информационных системах МГД РК по приему, передаче и обработке форм отчетности (ЭФНО, ИС НДС, ИСИД и т.д.).

Документы, описанные в строгом соответствии с приведенными форматами, будут корректно принятыми следующими информационными системами:

-         Система гарантированной доставки сообщений (СГДС);

-         Электронные формы отчетности (ЭФНО);

-         Система ведения реестра плательщиков НДС и реестра счетов-фактуры, выписанных с НДС (ИС НДС);

-         Система учета получателей доходов (ИС ИД);

-         Информационная налоговая интегрированная система (ИНИС РК) и др.

Все информационные системы функционируют независимо друг от друга и поддерживают связь посредством механизма гарантированной доставки сообщений. Все системы поддерживают единый формат сообщений и передачи данных.

2. Описание XML-документа

В документе применяется фиксированный набор элементов, описывающих структуру документа (например: sheet или row), а также набор элементов, несущих смысловую нагрузку при вводе данных в формы отчетности (например: rnn – регистрационный налоговый номер).

Документы описываются с использованием кодировки UTF-8.

Данные, содержащиеся в документе, описываются в соответствии с синтаксисом XML-документа, который применяет для этого понятие Тег.

  Тег состоит из следующих друг за другом в определенном порядке элементов:

·          левой угловой скобки < (такого же, как "меньше чем" символа)

·          необязательного слэша /, который означает, что тег является конечным тегом, закрывающим некоторую структуру.

·          атрибутов. Тег может быть без атрибутов или сопровождаться одним или несколькими атрибутами, например: type = "d400"

·          имени тега, например row или rnn

·          правой угловой скобки > (такой же, как символа "больше чем").

Примеры:

<sheet>

<fio>

<document type = "d400" version = "1" id="" >

Теги документа спарены так, что за открывающим тегом следует соответствующий закрывающий тег, а между ними содержится текст или другие теги, например:

1. <rnn>600900179802</rnn>

2. <document type = "d400" version = "1" id="" >

  <rnn>112800457345</rnn>

<fio>Иванов Иван Иванович</fio>

 </document>

В таких случаях два тега и часть документа, отделенная ими, образуют блок, называемый элементом. Далее, теги называются по их именам, опуская обязательные угловые скобки.

3. Классификация элементов

Описание формы отчетности определяется классификацией элементов. Элементы, используемые в данном документе, подразделяются на три категории:

1.        заголовочные элементы, т.е. элементы, используемые в заголовке документа и содержащие информацию о документе в целом - его уникальный идентификационный номер в кодировке МГД РК.

Так, при описании заголовка электронных форм отчетности применяют следующие обозначения:

<document type = "d400" version = "1" id="" > <!-- документ 400-->

 

</document> 

В данной конструкции элемент document является заголовком документа и в нем содержится информация о наименовании формы отчетности (type = "d400" – описание декларации по Акцизу), версии описания структуры (version = "1"), уникальном номере (id="") (уникальный номер налогоплательщиком не указывается).

В заголовочный элемент включены все формы декларации, приложения и расчеты к ним, представляемые одновременно одним пакетом.

2.        блоковые элементы, включающие элементы, которые специфицируют структуру документа:

Различают следующие элементы:

1)       Элемент <form_номер формы> … </form_номер формы>

Например, form_400000100004 включает в себя описание всех страниц формы 400.00 – Акцизы, т.е. 400.00. стр.01, и 400.00. стр.02. Номер формы соответствует уникальному идентификационному номеру  первого листа формы в кодировке МГД РК.

Начальный тег элемента form_номер формы указывается сразу после заголовка документа, а конечный после завершения описания всех элементов формы.

2)       Отдельную страницу формы описывает следующий элемент:

<page_номер страницы> … </page_номер страницы>

Номер страницы соответствует уникальному идентификационному номеру страницы в кодировке МГД РК. Например, page_400000100004 описывает страницу 1 формы 400.00 декларации Акцизы. Все элементы page_номер страницы включаются в элемент form_номер декларации. Для одностраничных форм начальный тег элемента page_номер страницы указывается сразу после начального тега form_номер декларации, а конечный после завершения описания всех элементов страницы.

Внутри страницы page_номер страницы описываются теги, содержащие данные страницы декларации.

3)       Элемент

<sheet> … </sheet>

используется для описания многостраничных форм.

Многостраничная форма - форма, в которой отсутствует четкая нумерация и идентификация строки внутри страницы и количество страниц зависит только от количества строк заносимых в них данных. Например, количество строк в реестрах счетов-фактур равно количеству выписанных счетов-фактур и соответственно количество страниц формы зависит от количества строк. Количество элементов sheet в форме не ограничено.

Для многостраничных форм элементы page_номер страницы заключаются в начальный и конечный теги элемента sheet.

Таким образом, содержанием элемента sheet является описание страниц многострочных форм:

  <sheet> <!—страница 1--> 

 <page_307000000016> <!-- лист 307.00.A--> …

 

</page_307000000016>

< page_307000000023> <!-- лист 307.00.В-->

 </page_307000000023>

 </sheet>

<sheet> <!—страница 2--> 

 <page_307000000016> <!-- лист 307.00.A--> …

 

 </page_307000000016>

< page_307000000023> <!-- лист 307.00.В-->

… 

 </page_307000000023>

 </sheet> 

4)       Элемент

<row></row>

используется для описания повторяющихся строк многостраничных форм.

При описании многостраничных форм элементом row выделяются описания строки многострочных форм. Количество тегов row точно соответствует количеству строк на форме. Например:

<row>

 <a>…</a>

 <b>…</b>

</row>

<row>

 <a>…</a>

 <b>…</b>

</row>

5)       Для объединения строк в странице в один блок используется элемент

<rowset> … </rowset>

Для многостраничных форм элементы row заключаются в начальный и конечный теги элемента rowset.

 3.  текстовые элементы.

В текстовые элементы заносятся данные форм отчетности.

Например:

<rnn> … </rnn>  РНН

<p_month> … </p_month>   период Месяц

<p_quarter>… </p_quarter> период Квартал

<p_year> … </p_year период Год

Данные форм отчетности в элементах состоят из определенного количества символов. Различают поля, в которых необязательно заполнение всех символов. Например, для ввода фамилии налогоплательщика или наименования предприятия в элементе отводится две строки по 29 и 33 символа  соответственно. Однако при заполнении данных вводится только конкретное количество символов, соответствующее наименование предприятия (ФИО), но не более 62 знаков.

В то же время, при внесении данных, у которых строго определенно количество составляющих их символов необходимо обязательно вводить все значения - например, при вводе РНН в документе должны обязательно вводиться 12 символов. При вводе порядковых номеров, номеров серий документов также необходимо заполнять каждое отведенное под значение поле. Таким образом, если для введения номера строки многострочной формы в декларации отводится три символа, то необходимо вводить трехзначное число. Например, для реестра счетов фактур № 5 в поле А№ должно вводиться значение 005 (верно), а не 5 (не верно), или для Серии №00043, должно вводиться значение 00043 (верно), а не 43 (не верно). 

 

Примечания: 1. Для формирования тегов и атрибутов обязательно используются символы нижнего регистра.

 2. Комментарии в формы не вводятся

4. Примеры описания документов

1. Форма отдельного листа декларации

<document type="d200" version="" id=""> <!-- наименование документа -->

 <form_12345678> <!-- форма 1-->

 <page_12345678> <!--страница 1 формы 1-->

 <rnn >...</rnn> <!-- элемент -->

 <name>...</name> <!-- элемент -->

  

</page_12345678>

 <page_12345679> <!--страница 2 формы 1-->

 <rnn >...</rnn

 <name>...</name> 

 

 </page_12345679>

 </form_12345678>

<form_12345611> <!-- форма 1-->

 <page_12345611> <!--страница -->

 <rnn >...</rnn> <!-- элемент -->

 <name>...</name> <!-- элемент -->

 

 </page_12345611>

 </form_12345611>

 

</document>

2. Многострочная форма

<document type="d307" version="" id="">

 <form_12345678> <!-- форма -->

<sheet> <!--указатель многострочной формы-->

 <page_12345678> <!-- страница 1  -->

 <rnn>...</rnn> <!-- элемент -->

 <name>...</name>

<rowset>

 <row> <!-- указатель повторяющейся строки-->

 <a>...</a> <!-- элемент  -->

 <b>...</b>

 </row>

<row> <!-- указатель повторяющейся строки-->

 <a>...</a> <!-- элемент  -->

 <b>...</b>

 </row>

</rowset>

 </page_12345678>

 <page_12345679> <!-- страница 2 -->

 <rnn>...</rnn> <!-- элемент -->

 <name>...</name>

<rowset>

 <row> <!-- указатель повторяющейся строки-->

 <a>...</a> <!-- элемент  -->

 <b>...</b>

 </row>

<row> <!-- указатель повторяющейся строки-->

 <a>...</a> <!-- элемент  -->

 <b>...</b>

 </row>

</rowset>

 </page_12345679>

 </sheet>

 

 </form_12345678>

</document>

3. Смешанная форма

<document type="d307" version="" id="">

 <form_12345678> <!-- форма -->

  <page_12345678> <!—страница 1-->

 <rnn >...</rnn> <!-- элемент -->

 <name>...</name> <!-- элемент -->

 

 <page_12345678>

  <page_12345622> <!—страница 2-->

 <rnn >...</rnn> <!-- элемент -->

 <name>...</name> <!-- элемент -->

 

 <page_12345622>

 </form_12345678>

 <form_12345679> <!-- форма  -->

<sheet> <!--указатель многострочной формы-->

 <page_12345679> <!-- страница 1  -->

 <rnn>...</rnn> <!-- элемент -->

 <name>...</name>

<rowset>

 <row> <!-- указатель повторяющейся строки-->

 <a>...</a> <!-- элемент  -->

 <b>...</b>

 </row>

<row> <!-- указатель повторяющейся строки-->

 <a>...</a> <!-- элемент  -->

 <b>...</b>

 </row>

</rowset>

 </page_12345679>

 <page_12345677> <!-- страница 2 -->

 <rnn>...</rnn> <!-- элемент -->

 <name>...</name>

<rowset>

 <row> <!-- указатель повторяющейся строки-->

 <a>...</a> <!-- элемент  -->

 <b>...</b>

 </row>

<row> <!-- указатель повторяющейся строки-->

 <a>...</a> <!-- элемент  -->

 <b>...</b>

 </row>

</rowset>

 </page_12345677>

 </sheet>

 

 

 </form_12345679>

</document>