ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ СБОРА

ДАННЫХ СТРАХОВЫХ КОМПАНИЙ – ДЕЙСТВИТЕЛЬНЫХ ЧЛЕНОВ РОССИЙСКОГО СОЮЗА АВТОСТРАХОВЩИКОВ

ДЛЯ ПОДДЕРЖКИ ОПРЕДЕЛЕНИЯ КОЭФФИЦИЕНТА КЛАССА «БОНУС-МАЛУС»

Дата вступления в силу: 19 июля 2004 года

Этот документ предназначен для внутренних потребностей РОССИЙСКОГО СОЮЗА аВТОСТРАХОВЩИКОВ, распространяется УПРАВЛЕНИЕМ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ РСА в соответствии со списком контролируемого распространения и обозначен как “КОНТРОЛИРУЕМАЯ КОПИЯ”. Содержание данного документа не может воспроизводиться целиком или по частям либо передаваться любым лицам, не являющимся ЧЛЕНАМИ рса, без предварительного согласования с НАЧАЛЬНИКОМ УПРАВЛЕНИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ РСА. Копии, переданные третьим лицам по согласованию с НАЧАЛЬНИКОМ УПРАВЛЕНИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ РСА, должны быть обозначены как «НЕКОНТРОЛИРУЕМАЯ КОПИЯ»

Содержание

1 Общие положения.............................................................................................................. 4

2 Процедура информационного взаимообмена.................................................................... 5

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

3.1 Приложение 1. Перечень элементов нормативно-справочной информации (НСИ), используемых для обеспечения сбора, консолидации и централизованной обработки данных для поддержки определения коэффициента КБМ................................................................................................................ 8

НЕ нашли? Не то? Что вы ищете?

3.2 Приложение 2. Формат и структуры единых файлов-справочников, используемых для обеспечения информационного взаимообмена........................................................................................... 9

3.3 Приложение 3. Файл “Реестр данных по договорам страхования и страхователям ”... 11

3.4 Приложение 4 . Паспорт информационной посылки..................................................... 12

3.5 Приложение 5. Протокол обработки информации....................................................... 14

3.6 Приложение 6. Файл ошибок........................................................................................ 15

3.7 Приложение 7. Единые файлы-справочники, используемые для обеспечения информационного взаимообмена 16

3.8 Приложение 8. Правила первичного автоматического контроля отчетной информации страховых компаний 18

3.8.1 Синтаксический контроль записей и проверка кодированной информации в файлах «Реестр данных по договорам страхования и страхователям»......................................................................... 18

3.8.2 Выявление дублированных записей......................................................................... 20

3.9 Приложение 9. Пример «Реестра данных по договорам страхования и страхователям» в формате XML 21

3.10 Приложение 10. Порядок расчёта контрольного числа ИНН (пример функции на языке PASCAL) 22

Принятые сокращения

АИС РСА

Автоматизированная информационная система Российского Союза Автостраховщиков, обеспечивающая прием, контроль, консолидацию, хранение и аналитическую обработку данных по договорам ОС АГО

БД

База данных

ИП

Информационная посылка

КИС СК

Корпоративная информационная система страховой компании

НСИ

Нормативно-справочная информация – блок кодификаторов и справочников, применяемых при заполнении и контроле первичных данных (в электронном виде) по договорам страхования и страхователям.

ОС АГО

Обязательное страхование автогражданской ответственности

ПО

Программное обеспечение

РСА

Российский Союз Автостраховщиков

СК

Страховая компания – действительный член Российского Союза Автостраховщиков

ТС

Транспортное средство

УИТ РСА

Управление информационных технологий Российского Союза Автостраховщиков

2  Общие положения

1)  Настоящий документ регламентирует процедуру информационного взаимодействия страховых компаний (СК), участвующих в реализации Закона об обязательном страховании гражданской ответственности владельцев транспортных средств, и Российского Союза Автостраховщиков (РСА), при сборе данных по договорам страхования и страхователям, необходимых для поддержки определения коэффициента класса «бонус-малус» (далее – коэффициента КБМ).

2)  Для обеспечения информационного взаимодействия между РСА и страховыми компаниями может использоваться «XML» или «DBF» формат обмена данными (по выбору страховой компании).

3)  Для обеспечения информационного взаимодействия между РСА и страховыми компаниями используются следующие основные документы и файлы:

·  перечень элементов нормативно-справочной информации, используемых для обеспечения сбора, консолидации и автоматизированного контроля данных по договорам страхования и страхователям, необходимых для поддержки определения коэффициента КБМ (Приложение 1);

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

·  файл «Реестр данных по договорам страхования и страхователям» (Приложение 3);

·  паспорт информационной посылки (Приложение 4);

·  протокол обработки информации (Приложение 5);

·  файл ошибок (Приложение 6);

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

5)  Информация, используемая при взаимодействии между страховыми компаниями и РСА, может состоять из основной, дополнительной и исправленной частей.

Основная часть информации содержит данные за очередной период.

Дополнительная часть информации содержит сведения, ранее не включенные (по тем, или иным причинам) в состав основной части информации.

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

Автоматический контроль и обработка основной, дополнительной и исправленной частей информации проводятся по идентичным правилам.

6)  Кодирование информации в файлах осуществляется в соответствии с требованиями настоящей Инструкции.

7)  Обмен файлами между страховыми компаниями и РСА осуществляется на магнитных носителях или с использованием средств связи, включая пересылку данных по электронной почте. Данные представляются в архивированном виде с использованием формата ZIP.

3  Процедура информационного взаимообмена

1)  Информационный взаимообмен между страховыми компаниями и РСА осуществляется в соответствии с установленным порядком сбора данных для поддержки определения коэффициента КБМ за отчетный период.

2)  Каждая страховая компания представляет в РСА следующую информацию:

·  файл или файлы «Реестр данных по договорам страхования и страхователям» (Приложение 3) – по всем заключенным, измененным и расторгнутым за отчетный период договорам ОСАГО; файл имеет наименование – «BM-ККК-В#NNN», где:

ККК – код СК, согласно справочнику СК (см. Приложение 7);

В – код вида информационной посылки;

NNN – номер файла данного типа в составе информационной посылки;

Пример: BM-РГС-О#014.XML – основная информация от , 14-ый файл в формате XML

·  паспорт информационной посылки в виде документа (см. Приложение 4).

3)  Данные по основной, дополнительной и исправленным частям информации представляются в виде отдельных файлов и документов (паспорт информационной посылки, протокол обработки и т. д.). Допускается формальное разделение «Реестра данных по договорам страхования и страхователям» на несколько (до 99-и) файлов в составе информационной посылки одного вида.

4)  При обнаружении ошибок или неустранимых сбоев в процессе приема-передачи информации допускается ее повторное предъявление после исправления ошибок в пределах срока, предусмотренного установленным порядком сбора данных.

5)  Проверки записей файлов «Реестра данных по договорам страхования и страхователям» включает:

·  Синтаксический контроль записей и проверку кодированной информации;

·  Выявление дублированных записей;

·  Проверку соответствия данных, приведенных в кодированном виде кодификаторам и справочникам НСИ.

6)  По результатам обработки данных РСА формирует и представляет СК:

·  протокол обработки информации (Приложение 5, отдельно - для основной, дополнительной и исправленных частей информации), который содержит - статистические данные о количестве предъявленных, принятых и забракованных записей, а также общее количество записей в файле ошибок и контрольную сумму (CRC-32) файла ошибок;

·  файл ошибок (отдельно - для основной, дополнительной и исправленной частей информации) в виде базы данных (Приложение 6), каждая запись которого включает следующие данные: имя файла, код ошибки, идентификатор забракованной записи. Файл ошибок имеет наименование – «EBM-ККК-В», где

ККК – код СК, согласно справочнику СК (см. Приложение 7);

В – код вида информационной посылки;

Пример: EBM-РГС-О. XML – файл ошибок по основной информации от , в формате XML

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

4  Приложения к Инструкции по организации сбора данных страховых компаний – действительных членов Российского Союза Автостраховщиков для поддержки определения коэффициента КБМ

4.1  Приложение 1. Перечень элементов нормативно-справочной информации (НСИ), используемых для обеспечения сбора, консолидации и централизованной обработки данных для поддержки определения коэффициента КБМ

Имя файла

Наименование кодификатора / справочника

1

Spr_SKXX

Справочник «Страховые компании – члены РСА»

2

RS_BMXX

Справочник «Разряды (классы) системы бонус-малус»

3

CodErrXX

Кодификатор «Виды дефектов данных»

4

Cod_IPXX

Кодификатор «Виды информационных посылок»

Область применения НСИ:

1)  Подсистемы прототипа АИС РСА;

2)  Подсистемы КИС СК.

4.2  Приложение 2. Формат и структуры единых файлов-справочников, используемых для обеспечения информационного взаимообмена

1. Справочник «Страховые компании – члены РСА» - «Spr_SKXX»

Имя поля

Тип

Назначение

Cod

T (3)

Условный код СК

S_Name

T (254)

Краткое наименование СК

P_Name

T (254)

Полное наименование СК

2. Справочник «Разряды (классы) системы бонус-малус» - «RS_BMXX»

Имя поля

Тип

Назначение

Cod

T (3)

Код

Name

T (254)

Наименование

Kbm_n

N (4,2)

Коэффициент КБМ

3. Кодификатор «Виды дефектов данных» - «CodErrXX»

Имя поля

Тип

Назначение

Cod

T (3)

Код дефекта

Name

T (254)

Наименование вида дефекта

4. Кодификатор «Виды информационных посылок» - «Cod_IPXX»

Имя поля

Тип

Назначение

Cod

T (1)

Код

Name

T (50)

Наименование вида информационной посылки

4.3  Приложение 3. Файл “Реестр данных по договорам страхования и страхователям ”

Формат файла «Реестр данных по договорам страхования и страхователям» представлен в таблице 3.3.1. Пример заполнения «Реестра…» в формате XML приведён в Приложении 9.

Таблица 3.3.1

Имя поля

Тип

Назначение

Правила заполнения

Recid

T (25)

Идентификатор записи

Указывается внутренний идентификатор записи, используемый в корпоративной информационной системе СК. При отсутствии такового в КИС СК – указывается порядковый номер записи в файле. Требования – наличие заполнения и уникальность в пределах одного отчётного периода.

S_Pol

T (3)

Серия страхового полиса

Указывается серия выданного полиса ОС АГО.

N_Pol

N (10)

Номер страхового полиса

Указывается серия выданного полиса ОС АГО.

Du_S

D

Дата начала срока страхования

Указывается дата начала срока страхования (по полису ОС АГО).

Du_F

D

Дата окончания срока страхования

Указывается дата окончания срока страхования (по полису ОС АГО).

VIN

T (25)

VIN транспортного средства

Указывается VIN транспортного средства.

GRN

T (25)

Государственный регистрационный номер транспортного средства

Указывается Государственный регистрационный номер транспортного средства

KBM_N

N (4,2)

Коэффициент КБМ на начало действия договора

Указывается значение коэффициента за наличие или отсутствие страховых выплат (коэффициент класса «БОНУС-МАЛУС») в соответствии со справочником «Разряды (классы) системы «БОНУС-МАЛУС»

S_S_OPL

N (2)

Количество страховых случаев, по которым наступило обязательство страховщика произвести выплату

Указывается количество страховых случаев по данному договору

D_AKT

D

Дата актуальности информации

Указывается дата, на которую представленные данные были актуальны

FUZ_UR

N (1)

Признак страхователя юридическое/физическое лицо

Указывается 1, если страхователь – физическое лицо, 2 – если страхователь юридическое лицо

SN_PASP

T (25)

Серия и номер документа – паспорта или удостоверения личности офицера

Указывается серия и номер документа – паспорта или удостоверения личности офицера

FAM

T (25)

Фамилия страхователя

Указывается фамилия страхователя (только для страхователей – физических лиц)

NAME

T (25)

Имя страхователя

Указывается имя страхователя (только для страхователей – физических лиц)

SNAME

T (25)

Отчество страхователя

Указывается отчество страхователя (только для страхователей – физических лиц)

INN

T (15)

ИНН страхователя

Указывается ИНН страхователя (только для страхователей – юридических лиц)

UL_NAME

T (100)

Наименование организации – страхователя

Указывается наименование организации – страхователя (только для страхователей – юридических лиц)

4.4  Приложение 4 . Паспорт информационной посылки

ПАСПОРТ ИНФОРМАЦИОННОЙ ПОСЫЛКИ

Страховая компания, представившая информацию: ______________________________

Вид информационной посылки: Основная, Дополнительная, Исправленная

Представлено:

Имя файла

Общее количество записей в файле

Контрольная сумма файла

(CRC – 32)

Реестр данных по договорам страхования и страхователям

Представитель СК ___________________ (должность, ФИО)

“____” ____________ 200___г.

4.5  Приложение 5. Протокол обработки информации

П Р О Т О К О Л

обработки информации

Количество записей

Представлено

Принято

Забраковано

Реестр данных по договорам страхования и страхователям

Количество записей в файле ошибок __________________

Контрольная сумма (CRC-32) файла ошибок __________________

Представитель УИТ РСА ___________________ (должность, ФИО) Представитель СК _________________ (должность, ФИО)

“____” ____________ 200___г. “____” ____________ 200___г.

4.6  Приложение 6. Файл ошибок

Имя поля

Тип

Назначение

Правила заполнения

Fl

T (8)

Имя файла

Указывается имя файла, в котором выявлена ошибка.

C_Err

T (3)

Код ошибки

Указывается код вида дефекта по кодификатору «Виды дефектов данных» - «CodErrXX».

Recid

T (25)

Идентификатор

ошибочной записи

Указывается идентификатор (значение атрибута «Recid») ошибочной записи в файле.


4.7  Приложение 7. Единые файлы-справочники, используемые для обеспечения информационного взаимообмена

1. Справочник «Страховые компании – члены РСА» - «Spr_SK02»

Cod

S_Name

P_Name

...

...

...

 

РОС

Открытое акционерное общество «Российское страховое народное общество»

СОГ

ОСГ «Согласие»

Общество с ограниченной ответственностью компания «Согласие»

СПВ

«Спасские ворота»

Закрытое акционерное общество «Страховая группа «Спасские ворота»

 

...

...

...

 

2. Справочник «Разряды (классы) системы бонус-малус» - «RS_BM02»

Cod

Name

Kbm_n

M

Низший разряд (класс)

2.45

000

0-ой разряд (класс)

2.30

001

1-ый разряд (класс)

1.55

002

2-ой разряд (класс)

1.40

003

3-ий (начальный) разряд (класс)

1.00

004

4-ый разряд (класс)

0.95

005

5-ый разряд (класс)

0.90

006

6-ой разряд (класс)

0.85

007

7-ой разряд (класс)

0.80

008

8-ой разряд (класс)

0.75

009

9-ый разряд (класс)

0.70

010

10-ый разряд (класс)

0.65

011

11-ый разряд (класс)

0.60

012

12-ый разряд (класс)

0.55

013

13-ый разряд (класс)

0.50

3. Кодификатор «Виды дефектов данных» - «CodErr02»

Cod

Name

R00

Не заполнено поле RECID (идентификатор записи)

R01

Не заполнено или неверно заполнено поле S_POL (серия полиса ОС АГО)

R02

Не заполнено или неверно заполнено поле N_POL (номер полиса ОС АГО)

R03

Не заполнено или неверно заполнено поле DU_S (дата начала действия договора ОС АГО)

R04

Не заполнено или неверно заполнено поле DU_F (дата окончания действия договора ОС АГО)

R05

Не заполнено или неверно заполнено поле VIN (VIN транспортного средства)

R06

Не заполнено или неверно заполнено поле GRN (Государственный регистрационный номер)

R07

Не заполнено или неверно заполнено поле KBM_N (коэффициент КБМ)

R08

Неверно заполнено поле S_S_OPL (количество страховых случаев)

R09

Не заполнено или неверно заполнено поле D_AKT (дата актуальности информации)

R10

Не заполнено или неверно заполнено поле SN_PASP (серия и номер паспорта страхователя)

R11

Не заполнено или неверно заполнено поле FAM (фамилия страхователя)

R12

Не заполнено или неверно заполнено поле NAME (имя страхователя)

R13

Не заполнено или неверно заполнено поле SNAME (отчество страхователя)

R14

Не заполнено или неверно заполнено поле INN (ИНН страхователя)

R15

Не заполнено или неверно заполнено поле UL_NAME (наименование организации - страхователя)

RDR

Дублирование записи по атрибуту RECID (идентификатор записи)

RDL

Дублирование запаси по атрибутам S_POL+N_POL (серия и номер полиса ОСАГО)

R16

Не заполнено или неверно заполнено поле FIZ_UR (признак страхователя юридическое/физическое лицо)

4. Кодификатор «Виды информационных посылок» - «Cod_IP02»

Cod

Name

O

Основная часть информации

D

Дополнительная часть информации

I

Исправленная часть информации (к основной информации)

J

Исправленная часть информации (к дополнительной информации)

4.8  Приложение 8. Правила первичного автоматического контроля отчетной информации страховых компаний

Контроль подготовленных СК первичных данных по реестрам договоров страхования и страхователям проводится в автоматическом режиме прикладным программным обеспечением Управления информационных технологий Российского Союза Автостраховщиков.

В рамках первичного автоматического контроля осуществляются следующие проверки:

·  соответствия форматов и структуры файлов действующим технологическим правилам их построения и заполнения;

·  соответствия данных, приведенных в записях файлов в кодированном виде, кодификаторам и справочникам НСИ, действующим в отчетный период;

·  полноты заполнения, синтаксис и семантику записей;

·  наличия дублированных записей в отчетных файлах.

4.8.1  Синтаксический контроль записей и проверка кодированной информации в файлах «Реестр данных по договорам страхования и страхователям».

Контроль записи реестра договоров страхования состоит из проверки полноты заполнения данных, соответствия кодированных данных справочникам и кодификаторам НСИ, информативности записи в целом. Описание осуществляемых при первичном автоматическом контроле проверок и применяемые коды ошибок приведены в таблице 1.

Таблица 1

Имя поля

Код ошибки

Правила проверки

Recid

R00

Ошибочным считается отсутствие заполнения атрибута «Recid».

S_Pol

R01

Ошибочным считается любое значение атрибута «S_Pol», отличное от набора символов «ААА» (верхний регистр, русский алфавит).

N_Pol

R02

Ошибочными считаются следующие случаи:

·  атрибут «N_Pol» заполнен значением, отличным от целого положительного числа;

·  атрибут «N_Pol» заполнен целым положительным числом, превышающим 9999999999.

Du_S

R03

Ошибочным считается:

·  отсутствие заполнения;

·  значения даты<01.07.2003;

·  значения даты>даты представления отчетных данных.

Du_F

R04

Ошибочным считается:

·  отсутствие заполнения;

·  значение даты<значения атрибута DU_S;

·  разница между значениями атрибутов DU_F и DU_S меньше 15 дней;

·  разница между значениями атрибутов DU_F и DU_S больше года.

VIN

R05

Ошибочным считаются:

·  отсутствие заполнения;

·  наличие каких-либо символов, кроме букв латинского алфавита и цифр;

·  заполнения поля значениями вида: НЕТ, ОТСУТСТВУЕТ, и. т.д.

GRN

R06

Ошибочным считаются:

·  отсутствие заполнения;

·  заполнения поля значениями вида: НЕТ, ОТСУТСТВУЕТ, и. т.д.

KBM_N

R07

Ошибочным считаются:

·  отсутствие заполнения;

·  заполнения поля значениями, не соответствующими справочнику «Разряды (классы) системы «БОНУС-МАЛУС»

S_S_OPL

R08

Ошибочными считаются отрицательные значения атрибута

D_AKT

R09

Ошибочным считаются:

·  отсутствие заполнения;

·  значения даты<01.07.2003;

·  значения даты более текущей (на момент проверки) даты;

SN_PASP

R10

Ошибочным считаются:

·  отсутствие заполнения для страхователей – физических лиц;

заполнения поля значениями вида: НЕТ, ОТСУТСТВУЕТ, и. т.д.

FAM

R11

Ошибочным считаются:

·  отсутствие заполнения для страхователей – физических лиц;

·  заполнения поля значениями вида: НЕТ, ОТСУТСТВУЕТ, и. т.д.

NAME

R12

Ошибочным считаются:

·  отсутствие заполнения для страхователей – физических лиц;

·  заполнения поля значениями вида: НЕТ, ОТСУТСТВУЕТ, и. т.д.

SNAME

R13

Атрибут заполняется только для страхователей – физических лиц

INN

R14

Ошибочным считаются:

·  отсутствие заполнения для страхователей – юридических лиц;

·  некорректный номер ИНН (проверяется в соответствии с правилами проверки контрольного числа, см. Приложение 3.10)

UL_NAME

R15

Ошибочным считаются:

·  отсутствие заполнения для страхователей – юридических лиц;

·  заполнения поля значениями вида: НЕТ, ОТСУТСТВУЕТ, и. т.д.


4.8.2  Выявление дублированных записей

Описание проверки файла «Реестр данных по договорам страхования и страхователям» на наличие дублированных записей приведено в таблице 2.

Таблица 2

Код ошибки

Правила проверки

RDR

Ошибочными считаются все выявленные повторы записей «Реестра договоров страхования» по идентификатору записи (атрибуту «Recid») – бракуются обе записи. К ошибочным относятся как полностью идентичные записи («чистые дубли»), так и записи, имеющие отличия в части иных атрибутов.

RDL

Ошибочными считаются все выявленные повторы записей «Реестра договоров страхования» по серии и номеру полиса – бракуются обе записи. К ошибочным относятся как полностью идентичные записи («чистые дубли»), так и записи, имеющие отличия в части иных атрибутов.

4.9  Приложение 9. Пример «Реестра данных по договорам страхования и страхователям» в формате XML

<?xml version="1.0" encoding="windows-1251"?>

<REESTR>

<POLICY

RECID="0000001"

S_POL="ААА"

N_POL="3321246312"

DU_S="2003-07-01"

DU_F="2004-06-30"

VIN="WBAAA143K39973461248375ZS"

GRN="Р056EM99"

KBM_N="1.00"

S_S_OPL="0"

D_AKT="2004-07-12"

FIZ_UR="1"

SN_PASP="46-00 034893"

FAM="ВЯЗЕМСКИЙ"

NAME="ДМИТРИЙ"

SNAME="НИКОЛАЕВИЧ"

INN="" NAME_UR=""

/>

<POLICY

RECID="0000002"

S_POL="ААА"

N_POL="1969845683"

DU_S="2004-01-01"

DU_F="2005-12-31"

VIN="ZZZ423409DF4234KL12312597"

GRN="Х330АМ77"

KBM_N="1.00"

S_S_OPL="1"

D_AKT="2004-07-12"

FIZ_UR="2"

SN_PASP=""

FAM=""

NAME=""

SNAME=""

INN="7770239898"

NAME_UR='ОАО "ФАЙНЭНС ГРУПП"'

/>

</REESTR>

4.10  Приложение 10. Порядок расчёта контрольного числа ИНН (пример функции на языке PASCAL)

// Функция вычисляет контрольное число ИНН и возвращает True если ИНН

// введен правильно или False в противном случае

// В качестве параметра передается проверяемый ИНН

// Для справки: структура ИНН

// 10-ти разрядный ИНН - NNNNXXXXXC

// 12-ти разрядный ИНН - NNNNXXXXXXCC

// где: NNNN - номер налоговой инспекции

// XXXXX, XXXXXX - порядковый номер налогоплательщика (номер записи в госреестре)

// C - контрольное число в 10-ти разрядном ИНН

// CC - контрольное число в 12-ти разрядном ИНН

// (фактически, идущие подряд две контрольные цифры)

//

function CheckINN(const INN: string): Boolean;

const

factor1: array[0..8] of byte = (2, 4, 10, 3, 5, 9, 4, 6, 8);

factor2: array[0..9] of byte = (7, 2, 4, 10, 3, 5, 9, 4, 6, 8);

factor3: array[0..10] of byte = (3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8);

var

i: byte;

sum: word;

sum2: word;

begin

Result := False;

try

if Length(INN) = 10 then begin

sum := 0;

for i:=0 to 8 do

sum := sum + StrToInt(INN[i+1])*factor1[i];

sum := sum mod 11;

sum := sum mod 10;

Result := StrToInt(INN[10]) = sum;

end

else if Length(INN) = 12 then begin

sum := 0;

for i:=0 to 9 do

sum := sum + StrToInt(INN[i+1])*factor2[i];

sum := sum mod 11;

sum := sum mod 10;

sum2 := 0;

for i:=0 to 10 do

sum2 := sum2 + StrToInt(INN[i+1])*factor3[i];

sum2 := sum2 mod 11;

sum2 := sum2 mod 10;

Result := (StrToInt(INN[11]) = sum) and

(StrToInt(INN[12]) = sum2);

end;

except

Result := False;

end;

end;