ПРОВЕРКА СИКА НА ВЕРНОЕ ЗНАЧЕНИЕ | |
Коротко: В данной статье рассказывается о методе генерации и проверки СИКов. В статье же представлены две функции для генерации СИКа и для проверки. Учтите что присвоение СИКов это прерогатива пенсионных фондов, а не разработчиков программного обеспечения. | |
К моему сожалению, я не нашел сам алгоритм формирования СИКов. Но зато нашел dll модуль, которое это производит. Известно только то, что СИК формируется от данных фамилии, имени, отчества и даты рождения. | |
Учтите, что права на присвоение СИКов принадлежит Пенсионному фонду. Мы можем только предупреждать пользователя программы что СИК не верный, и при его согласии давать «возможно верное» значение. Вероятность генерации верного значения – 99,43% Процент «промаха» составляют люди, у которых одинаковые фамилия, имя, отчество и дата рождения. | |
Пример функций на Delphi. Слить tsric321.dll (28Кб) --- Interface function TestData(date,ric:PChar):integer;stdcall; function TestRic(ric:PChar):integer;stdcall; implementation function TestData(date,ric:PChar):integer;external 'tsric321.dll'; function TestRic(ric:PChar):integer;external 'tsric321.dll'; // проверка сика на правильность function TestSPC(fam,name,otch,spc:string;god:double):boolean; var buff : array[0..100]of char; spc_ : array[0..17]of char; I : integer; S : string; begin Result:=false; s:=trim(fam)+trim(name)+trim(otch)+FormatDateTime('ddmmyyyy',god)+#0; for i:=0 to Length(s)-1 do buff[i]:=s[i+1]; spc_:='000000000000000T'#0; i:=TestData(buff,spc_); TestRic(spc_); Result:=spc=spc_; end; // генерирует сик по имени фамилии отчеству и дате рождения function GenSPC(fam,name,otch:string;god:double):String; var buff : array[0..100]of char; spc_ : array[0..17]of char; I : integer; S : string; begin Result:='0000000000000000'; s:=trim(fam)+trim(name)+trim(otch)+FormatDateTime('ddmmyyyy',god)+#0; for i:=0 to Length(s)-1 do buff[i]:=s[i+1]; spc_:='000000000000000T'#0; i:=TestData(buff,spc_); TestRic(spc_); Result:=spc_; end; --- | |
без согласия автора публикация, распространение запрещена |