5 Контрольный пример

 

В качестве входной информации при выполнении программы Exp2f.prg используются базы данных, описание которых дано в пункте 3.3 в таблице 2.

Входная информация дана в приложении А.

На основании разработанного алгоритма, представленного в виде блок-схемы в пункте 4.1. и описания в пункте 4.2. разработан модуль выгрузки данных в текстовом формате комплекса «Налогоплательщик ЮЛ» для государственной налоговой инспекции, листинг которого показан в приложении В.

В результате работы программы формируется выходная информация, описание которой дано в пункте 3.4. в таблице 2, структура и информация выходного текстового файла дана в приложении Б.

Полученные выходные данные доказывают работоспособность программы и являются контрольным примером.


6 Экономическое обоснование программы

 

Применение персональных компьютеров на различных предприятиях и учреждениях позволяет совершенно по-новому организовать процесс решения множества экономических задач, в том числе и задачу выгрузки данных в текстовом формате комплекса «Налогоплательщик ЮЛ» для государственной налоговой инспекции. Это приводит к уменьшению административно-управленческих расходов, повышению производительности труда, сокращению сроков выдачи документов, что в свою очередь влияет на эффективность работы предприятия по расчетам с органами налоговой инспекции. На решение этой задачи без применения средств вычислительной техники расчетный отдел и отдел бухгалтерского учета затрачивают массу дефицитного времени, а компьютер призван обеспечить разгрузку этих подразделений от рутинной работы.

Входной информацией для этой задачи являются базы данных, хранящие информацию о введенных документах, получаемых в процессе работы любого предприятия или организации.

Выходная информация представляет собой текстовый файл специального формата, который подлежит передаче в государственную налоговую инспекцию.

Экономическая эффективность – это оценка результатов, выполнение различных действий, направленных на изменение способа, скорости и качества обслуживания клиентов.

Экономический эффект – это прежде всего экономия денежных средств предприятия, которая может быть достигнута за счет:

высвобождения штатных сотрудников для выполнения других заданий;

снижения затрат на транспортировку информации между подразделением и аппаратом;

снижение риска пень и штрафных санкций со стороны налоговой инспекции, имеющих место быть в результате несвоевременных выплат и предоставления отчётности.

Наиболее распространенным методом определения экономической эффективности является метод сравнения. Его сущность заключается в сопоставлении трудоемкости и себестоимости выполненных работ с аналогичными показателями предыдущих периодов, то есть экономическую эффективность определяют по совокупности высвобож-денного времени, работников, совершенствованию способов обработки информации путём применения более современных методов обработки.

Выделяются два вида показателей эффективности: прямая (непосредственно снижает трудовые и стоимостные затраты) и косвенная (косвенно улучшает учет за счет усовершенствований в работе сотрудников бухгалтерии).

Основным показателем прямой эффективности является снижение стоимостных и трудовых затрат на расчётные работы. В основе выявления прямой эффективности лежит принцип сопоставления затрат при различных способах решения.

Показателями прямой экономической эффективности являются:

абсолютное снижение трудовых и стоимостных затрат, показывающих, на сколько времени и на какую сумму снизились затраты;

относительное снижение трудовых и стоимостных затрат, показывающее, какая часть затрат при предполагаемом варианте экономится;

индекс роста производительности труда, показывает, во сколько раз произошло изменение.

Косвенная эффективность имеет скрытую форму и проявляется в улучшении качества управления объектом, может быть определена экспертным путем.

Косвенная эффективность позволяет оценить влияние задачи на различные стороны деятельности через качественные факторы.

Из-за отсутствия единой методики расчета прямой эффективности программных продуктов, внедряемых на персональном компьютере, в данном дипломном проекте рассматривается косвенная эффективность.

Косвенная эффективность автоматизации задачи «Выгрузка данных в текстовом формате комплекса «Налогоплательщик ЮЛ» для государственной налоговой инспекции» заключается в следующем:

внедрение безбумажной технологии обработки информации сильно сокращает расходы на покупку бумаги и других расходных материалов;

использование разработанной программы позволяет упорядочить большие объёмы информации для удобного использования;

возможность оперативного контроля за достоверностью информации, уменьшается число возможных ошибок, при генерировании производных данных;

сразу после ввода, данные могут участвовать в различных операциях;

возможность быстрого получения необходимых отчетов;

необходимая информация может быть быстро найдена (в том числе с помощью контекстного поиска), поиск которой в обычной папке с документами затруднен;

существенная экономия времени и людских ресурсов при выполнении операций, связанных с обработкой информации;

позволяет быстро и в наиболее подходящем для конкретного человека виде просмотреть данные, что повышает их восприятие.

Все изложенные выше преимущества автоматизации задачи выгрузки данных в текстовом формате на сегодняшний день оценены не только рядовыми пользователями, но и властными структурами, особенно это касается возможности контроля и поиска информации. ГНИ заинтересована иметь единую, электронную базу по всем лицам – налогоплательщикам, так как наличие такой базы существенно усложняет процесс уклонения от уплаты налогов (сокрытие, занижение доходов, повторное использование одноразовых льгот и т.д.)

Поэтому 15 июня 1998 года была принята очередная редакция инструкции государственной налоговой службы Российской Федерации №35 от 29 июня 1995года. Согласно которой, с 01 марта 1999 года все предприятия с численностью работающих свыше 100 человек обязаны предоставлять данные о доходах своих работников в налоговую инспекцию на магнитных носителях, причем в строго оговоренном формате.

Перечисленные факторы эффективности автоматизации задачи «Выгрузка данных в текстовом формате комплекса «Налогоплательщик ЮЛ» для государственной налоговой инспекции» приводят к уменьшению расходов на обработку экономической информации, повышению производительности труда, что в свою очередь влияет на эффективность работы и является основанием для анализа деятельности.

Косвенный эффект позволяет оценить влияние задачи на различные стороны деятельности данного объекта. Проявляется он через качественные факторы.

Режимы работы выбираются с таким расчетом, чтобы в своей совокупности они обеспечивали максимальную эффективность задачи.

При этом ускоряется не только процесс поиска и обработки данных, но что немаловажно, повышается контроль за качеством выполненной работы.

Внедрение новых информационных технологий существенно влияет на характер и способы обслуживания. Таким образом, при наименьших затратах труда и времени, осуществляется оперативный и безошибочный учет и поиск информации. Из этого следует целесообразность внедрения данной задачи на ПЭВМ.


Список литературы

 

1.   Автоматизированное рабочее место в системе управления предприятием. Сборник научных трудов, - Ленинград, 1989.

2.   В.В.Шураков. Автоматизированное рабочее место для статической обработки данных, 1990.

3.   И.Л.Кантарь. Автоматизированные рабочие места управленческого аппарата, 1990.

4.   Данилевский Ю.Г., Петухов ИА., Шибанов B.C. Информационная технология в промышленности. Л.: Машиностроение, 1988, 284с.

5.   П.И. Камышанов. Практическое пособие по бухгалтерскому учету:- Издание третье, дополненное и переработанное - Москва: ООО «МЕДпресс»; - Элиста: АПП «Джангар», 1998. – 528 с.

6.   А.А. Попов Программирование в среде СУБД FoxPro 2.0. Построение систем обработки данных. - М.: Издательство Март, 1996--352с.: илл.

7.   Глушаков С.В., Ломотько Д.В.; Базы данных. - Харьков: Издательство «Фолио», 2001

8.   Нортон П.; Персональный компьютер. Аппаратно-программная реализация. Книга 1. - М: Издательство «АСТ», 1999


Приложение А

 

(рекомендуемое)

Входная информация

Structure for database: C:\OF\KP_SPP.DBF

Number of data records: 49

Date of last update : 04/14/04

Code Page : 866

Field Field Name Type Width Dec Index Collate

1 KODF Character 2

2 KODP Numeric 2

3 NAIM Character 35

4 WDATA Date 8

5 PRN Numeric 1

** Total ** 49

Structure for database: C:\OF\SPP.DBF

Number of data records: 69

Date of last update : 04/14/04

Code Page : 866

Field Field Name Type Width Dec Index Collate

1 KODF Character 2

2 KODP Numeric 2

3 NAIM Character 35

4 WDATA Date 8

5 PRN Numeric 1

** Total ** 49

Structure for database: C:\OF\KP_SGR.DBF

Number of data records: 347

Date of last update : 04/14/04

Code Page : 866

Field Field Name Type Width Dec Index Collate

1 KODF Character 2

2 KODP Numeric 2

3 KODGR Numeric 2

4 RGR Numeric 2

5 NAIM Character 50

6 NAIMP Character 35

7 WDATA Date 8

8 GO5N Numeric 2

9 PP Character 1

10 CHVGR Numeric 2

11 CHRGR Numeric 2

12 GNI Numeric 1

13 GNI_IS Numeric 1

** Total ** 111

Structure for database: C:\OF\SGR.DBF

Number of data records: 448

Date of last update : 04/14/04

Code Page : 866

Field Field Name Type Width Dec Index Collate

1 KODF Character 2

2 KODP Numeric 2

3 KODGR Numeric 2

4 RGR Numeric 2

5 NAIM Character 50

6 NAIMP Character 35

7 WDATA Date 8

8 GO5N Numeric 2

9 PP Character 1

10 CHVGR Numeric 2

11 CHRGR Numeric 2

12 GNI Numeric 1

13 GNI_IS Numeric 1

** Total ** 111

Structure for database: C:\OF\K029.DBF

Number of data records: 51

Date of last update : 04/16/04

Code Page : 866

Field Field Name Type Width Dec Index Collate

1 C257 Character 4

2 C258 Character 15

3 K Numeric 10

** Total ** 30

Structure for database: C:\OF\SPUTR.DBF

Number of data records: 2

Date of last update : 05/22/02

Code Page : 866

Field Field Name Type Width Dec Index Collate

1 RAZDEL Numeric 3

2 TAXCODE Character 9

3 NDAT Date 8

4 PRUT Character 1

5 PARAG Numeric 2

** Total ** 24


ИНФОРМАЦИЯ БАЗЫ ДАННЫХ KP_SPP.DBF

Record# KODF KODP NAIM WDATA PRN

1 sy 1 Сведения об адвокате 01/01/01 0

2 sy 2 Данные о платежах 01/01/01 0

3 sp 1 Справка  01/01/01 0

4 sp 2 Расчет авансовых платежей 01/01/01 0

5 sp 3 Справочно (не подл.налогообложению) 01/01/01 0

6 sk 1 Налоговая декларация по единому соц 01/01/01 0

7 sk 2 Расчет суммы налога 01/01/01 0

8 sk 3 Справочно 01/01/01 0

9 sl 1 II.Расчет для заполн. стр.300 и 400 01/01/01 0

10 sm 1 III.Расчет для заполн.стр.300 и 400 01/01/01 0

11 qc 1 Расчет 01/01/02 0

12 qg 1 II.Расчет для заполн. с.0300 и 0400 01/01/02 0

13 qg 2 Расчет усл.на право прим.регр.став. 01/01/02 0

14 qb 1 Сведения о налогоплательщике 01/01/02 0

15 qb 2 Налоговая декларация 01/01/02 0

16 qf 2 Расчет по страх.взносам 01/01/03 0

17 qf 3 Уплата страх.взносов на ОПС 01/01/03 0

18 qf 1 Сведения о налогоплательщике 01/01/03 0

19 qd 1 Расчет для заполнения строки 0300 01/01/03 0

20 qd 2 Расчет условия на право прим.ставок 01/01/03 0

ИНФОРМАЦИЯ БАЗЫ ДАННЫХ SPP.DBF

Record# KODF KODP NAIM WDATA PRN

1 qf 2 Расчет по страх.взносам 01/01/02 0

2 qf 3 Справочно 01/01/02 0

3 qf 1 Сведения о налогоплательщике 01/01/02 0

4 qd 2 Расчет для заполнения с.0300 и 0400 01/01/02 0

5 qd 3 Расчет условия на право прим.ставок 01/01/02 0

6 qd 1 Справочно 01/01/02 0

7 qe 1 Выплаты в пользу работников (инв.) 01/01/02 0

8 qe 2 Расчет условий на право прим.льгот 01/01/02 0

9 qe 3 Примечание в разделу II 01/01/02 0

10 qe 4 Выплаты в пользу иностран.граждан 01/01/02 0

11 ba 1 финансовые результаты 01/01/94 0

12 ba 2 испoльзование прибыли 01/01/94 0

13 ba 3 платежи в бюджет 01/01/94 0

14 ba 4 затраты и расходы 01/01/94 0

15 ba 1 финансовые результаты 07/01/95 0

16 ba 2 испoльзование прибыли 07/01/95 0

17 ba 4 платежи в бюджет 07/01/95 0

18 ba 5 затраты и расходы 07/01/95 0

19 ba 3 движение денежных средств 07/01/95 0

20 ba 1 финансовые результаты 10/01/95 0

ИНФОРМАЦИЯ БАЗЫ ДАННЫХ KP_SGR.DBF

Record# KODF KODP KODGR RGR NAIM NAIMP WDATA GO5N PP CHVGR CHRGR GNI GNI_IS

1 sy 2 1 0 Авансовые платежи по ЕСН Данные о платежах 01/01/01 2 3 0

2 sy 2 2 0 Код строки Данные о платежах 01/01/01 2 3 0

3 sy 2 3 1 ПФР (2001),федеральный бюджет Данные о платежах 01/01/01 2 3 0

4 sy 2 4 2 ФФОМС  Данные о платежах 01/01/01 2 3 0

5 sy 2 5 3 ТФОМС Данные о платежах 01/01/01 2 3 2

6 sy 1 1 0 Наименование Сведения об адвокате01/01/01 2 1 0

7 sy 1 2 0 Код строки Сведения об адвокате01/01/01 2 1 0

8 sy 1 3 1 Значение Сведения об адвокате01/01/01 2 1 2

9 sr 1 1 0 Наименование 01/01/01 2 14 0

10 sr 1 2  0 Код строки 01/01/01 2 14 0

11 sr 1 3 1 Налоговая база нар.итогом ПФР 01/01/01 2 14 0

12 sr 1 5 3 Налоговая база нар.итогом ФСС РФ 01/01/01 2 14 0

13 sr 1 6 4 Начислено авансовых платежей ПФР: ставка 01/01/01 2 14 0

14 sr 1 8 6 Начислено авансовых платежей ФСС: ставка 01/01/01 2 14 0

15 sr 1 10 8 Начислено авансовых платежей ФФОМС: ставка 01/01/01 2 14 0

16 sr 1 12 10 Начислено авансовых платежей ТФОМС: ставка 01/01/01 2 14 0

17 sr 1 14 12 Численность ПФР 01/01/01 2 14 0

18 sr 1 16 14 Численность ФСС 01/01/01 2 14 2

19 sr 1 7 5 Начислено авансовых платежей ПФР: cумма 01/01/01 2 14 0

20 sr 1 9 7 Начислено авансовых платежей ФСС: ставка 01/01/01 2 14 0

ИНФОРМАЦИЯ БАЗЫ ДАННЫХ SGR.DBF

Record# KODF KODP KODGR RGR NAIM NAIMP WDATA GO5N PP CHVGR CHRGR GNI GNI_IS

1 qf 2 1 0 Наименование показателя Расчет по страх.взносам  01/01/02 2 8 0

2 qf 2 2 0 Код строки Расчет по страх.взносам 01/01/02 2 8 0

3 qf 2 3 1 Для мужчин 1952г., женщин 1956г.по дан.страховат. Расчет по страх.взносам 01/01/02 2 8 0

4 qf 2 4 2 Для мужчин 1952г., женщин 1956г.по дан.НО Расчет по страх.взносам 01/01/02 2 8 1

5 qf 2 5 3 Для муж.1953-1966, жен.1957-1966 по дан.страховат. Расчет по страх.взносам 01/01/02 2 8 0

6 qf 2 6 4 Для муж.1953-1966, жен.1957-1966 по дан.НО Расчет по страх.взносам 01/01/02 2 8 1

7 qf 2 7 5 Для лиц 1967г.р. и моложе по данным страхователя Расчет по страх.взносам 01/01/02 2 8 0

8 qf 2 8 6 Для лиц 1967г.р. и моложе по данным НО Расчет по страх.взносам 01/01/02 2 8 1

9 qf 2 9 7 Всего по данным страхователя Расчет по страх.взносам 01/01/02 2 8 2

10 qf 2 10 8 Всего по данным налогового органа Расчет по страх.взносам 01/01/02 2 8 1

11 qf 3 1 0 Наименование показателя Справочно 01/01/02 2 3 0

12 qf 3 2 0 Код строки Справочно  01/01/02 2 3 0

13 qf 3 3 1 Всего Справочно 01/01/02 2 3 0

14 qf 3 4 2 В т.ч. на страховую часть трудовой пенсии Справочно 01/01/02 2 3 2

15 qf 3 5 3 В т.ч. на накопительную часть трудовой пенсии Справочно 01/01/02 2 3 0

16 qf 1 1 0 Наименование Сведения о налогоплательщике 01/01/02 2 1 0

17 qf 1 2 0 Код строки Сведения о налогоплательщике 01/01/02 2 1 0

18 qf 1 3 1 Значение/Код Сведения о налогоплательщике 01/01/02 2 1 0

19 qd 2 1 0 Наименование Расчет для заполнения с.0300 и 0400 01/01/02  2 14 0

20 qd 2 2 0 Код строки Расчет для заполнения с.0300 и 0400 01/01/02 2 14 0

ИНФОРМАЦИЯ БАЗЫ ДАННЫХ K029.DBF

Record# C257 C258 K

1 0373 млн.руб. 1000000

2 0374 млрд.руб. 1000000000

3 0006 м 1

4 0008 км 1000

5 0055 кв.м 1

6 0056 тыс.кв.м 1000

7 0059 га  10000

8 0061 кв.км 1000000

9 0062 тыс.га 10000000

10 0744 % 1

11 0770 кратн. 1

12 0113 куб.м 1

13 0114 тыс.куб.м 1000

14 0115 млн.куб.м 1000000

15 0162 карат 1

16 0165 тыс.кар 1000

17 0166 кг 1

18 0167 ц 100

19 0168 т 1000

20 0170 тыс.т 1000000

21 0238 лс 1

22 0796 шт 1

23 0798 тыс.шт 1000

24 0797 100 шт 100

25 0799 млн.шт 1000000

26 0120 л 1

27 0124 тыс.л 1000

28 0371 руб. 1

29 0372 тыс.руб. 1000

30 0642 Ед. 1

31 0792 чел. 1

32 0793 тыс.чел. 1000

33 0794 млн.чел. 1000000

34 0795 млрд.чел. 1000000000

35 0214 КВт 1

36 0119 тыс.дкл 1000

37 0116 дкл 1

ИНФОРМАЦИЯ БАЗЫ ДАННЫХ SPUTR.DBF

Record# RAZDEL TAXCODE NDAT PRUT PARAG

1 21 102011101 09/01/95 1 1

2 80 101020201 01/01/99 1 1


Приложение Б

 

(обязательное)

Выходная информация

ИдФайл:2129000988**212901001200101102936

ТипИнф:ДЕКЛАРАЦИЯЮЛ

НаимОтпрЮл:Здесь должно быть наименование предприятия.

ТелОтпр:000-00-01

ДолжОтпр:

ФИООтпр:ФИО бухгалтера

КолДок:1

ВерсПрог:INPUTDOC

@@@

ИдДок:2129000988**212901001200100000001

КНД:1151006

НаимФОтч:Расчет налога от фактической прибыли

ПеридОтч:2000,К4

ДатаДок:30.11.2000

ОКЕИ:383

ВарДекл:999

КолПокФОтч:18

П010000103:1230.000

П010000303:5670.000

П010000403:0.000

П010000503:0.000

П010000603:0.000

П010000703:0.000

П010000803:0.000

П010000903:0.000

П010001003:0.000

П010001103:0.000

П010001203:0.000

П010001303:01 12..2000

П010001603: . .

П010001703: 04.06.1999

П010002а03:0.000

П010002б03:0.000

П010002в03:0.000

П010002г03:0.000

КНД:0710001

НаимФОтч:Бухгалтерский баланс

ПеридОтч:2000,К4

ДатаДок:09.12.2000

ОКЕИ:384

ВарДекл:999

КолПокФОтч:17

П010011003:456.000

П010011004:0.000

П010011103:45645.000

П010011104:0.000

П010011203:65.000

П010011204:0.000

П010011303:456.000

П010011304:0.000

П010012003:45.000

П010012004:0.000

П010012103:64.000

П010012104:0.000

П010012203:456.000

П010012204:0.000

П010013003:4564.000

П010013004:0.000

П010013503:6456.000

@@@

===


Приложение В

 

(обязательное)

Текст программы

&&---получение списка существующих документов--(открытие БД осуществляет вызывающий модуль!)

wait window nowait 'Идет подготовка данных'

YearC=iif(val(sDT)>50,'19'+sDT,'20'+sDT)

FltDocC='KONTROL="1" ' && фильтр на KP_SD

select KP_SD

set filter to &FltDocC

go top

do while not eof()

&& определяем имя и период

do case

case KP_SD.PER='1'

FileNameC=KP_SD.KODF+sKW+sDT

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

case KP_SD.PER='2'

KvartC=str(int((sPERIO-1)/3)+1,1)

FileNameC=KP_SD.KODF+KvartC+sDT

PeriodTxtC=YearC+',К'+KvartC

case KP_SD.PER='3'

YerHlfC=iif(sPERIO>6,'2','1')

KvartC=iif(sPERIO>6,'4','2')

FileNameC=KP_SD.KODF+YerHlfC+sDT

PeriodTxtC=YearC+',К'+KvartC

case KP_SD.PER='4'

FileNameC=KP_SD.KODF+sDT

PeriodTxtC=YearC+',Г'

otherwise

FileNameC=''

PeriodTxtC=''

ENDCASE

&&---------------------------------------------------------------------------------------------------------------

DO CASE

CASE kp_sd.per='2'

nperN=int((_sysMonthN-1)/3)+1

CASE kp_sd.per='3'

nperN=iif(_sysMonthN>6,2,1)

CASE kp_sd.per='4'

nperN=1

OTHERWISE

nperN=_sysMonthN

ENDCASE

&&-------------------------------------------------------------------------------------------------------------------

if empty(kp_sd)

do getmper with kp_sd.kodf,_sysYearN,kp_sd.per,nperN

else

do getmper with left(kp_sd.prvlog,2),_sysYearN,kp_sd.per,nperN

endif

DO CASE

CASE mperiod.period='2'

KvartC=str(int((sPERIO-1)/3)+1,1)

PeriodTxtC=YearC+',К'+KvartC

CASE mperiod.period='3'

YerHlfC=iif(sPERIO>6,'2','1')

KvartC=iif(sPERIO>6,'4','2')

PeriodTxtC=YearC+',К'+KvartC

CASE mperiod.period='4'

PeriodTxtC=YearC+',Г'

OTHERWISE

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

ENDCASE

&& получаем список переменных строк----------------------------------------------------------------------------

flykodC=''

SELECT 0

IF docwdataD=kp_sd.wdata

USE (_bases+kp_sd.kodf+'_POK') ALIAS pok

SET ORDER TO TAG pok

SET FILTER TO inlist(left(alltrim(kods),1),':','~')

ELSE

USE (_bases+'POK')

SET ORDER TO TAG pok

SET FILTER TO kodf=kp_sd.kodf ;

 AND wdata=docwdataD ;

AND inlist(left(alltrim(kods),1),':','~')

ENDIF

GO TOP

DO WHILE NOT eof()

flykodC=flykodC+alltrim(str(pok.ykod,3))+';'

SKIP

ENDDO

USE IN pok

select 0

use (___user+FileNameC) alias XXZZYY

select 0

&& получаем список уточнений------------------------------------------------------------------------------------------

select max(val(UT)) AS utn ;

from XXZZYY ;

into table (old_vtemp+'AllUT')

select AllUT

go top

do while not eof()

&& заполняем список документов------------------------------------------------------------------------------------

if _UseKND

KNDTxtC=iif(empty(alltrim(KP_SD.KND)) or (alltrim(KP_SD.KND)=='0'),'1150000',KP_SD.KND)

else

KNDTxtC=KP_SD.KODF

endif

select HaveDoc

append blank

replace KODF with KP_SD.KODF, ;

UT with str(AllUt.UTn,2), ;

NAIM with KP_SD.NAIM, ;

FileName with FileNameC, ;

SDWDATA with KP_SD.WDATA, ;

PERIODTXT with PERIODTXTC, ;

KNDTXT with KNDTxtC, ;

wdata WITH docwdataD, ;

flykod WITH flykodC, ;

prvlog WITH kp_sd.prvlog, ;

prd WITH kp_sd.prd, ;

_knd WITH kp_sd.knd, ;

prmnog WITH kp_sd.prmnog

select AllUt

skip

enddo

select AllUt

use

select XXZZYY

use

endif

select KP_SD

skip

enddo

wait clear

if DocList.WDATA=DocList.SDWDATA

select ExpDcPok

append blank

replace KODF with DocList.KODF, ;

WDATA with DocList.WDATA, ;

TxtPok with 'П000000101', ;

FieldName with 'KOMM'

append blank

replace KODF with DocList.KODF, ;

WDATA with DocList.WDATA, ;

TxtPok with 'П000000201', ;

FieldName with 'RASSH'

append blank

replace KODF with DocList.KODF, ;

WDATA with DocList.WDATA, ;

TxtPok with 'П000000301', ;

FieldName with 'C257N'

SELECT 0

USE (_bases+doclist.kodf+'_POK') alias pok

set order to tag POK

go top

do while not eof()

if not empty(KODS) and (not (alltrim(KODS)=='0'))

select kp_sgr

set filter to KODF=DocList.KODF and KODP=POK.KODP and RGR<>0

go top

do while not eof()

scrC=subdat1(pok.twd,kp_sgr.rgr)

IF NOT empty(scrC)

typeC=substr(scrC,1,1)

sc1N=at('(',scrC)

sc2N=at(')',scrC)

zpN=at(',',scrC)

IF zpN=0

lenN=val(substr(scrC,sc1N+1,sc2N-sc1N-1))

decN=0

ELSE

lenN=val(substr(scrC,sc1N+1,zpN-sc1N-1))

decN=val(substr(scrC,zpN+1,sc2N-zpN-1))

ENDIF

ENDIF

YKodN=POK.YKOD

KodPN=POK.KODP

KodSC=strtran(POK.KODS,':','')

KodGN=kp_SGR.KODGR

RGRN=kp_SGR.RGR

GNIN=iif(kp_SGR.GNI=1,1,0)

TxtPokC='П'

TxtPokC=TxtPokC+iif(KodPN>=10,str(KodPN,2),'0'+str(KodPN,1))

TxtPokC=TxtPokC+replicate('0',5-len(alltrim(KodSC)))+alltrim(KodSC)

TxtPokC=TxtPokC+iif(KodGN>=10,str(KodGN,2),'0'+str(KodGN,1))

FieldNameC=DocList.KODF+alltrim(str(YKodN,3))+'_'+alltrim(str(RGRN,2))

select ExpDcPok

append blank

replace KODF with DocList.KODF, ;

WDATA with DocList.WDATA, ;

TxtPok with TxtPokC, ;

FieldName with FieldNameC, ;

type WITH typeC, ;

len WITH lenN, ;

dec WITH decN

select kp_SGR

skip

enddo

endif

select POK

skip

enddo

USE IN pok

else

select ExpDcPok

append blank

replace KODF with DocList.KODF, ;

WDATA with DocList.WDATA, ;

TxtPok with 'П000000101', ;

FieldName with 'KOMM'

append blank

replace KODF with DocList.KODF, ;

WDATA with DocList.WDATA, ;

TxtPok with 'П000000201', ;

FieldName with 'RASSH'

append blank

replace KODF with DocList.KODF, ;

WDATA with DocList.WDATA, ;

TxtPok with 'П000000301', ;

FieldName with 'C257N'

SELECT 0

USE (_bases+'POK')

set order to tag POK

set filter to KODF=DocList.KODF and WDATA=DocList.WDATA

go top

do while not eof()

if not empty(KODS) and (not (alltrim(KODS)=='0'))

select SGR

set filter to KODF=DocList.KODF and KODP=POK.KODP and WDATA=DocList.WDATA and RGR<>0

go top

do while not eof()

scrC=subdat1(pok.twd,sgr.rgr)

IF NOT empty(scrC)

typeC=substr(scrC,1,1)

sc1N=at('(',scrC)

sc2N=at(')',scrC)

zpN=at(',',scrC)

IF zpN=0

lenN=val(substr(scrC,sc1N+1,sc2N-sc1N-1))

decN=0

ELSE

lenN=val(substr(scrC,sc1N+1,zpN-sc1N-1))

decN=val(substr(scrC,zpN+1,sc2N-zpN-1)) ENDIF

ELSE

IF pok.td='U'

typeC=substr(pok.td1,sgr.rgr,1)

ELSE

typeC=pok.td

ENDIF

DO CASE

CASE typeC='C'

lenN=15

decN=0

CASE typeC='D'

lenN=8

decN=0

OTHERWISE

typeC='N'

lenN=15

decN=3

ENDCASE

ENDIF

if pok.td=='U'

if len(alltrim(pok.td1))>=SGR.RGR

TypeC=substr(pok.td1,SGR.RGR,1)

else

TypeC='N'

endif

else

TypeC=pok.td

endif

YKodN=POK.YKOD

KodPN=POK.KODP

KodSC=strtran(POK.KODS,':','')

KodGN=SGR.KODGR

RGRN=SGR.RGR

GNIN=iif(SGR.GNI=1,1,0)

TxtPokC='П'

TxtPokC=TxtPokC+iif(KodPN>=10,str(KodPN,2),'0'+str(KodPN,1))

TxtPokC=TxtPokC+replicate('0',5-len(alltrim(KodSC)))+alltrim(KodSC)

TxtPokC=TxtPokC+iif(KodGN>=10,str(KodGN,2),'0'+str(KodGN,1))

FieldNameC=DocList.KODF+alltrim(str(YKodN,3))+'_'+alltrim(str(RGRN,2))

select ExpDcPok

append blank

replace KODF with DocList.KODF, ;

WDATA with DocList.WDATA, ;

TxtPok with TxtPokC, ;

FieldName with FieldNameC, ;

type WITH typeC, ;

len WITH lenN, ;

dec WITH decN

select SGR

skip

enddo

endif

select POK

skip

enddo

USE IN pok

endif

&&-----------------------------------------------------------------

aPath=alltrim(upper(bPath))

if right(aPath,1)<>'\'

aPath=aPath+'\'

endif

aDrv=left(aPath,1)

if !cdrv(aDrv)

if aDrv='A' .or. aDrv='B'

do while !cdrv(aDrv)

if MESSAGEBOX('Вставьте диск в дисковод '+aDrv+':',64+1)<>1

RETURN .F.

endif

enddo

else

MESSAGEBOX('Диск '+aDrv+': не существует.', 16)

RETURN .F.

endif

endif

isOkPath=.t.

PRIVATE olderrC

olderrC=ON('ERROR')

on error isOkPath=.f.

SetDefault(aPath) &&&&set default to &aPath

ON ERROR &olderrC

SetDefault(root_dir) &&&&set default to &root_dir

if !isOkPath

MESSAGEBOX('Неправильный путь к файлу.', 16)

RETURN .F.

endif

&& формирование текстового файла

wait window nowait 'Идет подготовка файла'

define window wtxt from 24,79 to 24,79 none

activate window wtxt noshow

set alternate to (old_vtemp+aFileName)

set alternate on

set console off

?? 'ИдФайл:'+alltrim(sIdOtp)

? 'ТипИнф:'+alltrim(sType)

? 'НаимОтпрЮл:'+alltrim(sDan)

? 'ТелОтпр:'+alltrim(sTel)

? 'ДолжнОтпр:'+alltrim(sDol)

? 'ФИООтпр:'+alltrim(sFIO)

? 'КолДок:1'

? 'ВерсПрог:'+alltrim(sVer)

? '@@@'

? 'ИдДок:'+alltrim(sIdDoc)

isOkAll=.f.

do AddDoc

? '@@@'

? '==='

release window wtxt

set alternate to

set console on

wait clear

if !isOkAll

MESSAGEBOX('Нет передаваемых показателей во всех передаваемых документах. Копируемый файл не создан', 16)

else

wait window nowait 'Выполняется копирование файла'

DO WinToDos IN _bin+'oninit.prg' WITH old_vtemp+aFileName, aPath+aFileName

wait clear

messagebox('Выгрузка завершена.', 64)

endif

clear read

SELECT 0

USE (_bases+'NOMFILE')

LOCATE FOR year=_sysYearN

REPLACE nomfile WITH nomfile+1

USE

return .t.

&&-----------------------------------------------------------------

procedure AddDoc

select DocList

go topdo while not eof()

wait wind nowait 'Идет подготовка данных'

select ExpDcPok

set filter to KODF=DocList.KODF and WDATA=DocList.WDATA

count to PkCntN

if PkCntN>0

isOkAll=.t.

do AddDoc01

else

MESSAGEBOX('Документ: '+DocList.NAIM + CHR(13) +;

'Уточнение: '+iif(val(DocList.UT)=0,'Основной расчет',DocList.UT+' уточнение')+;

 'Нет передаваемых показателей. Документ будет пропущен.',64)

endif select DocList

skip

enddo

wait clear

return

 

Информация о работе «Разработка программы "Модуль выгрузки данных в текстовом формате комплекса "Налогоплательщик ЮЛ" для государственной налоговой инспекции г. Узловая»
Раздел: Информатика, программирование
Количество знаков с пробелами: 65513
Количество таблиц: 6
Количество изображений: 8

0 комментариев


Наверх