powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Идентификационный номер налогоплательщика
28 сообщений из 28, показаны все 2 страниц
Идентификационный номер налогоплательщика
    #32660158
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток!!!

Может кто-нибудь в курсе:
1) как формируестя сабж
2) есть ли у кого-нибудь алгоритм (ну или готовая программка) по проверке сабжа

P.S. все это надо для программки (чтобы при вводе в поле ИНН, он проверялся на достоверность)

P.P.S. если есть какие-либо предложения или советы, пишите :)
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32660206
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не уверен в универсальности данного описания, но у нас на Украине 10-значный ид_код налогоплательщика имеет следующие особенности:
1) первые 5 цифр есть не что иное, как разница между датой рождения человека и началом прошлого века (за исключением некоторых лиц, родившихся в районе 1949 года - там несколько иные правила ввиду избыточного количества новорожденных в тот период - на всех не хватает 10-тицифровых уникальных комбинаций при таком количестве одинаковых первых 5-ти цифр);
2) предпоследняя цифра у женщин всегда четная, а у мужчин - нечетная;
3) остальные цифры связаны с местом рождения (получения кода).
Первую особенность я использую для вычисления неизвестной даты рождения по известному ид_коду:
дата_рожд=dtoc(date(1899,12,31)+val(substr(id_kod,1,5)))
где id_kod - есть ид_код налогоплательщика, записанный в строчном виде.
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32660585
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расчет контрольной суммы ИНН и 20-разрядных банковских счетов

http://www.foxclub.ru/sol/index.php?act=view&id=236
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32669680
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka
1) первые 5 цифр есть не что иное, как разница между датой рождения человека и началом прошлого века (за исключением некоторых лиц, родившихся в районе 1949 года - там несколько иные правила ввиду избыточного количества новорожденных в тот период - на всех не хватает 10-тицифровых уникальных комбинаций при таком количестве одинаковых первых 5-ти цифр);
2) предпоследняя цифра у женщин всегда четная, а у мужчин - нечетная;
3) остальные цифры связаны с местом рождения (получения кода).
Первую особенность я использую для вычисления неизвестной даты рождения по известному ид_коду:
дата_рожд=dtoc(date(1899,12,31)+val(substr(id_kod,1,5)))
где id_kod - есть ид_код налогоплательщика, записанный в строчном виде.


1) СПАСИБО за ответ, очень благодарен.

2) ОЧЕНЬ помогло, еще раз СПАСИБО. Но все-таки хотелось бы (ну просто очень хотелось бы :) ) узнать как расчитывается полный номер.

С увадением, StasK
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32669682
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМРасчет контрольной суммы ИНН и 20-разрядных банковских счетов

http://www.foxclub.ru/sol/index.php?act=view&id=236

ВладимирМ, Вам тоже большое спасибо, но суть в том, что на Украине действительно формирование ИНН-а отличается от ИНН-а в России :(

С уважением, StasK
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32669709
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To StasK:
Рад, что Вам пригодилась моя информация. Попытаюсь раздобыть более полное описание, сообщу.
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32669738
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цифры с 6-ой по 8-ую - просто порядковый номер поступления данных о человеке в центральную базу за текущие сутки. Последняя цифра контрольная, но, sorry, алгоритма не знаю. Речь идет, разумеется о ДРФО :-)))
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32669743
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Надеюсь, ты не собрался коды "генерировать"? :-)))
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32670690
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajkaTo StasK:
Рад, что Вам пригодилась моя информация. Попытаюсь раздобыть более полное описание, сообщу.

СПАСИБО !!!
Можно и на мыло

С уважением, StasK
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32670700
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ!

RedrikP.S. Надеюсь, ты не собрался коды "генерировать"? :-)))

Нет я не собираюсь "генерировать коды", дело в том, что когда клиент сообщает свои данные, нужно проверить их соответствие
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32670709
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клиент устно называет свой код, который нужно проверить? Требуй лучше предъявления справки из налоговой!
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32672323
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To StasK:
Redrik действительно прав – цифры с 6-й по 8-ю являются лишь статистическим порядковым номером и смысловой нагрузки практически не несут, так что описание можно считать исчерпанным.
To Redrik:
Насчет предъявления справки из налоговой – не всегда она имеется у посетителя при себе, да и (если задаться целью) сбацать ее при помощи Фотошопа (в смысле – с «левым» кодом) не составляет больших усилий (по своей службе «государевой» мне иногда приходится разбирать подобные случаи); а вот проверить «на лету» истинность сообщенного кода – зачастую очень необходимо:
1) видели бы вы отвисшую челюсть недобросовестного клиента, когда его тут же уличают в том, что он назвал «женский» код! После этого он задумчиво пристыженный идет-таки за своей налоговой справкой;
2) если зрелая (около 40 лет) дама с невозмутимым нахальным видом сообщает код 18-летней девушки – картина иногда становится еще более комичной, особенно, если учесть, что разоблачение происходит мгновенно и тут же – без каких либо подручных средств и компьютерных проверок – люди, работающие с этой системой уже навскидку могут сказать по первым 5-цифрам кода год рождения собеседника, это не сложно. Если интересно, можете на досуге составить себе таблицу из 2-х полей:
1-е поле дата (начиная с 1 января, допустим 1960 года, все последующие записи – 1 января последующих лет);
2-е поле – количество дней, прошедших с начала века до 1 января указанного в 1-м поле года – это и есть первые 5 цифр кода родившегося в этот день человека (можно вычислить как разницу между этим самым 1 января и 31.12.1899), например: dtoc(date(1960,01,01) - dtoc(date(1899,12,31);
После этого, даже прикидочным взглядом вы сможете оценить разницу в первых 5-ти цифрах кода для людей, родившихся (по крайней мере!) в разных 5-летках.
Опять же, это актуально лишь для того, кто связан с кодами налогоплательщиков по роду своей работы, а для обычных граждан это может представлять лишь любопытную игрушку, не более того.
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32672611
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не-а! Описание не исчерпано!
Предпоследняя цифра - чёт/нечёт - но какая ?
Последняя контрольная - как считать?
.
to neznajka:
Знаю-знаю... Всё знаю... Это я счас в предпринимателях... А до этого - 1996-2002 - начальник отдела компьютеризации налоговой инспекции... :-)))
А комичные ситуации бывают и не такие... Вот, например - дождь, лужи, едет жигуль на хорошей скорости и обляпывает симпатишную молоденькую (незнакомую) барышню. Запоминаем номер, находим его хозяина по ГАИшной базе, находим его в ДРФО... и т.д. Потом, часа в два-три ночи звоним, поздравляем его жену с днем рождения и предупреждаем - ежели ты, падлюка, еще хоть одну барышню (или не барышню) обляпаешь, то жди проблем... :-) Действует ураганно!!!
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32674243
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем СПАСИБО за Ваши ответы, очень помогло :)
Если будут еще какие-нибудь предложения, жду...

------------------------------
С уважением, StasK
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32707660
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Больше нет идей ??? :( Я насчет контрольной цифры ???
Это все еще актуально !!!!!!!!!!!!!!!!!

------------------------------
С уважением, StasK
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32711580
Iva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Iva
Гость
para param1
set talk off
if para()=0
Return .t.
endif
private k,conSum,coSum,cSum,aConst,i
do case
case type('m.param1')="C"
m.param1=int(val(m.param1))
case type('m.param1')="N"
*
other
return .t.
endcase
conSum=padl(int(m.param1),10,'0')
dime aConst(1,9)
store 0 to aConst
aConst(1,1)= -1
aConst(1,2)= 5
aConst(1,3)= 7
aConst(1,4)= 9
aConst(1,5)= 4
aConst(1,6)= 6
aConst(1,7)= 10
aConst(1,8)= 5
aConst(1,9)= 7
m.cSum=0
for m.k=1 to 9
cSum = cSum+aConst[1,k]*Val(SubStr(conSum,k,1))
next
coSum=(cSum%11)%10
return (padl(coSum,1,'0')=substr(m.conSum,10,1))[SRC][/SRC]
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32752514
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivapara param1
set talk off
if para()=0
Return .t.
endif
private k,conSum,coSum,cSum,aConst,i
do case
case type('m.param1')="C"
m.param1=int(val(m.param1))
case type('m.param1')="N"
*
other
return .t.
endcase
conSum=padl(int(m.param1),10,'0')
dime aConst(1,9)
store 0 to aConst
aConst(1,1)= -1
aConst(1,2)= 5
aConst(1,3)= 7
aConst(1,4)= 9
aConst(1,5)= 4
aConst(1,6)= 6
aConst(1,7)= 10
aConst(1,8)= 5
aConst(1,9)= 7
m.cSum=0
for m.k=1 to 9
cSum = cSum+aConst[1,k]*Val(SubStr(conSum,k,1))
next
coSum=(cSum%11)%10
return (padl(coSum,1,'0')=substr(m.conSum,10,1))

Это расчет контрольной цифры??? А так чтобы полный номер брало и проверяло: дату рождения, пол, и контрольную цифру ???
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32752678
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загоняй номер в компутер и проверяй! В чем проблема? Проверить-то компутером ты можешь только правильность контрольной цифры... Пол не проверишь... :-)
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32752976
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedrikЗагоняй номер в компутер и проверяй! В чем проблема? Проверить-то компутером ты можешь только правильность контрольной цифры... Пол не проверишь... :-)

Спасибо!
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32915269
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сабж

------------------------------
С уважением, StasK
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32915299
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первые 4 цифры - номер налоговой инспекции где выдан (по адресу из КЛАДР"а), остальные - просто счётчик. Никаких контрольных цифр нет, проверка на достоверность невозможна.
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #32915300
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На украине вероятно примерно то же.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Идентификационный номер налогоплательщика
    #35960565
charset
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на украине и в россии вычисляется по разному. Украина 1-5 разница между ДР и 01011900, 9й пол, 10 контрольное число. ОКПО 8мь символов.

В россии код 12 символов, ОКПО 10. 1-4 код налогового органа
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #35960925
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делал проверку Проверка контрольной цифры-Налоговый и идентификационные коды Украина
Там есть и "вытаскивание " дня рождения и пола
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #35963839
Grin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДЛЯ УКРАИНЫ

код не мой

Проверка ключевания лицевого счета на мфо банка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
PROCEDURE check_ls
LPARAMETERS par1,par2
*par1- МФО
*par2- ЛС
DIMENSION arr( 19 )
STORE  1  TO arr( 1 )
STORE  3  TO arr( 2 )
STORE  7  TO arr( 3 )
STORE  1  TO arr( 4 )
STORE  3  TO arr( 5 )
STORE  3  TO arr( 6 )
STORE  7  TO arr( 7 )
STORE  1  TO arr( 8 )
STORE  3  TO arr( 9 )
STORE  0  TO arr( 10 )
STORE  1  TO arr( 11 )
STORE  3  TO arr( 12 )
STORE  7  TO arr( 13 )
STORE  1  TO arr( 14 )
STORE  3  TO arr( 15 )
STORE  7  TO arr( 16 )
STORE  1  TO arr( 17 )
STORE  3  TO arr( 18 )
STORE  7  TO arr( 19 )
lll=LEN(ALLTRIM(par1))
stroc1=LEFT(par2, 5 )+PADR(par1, 14 ,'0')
res= 0 
FOR i= 1  TO  19 
	res=MOD(res+(val(substr(stroc1,i, 1 ))*arr[i]), 10 )
next
res=MOD(MOD(res+lll, 10 )* 7 , 10 )
if res<>VAL(substr(par1, 5 , 1 ))
   CheckKey=.f.
else 
   CheckKey=.t.
endi
RETURN CheckKey

Проверяет контрольный разряд в коде ЄДРПОУ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
Function check_edrpou_ukr(IDK )
Local lnKod,lnCS,ret
If Type('IDK')='N'
	IDK=Padl(Transform(IDK), 8 ,'0')
Else
	IDK=Alltrim(IDK)
Endif

If Len(IDK)<> 8 
	Return - 1 
Endif

If Val(IDK) <  30000000  Or Val(IDK) >  60000000 
	lnCS = Val(Left(IDK,  1 )) +;
		VAL(Substr(IDK,  2 ,  1 )) *  2  +;
		VAL(Substr(IDK,  3 ,  1 )) *  3  +;
		VAL(Substr(IDK,  4 ,  1 )) *  4  +;
		VAL(Substr(IDK,  5 ,  1 )) *  5  +;
		VAL(Substr(IDK,  6 ,  1 )) *  6  +;
		VAL(Substr(IDK,  7 ,  1 )) *  7 
Else
	lnCS = Val(Left(IDK,  1 )) *  7  +;
		VAL(Substr(IDK,  2 ,  1 )) +;
		VAL(Substr(IDK,  3 ,  1 )) *  2  +;
		VAL(Substr(IDK,  4 ,  1 )) *  3  +;
		VAL(Substr(IDK,  5 ,  1 )) *  4  +;
		VAL(Substr(IDK,  6 ,  1 )) *  5  +;
		VAL(Substr(IDK,  7 ,  1 )) *  6 
Endif

*lnKod = lnCS - Int(lnCS /  11 ) *  11 
lnKod=Mod(lnCS, 11 )

If lnKod =  10  Then
	If Val(IDK) <  30000000  Or Val(IDK) >  60000000 
		lnCS = Val(Left(IDK,  1 )) *  3  +;
			VAL(Substr(IDK,  2 ,  1 )) *  4  +;
			VAL(Substr(IDK,  3 ,  1 )) *  5  +;
			VAL(Substr(IDK,  4 ,  1 )) *  6  +;
			VAL(Substr(IDK,  5 ,  1 )) *  7  +;
			VAL(Substr(IDK,  6 ,  1 )) *  8  +;
			VAL(Substr(IDK,  7 ,  1 )) *  9 
	Else
		lnCS = Val(Left(IDK,  1 )) *  9  +;
			VAL(Substr(IDK,  2 ,  1 )) *  3  +;
			VAL(Substr(IDK,  3 ,  1 )) *  4  +;
			VAL(Substr(IDK,  4 ,  1 )) *  5  +;
			VAL(Substr(IDK,  5 ,  1 )) *  6  +;
			VAL(Substr(IDK,  6 ,  1 )) *  7  +;
			VAL(Substr(IDK,  7 ,  1 )) *  8 
	Endif

	lnKod=Mod(lnCS, 11 )

	If lnKod =  10 
		lnKod =  0 
	Endif
Endif
If Val(right(IDK, 1 ))=lnKod
	ret=lnKod
Else
	ret=- 1 
Endif

Return ret


Проверка ИНН физ лица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
Function check_inn_ukr(IDK ,mode)
Local lnKod,lnCS,ret
If Empty(mode)
	mode= 0 
Endif
If Type('IDK')='N'
	IDK=Transform(IDK)
Else
	IDK=Alltrim(IDK)
Endif

If Len(IDK)<> 10  And Len(IDK)<> 12  And Len(IDK)<> 9 
	Return - 1 
Endif
Do Case
Case Len(IDK)= 10 
* Физ.лицо
	lnCS = Val(Left(IDK,  1 ))   * - 1  +;
		VAL(Substr(IDK,  2 ,  1 )) *  5  +;
		VAL(Substr(IDK,  3 ,  1 )) *  7  +;
		VAL(Substr(IDK,  4 ,  1 )) *  9  +;
		VAL(Substr(IDK,  5 ,  1 )) *  4  +;
		VAL(Substr(IDK,  6 ,  1 )) *  6  +;
		VAL(Substr(IDK,  7 ,  1 )) *  10  +;
		VAL(Substr(IDK,  8 ,  1 )) *  5  +;
		VAL(Substr(IDK,  9 ,  1 )) *  7 

	lnKod=Mod(lnCS, 11 )
	
	If  lnKod= 10 
		lnKod= 0 
	Endif

	If Val(Right(IDK, 1 ))=lnKod
		If mode= 0 
			ret=lnKod
		Else
			ret='Код правильный. Дата рождения-'+Transform(Date( 1899 , 12 , 31 )+Val(Substr(IDK, 1 , 5 )))+'. Пол-'+Iif(Mod(Val(Substr(IDK, 9 , 1 )), 2 )= 0 ,'<Ж>','<М>')
		Endif
	Else
		If mode= 0 
			ret=- 1 
		Else
			ret='Код неправильный'
		Endif
	Endif
Case Len(IDK)= 12 
* юр.лицо
	lnCS = Val(Left(IDK,    1 ))  *  11  +;
		VAL(Substr(IDK,  2 ,  1 ))  *  13  +;
		VAL(Substr(IDK,  3 ,  1 ))  *  17  +;
		VAL(Substr(IDK,  4 ,  1 ))  *  19  +;
		VAL(Substr(IDK,  5 ,  1 ))  *  23  +;
		VAL(Substr(IDK,  6 ,  1 ))  *  29  +;
		VAL(Substr(IDK,  7 ,  1 ))  *  31  +;
		VAL(Substr(IDK,  8 ,  1 ))  *  37  +;
		VAL(Substr(IDK,  9 ,  1 ))  *  41  +;
		VAL(Substr(IDK,  10 ,  1 )) *  43  +;
		VAL(Substr(IDK,  11 ,  1 )) *  47 

	lnKod=Mod(lnCS, 11 )

	If  lnKod= 10 
		lnCS = Val(Left(IDK,    1 ))  *  13  +;
			VAL(Substr(IDK,  2 ,  1 ))  *  17  +;
			VAL(Substr(IDK,  3 ,  1 ))  *  19  +;
			VAL(Substr(IDK,  4 ,  1 ))  *  23  +;
			VAL(Substr(IDK,  5 ,  1 ))  *  29  +;
			VAL(Substr(IDK,  6 ,  1 ))  *  31  +;
			VAL(Substr(IDK,  7 ,  1 ))  *  37  +;
			VAL(Substr(IDK,  8 ,  1 ))  *  41  +;
			VAL(Substr(IDK,  9 ,  1 ))  *  43  +;
			VAL(Substr(IDK,  10 ,  1 )) *  47  +;
			VAL(Substr(IDK,  11 ,  1 )) *  53 
		lnKod=Mod(lnCS, 11 )
		If  lnKod= 10 
			lnKod= 0 
		Endif
	Endif

	If Val(Right(IDK, 1 ))=lnKod
		If mode= 0 
			ret=lnKod
		Else
			ret='Код правильный.'
		Endif
	Else
		If mode= 0 
			ret=- 1 
		Else
			ret='Код неправильный'
		Endif
	Endif
Otherwise
* ТРДПАУ
	lnCS = Val(Left(IDK,    1 ))  *  9  +;
		VAL(Substr(IDK,  2 ,  1 ))  *  11  +;
		VAL(Substr(IDK,  3 ,  1 ))  *  13  +;
		VAL(Substr(IDK,  4 ,  1 ))  *  17  +;
		VAL(Substr(IDK,  5 ,  1 ))  *  19  +;
		VAL(Substr(IDK,  6 ,  1 ))  *  23  +;
		VAL(Substr(IDK,  7 ,  1 ))  *  29  +;
		VAL(Substr(IDK,  8 ,  1 ))  *  31 

	lnKod=Mod(lnCS, 11 )

	If  lnKod= 10 
		lnCS = Val(Left(IDK,    1 ))  *  11  +;
			VAL(Substr(IDK,  2 ,  1 ))  *  13  +;
			VAL(Substr(IDK,  3 ,  1 ))  *  17  +;
			VAL(Substr(IDK,  4 ,  1 ))  *  19  +;
			VAL(Substr(IDK,  5 ,  1 ))  *  23  +;
			VAL(Substr(IDK,  6 ,  1 ))  *  29  +;
			VAL(Substr(IDK,  7 ,  1 ))  *  31  +;
			VAL(Substr(IDK,  8 ,  1 ))  *  37 

		lnKod=Mod(lnCS, 11 )
		If  lnKod= 10 
			lnKod= 0 
		Endif
	Endif

	If Val(Right(IDK, 1 ))=lnKod
		If mode= 0 
			ret=lnKod
		Else
			ret='Код правильный.'
		Endif
	Else
		If mode= 0 
			ret=- 1 
		Else
			ret='Код неправильный'
		Endif
	Endif
Endcase
Return ret

Описание и пример в Excel
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #35973142
agatata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1024Первые 4 цифры - номер налоговой инспекции где выдан (по адресу из КЛАДР"а), остальные - просто счётчик. Никаких контрольных цифр нет, проверка на достоверность невозможна.
ИНН физического лица : первые 4 цифры - номер налогового органа
следующие 6 знаков - порядковый номер в базе данных налогового органа
последние 2 цифры - контрольные
ИНН юридического лица: аналогично, только контрольный разряд один.
Номер налоговой инспекции содержится не к кладре (хотя там, наверное, тоже есть), а в специальной таблице типа соул, кажется (простите, давно там не работаю, могу ошибиться в названии).
Проверка контрольного разряда идет по модулю 11. Если кому-то надо, могу выдрать код проверки из старой проги.
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #35973165
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да вобщем-то когда этот вопрос задавался, т.е. в 2004 году, я работал в конторе которая софт для работы с инн писала. Я тупо спросил у программиста который отвечал за инн что внутри номера. Он сказал что никаких дат рождения, секретных кодов и пр. там нет. Просто номер налоговой, счётчик и сумма. Проверить валидность инн невозможно.
...
Рейтинг: 0 / 0
Идентификационный номер налогоплательщика
    #35973168
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и это правильно, кстати. Валидность инн может проверить и должна проверять только налоговая.
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Идентификационный номер налогоплательщика
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]