Строка состоит из кода реквизита, символа ":" (двоеточие) и значения реквизита.
Текстовое (символьное) значение может состоять из прописных букв, цифр и любых других символов, за исключением символов "возврат каретки" и "перевод строки" (коды ASCII соответственно 13 и 10, которые формируются при нажатии клавиши “Enter”), ":" (двоеточие) и "," (запятая).
Числовое значение может состоять только из цифр (в том числе и с лидирующими нулями) и может включать десятичную точку и знак "-" (минус) для отрицательных чисел.
Значение типа ДАТА имеет специальный формат для представления дат в виде ДД.ММ.ГГГГ, где ДД – номер дня, ММ – номер месяца, ГГГГ – цифры года.
Каждый реквизит записывается в отдельной строке. Признак окончания строки – пара символов с кодами ASCII соответственно 13 и 10. Код реквизита отделяется от значения знаком ":" (двоеточие). Пробелы между ними не допускаются.
Реквизиты, не имеющие значений, могут быть опущены при формировании файла (кроме обязательных реквизитов, которые заполняются нулевыми значениями).
В состав данных включаются общие реквизиты, приведенные в настоящем документе и реквизиты (показатели) конкретных форм, состав которых разрабатывается и утверждается для сдачи отчетности по каждому отчетному периоду.
Последовательность строк файла следующая:
Реквизиты, идентифицирующие источник информации;
Начало документа 1;
Реквизиты, идентифицирующие налогоплательщика 1;
Реквизиты, идентифицирующие форму отчетности 1 за конкретный период;
Реквизиты формы отчетности 1;
Реквизиты, идентифицирующие форму отчетности 2 за конкретный период;
Реквизиты формы отчетности 2;
Конец документа 1;
Начало документа 2…
Реквизиты, идентифицирующие налогоплательщика 2;
…
Конец документа 2;
Конец файла.
Все данные о налоговых декларациях налогоплательщика помещаются после идентифицирующих его реквизитов, а все данные конкретной формы отчетности располагаются после реквизитов, идентифицирующих форму. Порядок следования форм в пределах данных по одному налогоплательщику, а также порядок следования реквизитов в пределах одной формы отчетности не существенен. Для конкретных форм должна соблюдаться уникальность идентификаторов в пределах одной формы.
Описание выходного документа (текстового файла) дано в таблице 2.
Информация выходного файла дана в приложении Б.
Таблица 2 – Описание выходной информации
Название документа | Назначение документа | Ключевые признаки | Периодичность составления | Количество | Куда передается | ||
экз. | строк на листе | символов в строке | |||||
file.txt | Предоставление в ГНИ информации на магнитном носителе | Имя файла, определяемое по указанным выше правилам | 1 раз в квартал | 1 | перем. | перем. | в ГНИ |
3 Алгоритм решения задачи
3.1 Блок-схема алгоритма
3.2 Описание блок – схемы
Лист 1.
Блок А1 – начало модуля Exp2f, реализующего выгрузку документов;
Блок B1 – вывод сообщения ‘Идёт подготовка данных’;
Блок С1 – проверка условия;
Блок D1 – присвоение значения переменной YearC;
Блок Е1 – присвоение значения переменной YearC;
Блок F1 – присвоение значения переменной FltDocC;
Блок G1 – фильтрация по маске FltDocC базы данных KP_SD;
Блок А2 – проверка условия достижения конца файла;
Блок В2 – проверка условия kp_sd.per=‘1’;
Блок С2 – проверка условия kp_sd.per=‘2’;
Блок D2 – проверка условия kp_sd.per=‘3’;
Блок Е2 – проверка условия kp_sd.per=‘4’;
Блок F2 – присвоение значения переменным;
Блок G2 – вызов процедуры getmper с передачей параметров;
Блок А3 – очистка формы (экрана)
Блок В3 – присвоение значения переменным;
Блок С3 – присвоение значения переменным;
Блок D3 – присвоение значения переменным;
Блок Е3 – присвоение значения переменным;
Блок F3 – проверка условия;
Блок G3 – вызов процедуры getmper с передачей параметров.
Лист 2.
Блок А1 – проверка условия period=‘2’;
Блок В1 – проверка условия period=‘3’;
Блок С1 – проверка условия period=‘4’;
Блок D1 – присвоение переменной PeriodTxtC значения;
Блок Е1 – присвоение переменной flycod значения;
Блок F1 – проверка условия;
Блок G1 – открытие БД с оконечным префиксом &&pok и фильтрация данных открываемой базы данных;
Блок А2 – присвоение переменным значений;
Блок В2 – присвоение переменным значений;
Блок С2 – присвоение переменным значений;
Блок D2 – проверка условия достижения конца файла;
Блок Е2 – присвоение переменной flycod значения;
Блок F2 – открытие БД с оконечным префиксом &&pok и фильтрация данных открываемой базы данных;
Блок G2 – переход на первую запись базы данных;
Блок А3 – открытие временной БД с переменным именем;
Блок В3 – обработка select-запроса к базе данных;
Блок С3 – проверка условия достижения конца файла;
Блок D3 – проверка условия существования UseKnd;
Блок Е3 – присвоение переменной значения;
Блок F3 – присвоение значений переменным;
Блок G3 – добавление записей в базу данных средствами APPEND BLANK и ее модификация посредством REPLACE (множественное изменение полей);
Лист 3
Блок А1 – переход на следующую запись базы данных и
завершение цикла обработки по активной базе;
Блок В1 – очистка формы (экрана);
Блок С1 – модификация БД с оконечным префиксом &&pok;
Блок D1 – фильтрация с возвратом на первую запись БД;
Блок Е1 – проверка условия достижения конца файла;
Блок F1 – фильтрация с возвратом на первую запись БД;
Блок G1 – проверка условия достижения конца файла;
Блок А2 – присвоение значений переменным;
Блок В2 – проверка условия;
Блок С2 – присвоение значений переменным;
Блок D2 – проверка условия zpN=0;
Блок Е2 – присвоение значения переменной;
Блок F2 – присвоение значений переменным;
Блок G2 – присвоение значений переменным
Блок А3 – добавление записей в базу данных средствами APPEND BLANK и ее модификация посредством REPLACE (множественное изменение полей);
Блок В3 – присвоение значения переменной;
Блок С3 – проверка условия;
Блок D3 – присвоение значения переменной;
Блок Е3 – присвоение значения переменной;
Блок F3 – проверка наличия диска в дисководе;
Блок G3 – выдача предупреждающего сообщения ‘Вставьте диск в дисковод’.
Лист 4
Блок А1 – проверка существования aDrv (устройства вывода);
Блок В1 – выдача сообщения ‘Неправильный путь к файлу’;
Блок С1 – выдача сообщения ‘Идет подготовка файла’;
Блок D1 – определение окна wtxt;
Блок Е1 – активация окна wtxt;
Блок F1 – SET-установки и переназначение устройства ввода вывода (экран –> файл);
Блок G1 – вывод информации в файл (печатью по ?);
Блок А2 – вызов процедуры AddDoc, реализующей добавление реквизитов документа в выгружаемый файл;
Блок В2 – уничтожение окна wtxt;
Блок С2 – переназначение устройства ввода вывода (файл –> экран);
Блок D2 – проверка состояния переменной-флага isOkAll (возвращаемой из процедуры AddDoc);
Блок Е2 – вывод сообщения ‘Нет передаваемых показателей’;
Блок F2 – вывод сообщения ‘Выполняется копирование’;
Блок G2 – вызов процедуры WinToDoc, осуществляющей конвертацию текстовых показателей;
Блок А3 – вывод сообщения ‘Выгрузка завершена’;
Блок В3 – выход из модуля Exp2f;
Блок С3 – начало процедуры AddDoc;
Блок D3 – проверка достижения конца файла;
Блок Е3 – вывод сообщения ‘Идет подготовка данных’;
Блок F3 – установка флажка isOkAll (по условию наличия записей);
Блок G3 – выход из процедуры AddDoc.
4 Машинная реализация задачи
4.1 Характеристика технических средств
Данный проект реализован с помощью ПЭВМ IBM PC/AT-совместимого компьютера. Данная ПЭВМ создана на основе процессора AMD AthlonXP-1700 и состоит из следующих компонентов:
- процессор;
- оперативное запоминающее устройство (ОЗУ);
- постоянное запоминающее устройство (ПЗУ);
- накопитель на жёстком магнитном диске (НЖМД, «винчестер»);
- накопитель на гибких магнитных дисках (НГМД);
- устройства ввода информации (клавиатура, «мышь»);
- устройства вывода информации (дисплей).
Процессор является основным устройством ЭВМ и предназначен для непосредственной обработки информации, которая поступает от различных внешних и внутренних устройств ПЭВМ.
Процессор AthlonXP разработки компании AMD имеет следующие технические характеристики:
- разрядность по ширине данных 64 бит
- тактовая частота 1460 MGz
- максимальный объем ОЗУ 128 Mb
- кэш-память 2х64 Kb
- быстродействие 1700 MGz (~1460)
ОЗУ предназначено для временного хранения информации и имеет объём 256 Mb.
ПЗУ предназначено для хранения неизменяемой информации, то есть программ типа BIOS (basic input-output system – базовая система ввода-вывода), которые позволяют связать компоненты компьютера в единое целое.
Процессор, модули ОЗУ и ПЗУ находятся на материнской плате компьютера. Данная материнская плата создана на основе чипсета VIA.
Накопитель на жестком диске (винчестер, HDD) предназначен для постоянного хранения информации, используемой при работе с компьютером: программ операционной системы, часто используемые пакеты прикладных программ, редакторов документов, трансляторов с языков программирования и т.д. Наличие винчестера значительно повышает удобство работы с компьютером.