ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Journal influence

Higher Attestation Commission (VAK) - К1 quartile
Russian Science Citation Index (RSCI)

Bookmark

Next issue

2
Publication date:
16 June 2024

The article was published in issue no. № 2, 1999
Abstract:
Аннотация:
Authors: Semenov N.A. (dmitrievtstu@mail.ru) - Tver State Technical University, Tver, Russia, Ph.D, () -
Ключевое слово:
Page views: 10526
Print version
Full issue in PDF (1.58Mb)

Font size:       Font:

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

В настоящее время осуществляется планомерная информатизация Государственной налоговой службы России в соответствии с [1-3]; в документах регламентируются принципы формирования и порядок предоставления данных о доходах физических лиц. Используемое в настоящий момент программное обеспечение разрабатывается ГНИВЦ РФ на СУБД FoxPro 2.6.

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

Налоговые инспекции осуществляют прием информации о доходах физических лиц на магнитных носителях от предприятий и организаций, а существующие системы обработки информации развиваются и находятся в стадии разработки. Авторами статьи предлагаются некоторые подходы к обработке информации с использованием средств RAD (Rapid Application Development), а именно Borland DelphiÒ версия 4.0 с установленным Update Pack 2, работающая под Microsoft Windows-98Ò.

Формат файла передачи данных детально описан в [3]. Основную сложность при обработке информации составляет контроль правильности входной информации, а также различия в использованной кодировке информации DOS и кодовой страницы 1251 Microsoft Windows-98Ò. Что касается контроля входной информации, то одной из проблем также является применение различных алгоритмов разбора входящей информации.

Структуру входного файла можно представить в виде схемы (рис. 1).

Подпись:  
Рис. 1. Структура файла, содержащего информацию о доходах физического лица
В состав сведений входят реквизиты, составляющие адресные данные налогоплательщика, а также сведения о полученных им доходах, произведенных начислениях и удержаниях подоходного налога.

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

Рассмотрим принцип контроля адреса плательщика, обычно используемый в существующем ПО (в частности, рассматривался ИК 2.0, написанный с применением СУБД FoxPro 2.6.):

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

-     осуществляется “смысловой” контроль реквизита, для чего его содержимое сопоставляется с классификатором адресов;

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

В данной ситуации существует несколько так называемых узких мест:

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

·  при использовании сертифицированного ПО основным узким местом является отсутствие абсолютного большинства адресов РФ в классификаторе или использование более старой версии классификатора подателями сведений;

·  наименование реквизитов может изменяться в дальнейшем, однако в большинстве ПО данная ситуация также не учитывается;

·  в существующем ПО используется жесткая программная привязка к стандарту передаваемой информации и к доступу к различным функциям.

В этом случае предлагается использовать подход с учетом возможностей средств Delphi, а также технологии клиент-сервер (в нашем примере рассматривается вариант с использованием Interbase).

1.   Подпись: Таблица  
Дескриптор
DESKR_NUM	ФУНКЦИЯ
FUNKY_NAME	РЕКВИЗИТ
REKV_NAME	ПРИМЕЧАНИЕ
COMMENT
1	TSTFIZADR	АДРФИЗЛИЦА	Функция, осуществляющая анализ правильности адреса физического лица
…	…	…	…

Применительно к анализу файла с информацией о доходах физических лиц, учитывая возможность изменения в будущем его структуры (формы представления информации), а также формы и представления реквизитов, предлагается хранить вместе как формат, так и дескрипторы функций обработки, причем применительно к функциям можно использовать и процедуры Delphi (здесь узкое место – необходимость перекомпиляции DLL) и хранимые Interbase процедуры (здесь основная проблема – жесткая привязка к единственной СУБД, непереносимость программ).

2.   Учет возможности формирования данных вручную и возможность различной степени детализации протокола приема.

Размещение списка реквизитов на СУБД

Обычно в анализируемом файле содержится достаточно большое количество реквизитов, которые могут меняться с течением времени в зависимости от изменений стандартов передаваемой информации. Поэтому как вариант можно выбрать размещение списка реквизитов на СУБД и использование хранимой процедуры для анализа соответствия соответствующего реквизита, анализируемого при чтении очередной записи из файла с информацией. Процесс получения информации можно представить в виде процедуры (рис. 2).

Эта процедура осуществляет поиск очередного анализируемого реквизита в СУБД и в случае присутствия возвращает единицу, что соответствует логическому значению True (Истина) или (в обратном случае) ноль – False (Ложь).

Достоинством ее является возможность обращения к ней из любой версии программы. Даже в случае изменения содержимого программный интерфейс останется неизменным (причем обращаться к данной процедуре можно из любой программной среды с возможностью взаимодействия с ODBC либо BDE драйвером Interbase). К недостаткам следует отнести большие затраты по времени, чем при работе, например, с Paradox или dBase файлом, используя не SQL, а методы класса TTable Borland Delphi.

Совместное хранение реквизитов и дескрипторов их обработчиков

На образце реквизита АдрФизЛица, содержащего адрес физического лица, рассмотрим примеры хранимой процедуры, ее вызова и организации интерфейса программиста.

Реквизит имеет следующую структуру: «код страны», «код региона», «город», «район», «населенный пункт», «улица», «дом», «корпус», «квартира». Отсутствующие реквизиты пропускаются, каждый реквизит анализируется по содержимому классификатора адресов.

Предлагается разделить синтаксический и семантический контроль, часть процедуры, осуществляющей проверку валидности реквизита, разместить как хранимую процедуру (в конкретной реализации на сервере), а вторую часть, осуществляющую семантический контроль, выполнять в процедуре Borland Delphi.

Вариант совместного хранения данных и дескрипторов процедур в СУБД представлен в таблице.

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

Select from TstFizAdr(:P_RekvAdr, :P_RekvDesc, :P_Result)

Мы задаем P_RekvAdr как входной параметр, в котором передаем обрабатываемый реквизит, P_RekvDesc – дескриптор процедуры обработчика, а P_Result возвращает True (Истину), либо False (Ложь) в зависимости от существования данного реквизита.

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

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

Пример вызова хранимых процедур из Delphi

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

Подпись: // В этой части программы считываем из файла в переменную
// REKVIZIT наименование реквизита
// REKVTEXT его содержимое
…
// Инициализируем запрос
ADRQuery.Close;
ADRQuery.ParamByName(‘REKV_NAME’).AsString := REKVIZIT;
ADRQuery.Open;
// Выбор обрабатывающей процедуры по дескриптору
Case ADRQuery.ParamByName(‘REKV_NAME’).AsInteger of
…
// Функция анализа правильности адреса физ. лица
1: CheckAdr(REKVTEXT):Boolean; // Возвращаемый результат True (Истина) в случае корректности содержимого реквизита
…
end; // Case
…
Рис. 3. Пример Object Pascal процедуры выбора функ-ции обработки содержимого реквизита
Как видим, не раскрывая деталей анализа конкретного реквизита, мы имеем простой и достаточно мощный механизм анализа информации, поступающей на магнитных носителях.

Применение подобного подхода позволяет гибко анализировать поступающую информацию, а в случае изменения формата файла обеспечивается коррекция функций обработки реквизитов с минимальными затратами времени. Важно упомянуть простоту конфигурирования системы с использованием данного подхода. Более того, данный подход и некоторые процедуры могут быть скомпонованы в отдельную библиотеку (DLL – Dynamic Link Library) и использованы в разных приложения (АРМах), взаимодействующих с файлами подобной структуры.

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

1.   Федеральный закон от 20.02.95 № 24-ФЗ: Об информации, информатизации и защите информации // Российская газета.- 1995. - № 39.

2.   Приказ Госналогслужбы РФ от 03.02.95 № ВП-3-12/4: Об упорядочении разработки и внедрения программно-технических средств автоматизированной информационной системы в налоговых органах // Электронная справочная правовая система «Консультант Плюс».

3.   Инструкция Госналогслужбы РФ от 29.06.95 N 35 (ред. от 15.06.98): По применению закона Российской Федерации: О подоходном налоге с физических лиц. // Российские вести. – 1995.- № 179.

4.   Миллер, Тодд, Пауэл, Дэвид и др. Использование Delphi 3: Спец. изд. /Пер. с англ. – К.: Диалектика, 1997. – 768 с.


Permanent link:
http://swsys.ru/index.php?page=article&id=933&lang=en
Print version
Full issue in PDF (1.58Mb)
The article was published in issue no. № 2, 1999

Perhaps, you might be interested in the following articles of similar topics: