48642 (588589), страница 3
Текст из файла (страница 3)
2.4 Описание выходной информации
Информация на магнитных носителях создается в виде текстовых файлов в текстовом формате DOS (модифицированная альтернативная кодировка ASCII) с именем DААААААА.txt, где D – префикс, соответствующий данным деклараций юридического лица.
ААААААА – набор букв латинского алфавита и цифр длиной от 1 до 8 символов для файлов, представляемых организациями (предприятиями, учреждениями). Для файлов, представляемых инспекциями МНС РФ, первые четыре символа представляют собой код инспекции по классификатору СОГНИ, а последующие три символа – порядковый номер файла в текущем году. Расширение txt – обязательно.
Файл содержит следующую информацию:
-
информацию, идентифицирующую источник сведений;
-
информацию, идентифицирующую налогоплательщика;
-
информацию, идентифицирующую форму отчетности;
-
информацию с данными отчетности.
Структурными элементами файла с информацией являются:
-
служебная часть;
-
сведения о юридическом лице;
-
разделители.
Разделителями являются:
@@@ - разделитель документов;
=== - конец файла.
Служебная часть файла служит для идентификации информации, содержащейся в файле, и состоит из следующих реквизитов: идентификатор файла; тип информации; наименование отправителя; телефон отправителя; должность отправителя; фамилия, имя, отчество лица, сформировавшего файл; количество документов в файле; версия программы, с помощью которой подготовлен файл.
Файл состоит из строк. В качестве признаков окончания строки используются пары символов “возврат каретки” и “ перевод строки ” (ASCII-коды соответственно 13 и 10, которые формируются при нажатии клавиши [Enter]).
Строка состоит из кода реквизита, символа ":" (двоеточие) и значения реквизита.
Текстовое (символьное) значение может состоять из прописных букв, цифр и любых других символов, за исключением символов "возврат каретки" и "перевод строки" (коды 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 Блок-схема алгоритма
Очистка формы (экрана)
да




нет




filenamec=kp_sd.kodf+skw+sdt periodtxtc=yearc+',м'+alltrim(str(sperio,2))
nrepN=int((sysMonthN-1)/3)+1

да
нет

нет

да
нет
kvartc=str(int((sperio-1)/3)+1,1) filenamec=kp_sd.kodf+kvartc+sdt periodtxtc=yearc+',к'+kvartc
да


YearC=
‘19’+sDT

да
нет
YerHlfC=iif(sPERIO>6,'2','1') KvartC=iif(sPERIO>6,'4','2')
FileNameC=KP_SD.KODF+YerHlfC+sDT
PeriodTxtC=YearC+',К'+KvartC
YearC=
‘20’+sDT


FileNameC=KP_SD.KODF+sDT PeriodTxtC=YearC+',Г'
да
нет


FltDocC=
‘KONTROL=”1”’

FileNameC=''
PeriodTxtC=''
prepN=_sysMonthN




нет
да
Установка фильтра FltDocC на KP_SD




KvartC=str(int((sPERIO-1)/3)+1,1) PeriodTxtC=YearC+',К'+KvartC
да
нет
Открытие временной БД с именем _user+FileNameC в области XXZZYY
YerHlfC=iif(sPERIO>6,'2','1')
KvartC=iif(sPERIO>PeriodTxtC=YearC+',К'+KvartC
да
нет
Обработка Select-запроса
PeriodTxtC=YearC+',Г'
да
нет

да
нет

PeriodTxtC=YearC+',М'+alltrim(str(sPERIO,2))

да
нет


да
нет

flycodC=‘’
flycodC= flykodC+alltrim(str(pok.ykod,3))+';'
KNDTxtC=
KP_SD.KODF
да
нет
Открытие POK в области pok, фильтр1
KNDTxtC= iif(empty (alltrim(KP_SD.KND)) or (alltrim (KP_SD. KND)='0'),'1150000',KP_SD.KND)


Открытие POK, фильтр2
Переход на первую запись базы данных
Добавление данных в БД средствами REPLACE

Добавление записей по Append Blank и REPLACE
Переход на след. запись базы данных
scrC=subdat1 (pok.twd, kp_sgr.rgr)


Очистка формы (экрана)
aPath=alltrim (upper(bPath))
да
нет


Модификация ХХ_РОК средствами REPLACE
typeC=substr(scrC,1,1)
sc1N=at('(',scrC)
sc2N=at(')',scrC)
zpN=at(',',scrC)

нет
нет
да

Фильтр, переход на первую запись базы данных

aPath=aPath+'\'
да



да
нет
lenN=val(substr(scrC,sc1N+1,sc2N-sc1N-1))
decN=0
aDrv=left (aPath,1)
Фильтр на kp_sgr, переход на первую запись базы данных
lenN=val(substr(scrC,sc1N+1,zpN-sc1N-1)) decN=val(substr(scrC,zpN+1,sc2N-zpN-1))



нет
да



да
нет

Присваивание значений Ykodn, kodpn,kodsc,kodgn, rgrn, gnin, FieldnameC




да


нет





Уничтожение
окна wtxt
Переназначение устройства вывода (на экран)


Oпределение окна wtxt


да
да

нет

Активация
окна wtxt


SET-установки и переназначение устройства вывода



isOkAll=
iif(count()>0,
.t., .f.)
3.2 Описание блок – схемы
Лист 1.
Блок А1 – начало модуля Exp2f, реализующего выгрузку документов;
Блок B1 – вывод сообщения ‘Идёт подготовка данных’;
Блок С1 – проверка условия;
Блок D1 – присвоение значения переменной YearC;
Блок Е1 – присвоение значения переменной YearC;
Блок F1 – присвоение значения переменной FltDocC;
Блок G1 – фильтрация по маске FltDocC базы данных KP_SD;
Блок А2 – проверка условия достижения конца файла;
Блок В2 – проверка условия kp_sd.per=‘1’;