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