В данном разделе формулируются синтаксические требования к внутренней структуре файла (к передаваемому в файле сообщению). Передаваемое сообщение, не удовлетворяющее этим требованиям, считается синтаксически некорректным. Файл, представленный в виде синтаксически некорректного сообщения, не может быть принят в электронном виде.
Файл имеет наименование строго определенного вида и включает служебную и информационную части. Служебная часть содержит данные об отправителе и получателе сообщения. Информационная часть включает сведения о счетах.
Состав сведений фрагмента "Служебная часть" определяется технологией обработки информации в электронном виде в рамках автоматизированной системы АИС "Налог". Состав сведений фрагмента "Информационная часть" определяется соответствующим сообщением.
Файл состоит из строк, содержащих реквизиты либо разделители.
Реквизит представляет собой неделимую в смысловом отношении конструкцию, соответствующую, как правило, одной заполняемой позиции (показателю). Наименование реквизита соответствует назначению (наименованию) заполняемой позиции.
Разделителями, используемыми в файле, являются:
### - конец блока;
@@@ - конец фрагмента (конец служебной или информационной частей сообщения);
=== - конец файла.
Каждый реквизит или разделитель записывается в отдельной строке. Признаком окончания строки служит пара символов с кодами ASCII 13 и 10, расположенных в указанном порядке. Эта пара символов ниже обозначается EOL.
При описании синтаксиса сообщения и его элементов используются следующие металингвистические конструкции:
::= - метасимвол, означающий "есть по определению";
< > - метасимволы, используемые для выделения элементов металингвистической структуры;
| - метасимвол, означающий возможность выбора среди нескольких вариантов значений элемента металингвистической структуры;
[ ] - метасимволы, означающие необязательность элемента металингвистической структуры;
{ } - метасимволы, означающие использование металингвистической структуры один и более раз.
К числу синтаксических ограничений относятся также ряд дополнительных требований к непротиворечивости представленной в файле информации.
Например, при использовании метасимвола '|' для описания нескольких возможных вариантов структуры файла могут быть указаны условия, в случае выполнения которых правильным является единственный вариант. Эти условия называются условиями выбора и могут быть проверены на основе присутствующей в файле информации (без привлечения дополнительных источников).
В таких случаях используются обозначения:
<структура>::=<вариант1> | ?УсловиеВыбора <вариант2>
Если условие 'УсловиеВыбора' выполнено, то <структура> принимает значение <вариант1>, иначе - <вариант2>.
При описании синтаксиса сообщения используются следующие основные понятия:
<слово>::=<число>|<дата>|<текст>|<код>|<специальное слово>|
<пустое выражение>
<словосочетание>::=<слово1>,<слово1>|<слово1>,<словосочетание>
<слово1>::=<число>|<дата>|<текст0>|<текст1>|<текст2>|<код>
Текст (<текст>) представляет собой непустую последовательность символов, в качестве которых используются прописные (заглавные) русские и латинские буквы, цифры, а также любые другие символы таблицы ASCII, за исключением символов "возврат каретки" и "перевод строки" (коды ASCII соответственно 13 и 10). Первый символ текста должен быть отличен от пробела. В том случае, когда текстовое значение встречается в составе словосочетания, возможны дополнительные ограничения на вид текста. Для выделения этих возможностей используются обозначения <текст0>, <текст1>, <текст2>.
Число состоит только из цифр (без лидирующих нулей), причем может включать десятичную точку и знак "-" (минус) для отрицательных чисел.