Форум: "Потрепаться";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];
ВнизАлгоритмы проверки ИНН, ОГРН, КПП и прочих номеров. Найти похожие ветки
← →
Карелин Артем (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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c