Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.10;
Скачать: CL | DM;

Вниз

Алгоритмы проверки ИНН, ОГРН, КПП и прочих номеров.   Найти похожие ветки 

 
Карелин Артем ©   (2003-02-19 09:57) [0]

Где найти?


 
Карелин Артем ©   (2003-02-19 16:32) [1]

up


 
AK-74 ©   (2003-02-19 16:51) [2]

Ну не бывает "правильных" ИННов! Только первые четыре цифры - типа номера налоговой


 
Reindeer Moss Eater   (2003-02-19 16:54) [3]

Длина правильных ИНН - 10 или 12 символов. Все символы - арабские цифры


 
Sergey Masloff   (2003-02-19 17:13) [4]

Проверка ИНН. Автор функции - А.Камбалов (ACampball@mail.ru)
Думаю, комментариев не надо

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; // try
end;



 
Ketmar ©   (2003-02-19 17:20) [5]

мда. комментариев не надо. проще сразу расстрелять за такой код.

Satanas Nobiscum! 19-Feb-XXXVIII A.S.


 
Sergey Masloff   (2003-02-19 17:30) [6]

Ketmar ©
>проще сразу расстрелять за такой код

Вашей версии я что-то не увидел. Так что лучше б Вам, уважаемый, помолчать пока ;-)


 
Delirium^.Tremens ©   (2003-02-19 17:45) [7]


> Вашей версии я что-то не увидел. Так что лучше б Вам, уважаемый,
> помолчать пока ;-)

Украинским эльфам еще не присвоили ИНН :-)


 
handra ©   (2003-02-19 17:49) [8]

Проверка правильности страхового номера пенсионного фода.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function CheckPFCertificate(const PF: string): Boolean;
var
sum: Word;
i: Byte;
begin
Result := False;
sum := 0;
if Length(PF) <> 11 then Exit;

try
for i:=1 to 9 do
sum := sum + StrToInt(PF[i])*(9-i+1);
sum := sum mod 101;
Result := StrToInt(Copy(PF, 10, 2)) = sum;
except
Result := False;
end; // try
end;


 
Ketmar ©   (2003-02-19 17:55) [9]

>Sergey Masloff (19.02.03 17:30)
а я вообще не знаю что такое ИНН.

Satanas Nobiscum! 19-Feb-XXXVIII A.S.


 
MsGuns ©   (2003-02-19 21:49) [10]

>Ketmar © (19.02.03 17:55)
> а я вообще не знаю что такое ИНН.

Вырастешь - узнаешь ;)




 
Карелин Артем ©   (2003-02-20 12:12) [11]

Sergey Masloff (19.02.03 17:13), handra © (19.02.03 17:49) Спасибо.

А по другим номерам есть что-либо?


 
VictorT ©   (2003-02-21 10:45) [12]

Я пол года проработал в пенсионном фонде, могу сказать одно - хотя для ИНН и есть определёные правила, сама налоговая их слабо соблюдает. К примеру я могу сказать, что они не уникальны (я сам лично видел сотни одинаковых номеров). А когда среди них ещё и встречаются однофамильцы_тёзки_одинаковое_отчество_дата_рождения (что тоже не редкий случай), то получается, что вообще невозможно идентифицировать человека. Формат точно не помню, но в номере зашифрована дата рождения и пол (правда часто неправильно).


 
Reindeer Moss Eater   (2003-02-21 11:04) [13]

А какие значения может принимать пол? (полный список)


 
Danilka ©   (2003-02-21 11:19) [14]

VictorT © (21.02.03 10:45)
полная лажа.
я работал в НИ полтора года, правдад давно тогда только у предприятий инн были, сейчас у меня там брат работает, специально у него спросил как инн они делают.

1. никакой привязки к имени и фамилии. в каждом городе х..ва куча людей с одинаковым именем фамилией и отчеством., и полом соответсвенно :)) по полу тоже никакой привязки.
2. инн в базе - уникальный. если подаются сведения с одинаковыми ИНН, но на разных людей, то у таких людей от отбирается :)) короче, им надо получать новый инн...
3. инн формируется так - первые цифры код налоговой, последние две - CRC, а посередке - счетчик в программе, но могут и сами ручками забить, если кому надо - могут попросить клевый номер...
4. идентифицировать можно легко по паспортным данным они всегда уникальны. правда тут геморой с замной паспортов, но вполне решаемый.


 
VictorT ©   (2003-02-21 14:37) [15]


> А какие значения может принимать пол? (полный список)

Насколько я помню, пол кодировался чётностью или нечётностью одной из цифр.

> Danilka © (21.02.03 11:19)

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


 
Danilka ©   (2003-02-21 14:38) [16]

VictorT © (21.02.03 14:37)
>Ну, я вообще-то про Украину говорил

тады, может быть, извиняйте за грубый тон, я про тольятти говорил...



Страницы: 1 вся ветка

Текущий архив: 2003.03.10;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
14-30029
trotski
2003-02-24 13:29
2003.03.10
Дорвался до инета!


7-30158
dinn
2003-01-13 02:01
2003.03.10
RichEdit


9-29687
Fog
2002-10-12 13:51
2003.03.10
3 вопроса про OpenGL


1-29817
msoftware
2003-02-28 05:12
2003.03.10
ПОЧЕМУ ВОЗНИКАЕТ ABSTRACT ERROR???


14-30024
Makhanev A.S.
2003-02-24 00:54
2003.03.10
Стиль программирования...