I. При описании синтаксиса сообщения и его элементов используются следующие металингвистические конструкции:
::= - метасимвол, означающий "есть по определению";
< > - метасимволы, используемые для выделения элементов металингвистической структуры;
| - метасимвол, означающий возможность выбора среди нескольких вариантов значений элемента металингвистической структуры;
[ ] - метасимволы, означающие необязательность элемента металингвистической структуры;
{ } - метасимволы, означающие использование металингвистической структуры один и более раз.
К числу синтаксических ограничений относится также ряд дополнительных требований к непротиворечивости представленной в файле информации. Все дополнительные требования явно сформулированы в п.2.3.
Например, при использовании метасимвола '|' для описания нескольких возможных вариантов структуры файла могут быть указаны условия, в случае выполнения которых правильным является единственный вариант. Эти условия называются условиями выбора и могут быть проверены на основе данных, присутствующих в файле (без привлечения дополнительных источников информации).
В таких случаях используются обозначения:
<структура>::=<вариант1>|?УсловиеВыбора<вариант2>
Если условие 'УсловиеВыбора' выполнено, то <структура> принимает значение <вариант1>, иначе - <вариант2>.
II. При описании синтаксиса сообщения используются следующие основные понятия.
<слово>::=<число>|<дата>|<текст>|<код>|<специальное слово>| | |
<пустое выражение> | |
<словосочетание>::=<слово1>,<слово1>|<слово1>,<словосочетание> | |
<слово1>::=<число>|<дата>|<текст1>|<текст2>|<код> |
Текст (<текст>) представляет собой непустую последовательность символов, в качестве которых используются прописные (заглавные) русские и латинские буквы, цифры, а также любые другие символы таблицы ASCII, за исключением символов "возврат каретки" и "перевод строки" (коды ASCII соответственно 13 и 10). Первый символ текста должен быть отличен от пробела. В том случае, когда текстовое значение встречается в составе словосочетания, возможны дополнительные ограничения на вид текста. Для выделения этих возможностей используются обозначения <текст1>, <текст2>.
Число состоит только из цифр (в том числе и с лидирующими нулями), причем может включать десятичную точку и знак "-" (минус) для отрицательных чисел.
Дата представляется в виде <день>.<месяц>.<год>, где <день> - две цифры, соответствующие номеру дня в месяце, <месяц> - две цифры, соответствующие номеру месяца в году, <год> - четыре цифры года.
Код определяется как слово (последовательность любых символов, включая пробелы и знаки препинания), встречающееся в некотором множестве слов. Как правило, такое множество задается в виде таблицы. В частности, код может быть задан путем указания графы определенного справочника - в таком случае код должен совпадать с каким-либо значением из этой графы. Сравнение кода со словами из соответствующего множества выполняется без учета регистра.
<русская буква> - прописная русская буква | |
<латинская буква> - прописная латинская буква | |
<ц> - цифра | |
<пробел> - символ пробела | |
<другой символ> - символ, имеющий код ASCII, отличный от 13 и 10, и не являющийся ни цифрой, ни буквой, ни пробелом | |
<пустое выражение> - выражение, не содержащее ни одного символа | |
<буква>::=<русская буква>|<латинская буква> | |
<символ>::=<буква>|<ц>|<пробел>|<другой символ> | |
<текст>::=(<буква>|<ц>|<другой символ>)[{<символ>}]| | |
<текст1>::=((<буква>|<ц>)[{<буква>|<ц>|<пробел>|-|/}])| | |
<пустое выражение> | |
____________________________________________________________________ С 1 июля 2007 года обозначение "<текст1>" формируется в соответствии с приложением к приказу ФНС России от 13 апреля 2007 года N ММ-3-13/230@ - см. пункт 2 приказа ФНС России от 13 апреля 2007 года N ММ-3-13/230@. - Примечание изготовителя базы данных. ____________________________________________________________________ | |
<текст2>::=(<буква>[{<буква>|<пробел>|-}])| | |
<пустое выражение> | |
<число>::=[-]{<ц>}[.{<ц>}]|[-].{<ц>} | |
<дата>::=<день>.<месяц>.<год> | |
<год>::=<ц><ц><ц><ц> | |
<месяц>::=01|02|03|04|05|06|07|08|09|10|11|12 | |
<день>::=<ц><ц>, принимает значения от 01 до 28, 29, 30 или 31 - в зависимости от значений <месяц> и <год>; | |
<часы>::=<ц><ц> - принимают значения от 00 до 23; | |
<минуты>::=<ц><ц> - принимают значения от 00 до 59; | |
<секунды>::=<ц><ц> - принимают значения от 00 до 59. |
III. При описании синтаксиса сообщения используются следующие некоторые специальные виды слов, используемых в качестве значений реквизитов.
<специальное слово>::= | <идентификатор файла>| | ||||
<идентификатор отправителя>| | |||||
<идентификатор документа>| | |||||
<ИННЮЛ>|<КПП>|<ИННФЛ>|<ОГРН> | |||||
<идентификатор файла>::= | <идентификатор отправителя><год> | ||||
<месяц><день><часы><минуты> | |||||
<секунды> | |||||
<идентификатор документа>::= | <идентификатор отправителя> | ||||
<год><номер документа> | |||||
<номер документа>::=<8ц> | |||||
<идентификатор отправителя>::= | <идентификатор отправителя ЮЛ>| | ||||
<идентификатор отправителя ФЛ>| | |||||
<идентификатор отправителя ИМНС> | |||||
<идентификатор отправителя ЮЛ>::= | <ИННЮЛ><2*><КПП>| | ||||
<ИННЮЛ><11*> | |||||
<идентификатор отправителя ФЛ>::=<ИННФЛ><9*> | |||||
<идентификатор отправителя ИМНС>::=<4ц><17*> | |||||
<ИННЮЛ>::=<10ц> | |||||
<КПП>::=<9ц> | |||||
<ИННФЛ>::=<12ц> | |||||
<ОГРН>::=<13ц> |
<2*>, <9*>, <11*>, <17*> и т.п.- последовательности из соответствующего числа подряд идущих символов *, например <2*>::=**.
<4ц>, <8ц>, <9ц>, <10ц>, <12ц> и т.п.- последовательности из соответствующего числа подряд идущих цифр (<ц>).