powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / контроль ИНН для юр.лиц Украина
47 сообщений из 47, показаны все 2 страниц
контроль ИНН для юр.лиц Украина
    #34901469
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, у кого есть алгоритм расчета контрольного разряда 12-ти значного ИНН для юридических лиц - для Украины.
а если будет еще и для 9-ти значного - то размерам моей благодарности не будет пределов в разумных границах.
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34903109
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... В один день у нас возникла одна задача? ;-)
Только что нашел и наваял вычисление 8-ой цифры в ЄДРПОУ...
Завтра пороюсь по твоему вопросу (тем более, что и самому нужно!)
P.S. Если не секрет - зачем?
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34903211
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Засунул в гугль "Алгоритм для вычисления контрольных чисел" + немного "детских" воспоминаний... = чЮйствую, что должны быть простые числа...
Проверим? ;-)
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34903729
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для Украины ЄДРПОУ есть , есть расчет ИНН физ-лица
есть расчеты ОГРН и ИНН для России.
Ежели надо - могу поделиться.

А для чего нужно ?
нужно для проверки правильности вносимой информации в справочник контрагентов.
т.е. есть идея чтобы не плодились двойники при вводе новой фирмы- проверять коды.
ну и ясное дело неплохо-бы ети коды проверять на правильность и достоверность.

Насчет поиска по "Алгоритм для вычисления контрольных чисел" - не пробовал, но по Індивідуальний податковий номер + контрольний розряд - искал - пока ничего толкового не нашел.
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34904410
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=AlexiS=-неплохо-бы ети коды проверять на правильность и достоверность.
Угу... Актуально!
Меня лично это "достало" настолько, что на днях сделал проверку...
Приносят списки (WORD) - или коды ЄДРПОУ, или номера свидетельств, или ИПНы.
Я их загоняю в табличку, а потом вытягиваю все, что есть на www.sta.gov.ua. Результат - вся "история" в XLS...
Могу поделиться! ;-)
P.S. Глянь почту! Проверка связи... :-)
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34904488
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо - почту получил.
Ответ - мылом
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34909075
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=AlexiS=-
есть расчеты ОГРН и ИНН для России.
Ежели надо - могу поделиться.

Можно со мной поделиться?
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34909547
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kruchinin PahanМожно со мной поделиться?
да лЁгко, почту давай
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34909909
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=AlexiS=- Kruchinin PahanМожно со мной поделиться?
да лЁгко, почту давай
Послал на мыло, указанное в профиле.

2Moder: Sorry Offtop
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34917033
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=AlexiS=-для Украины ЄДРПОУ есть , есть расчет ИНН физ-лица
есть расчеты ОГРН и ИНН для России.
Ежели надо - могу поделиться.

А для чего нужно ?
нужно для проверки правильности вносимой информации в справочник контрагентов.
т.е. есть идея чтобы не плодились двойники при вводе новой фирмы- проверять коды.
ну и ясное дело неплохо-бы ети коды проверять на правильность и достоверность.

Насчет поиска по "Алгоритм для вычисления контрольных чисел" - не пробовал, но по Індивідуальний податковий номер + контрольний розряд - искал - пока ничего толкового не нашел.
Можете ещё мне скинуть. На выходных на форум не заглядывал. Может быть уже позно, ушол поезд.
Зарание благодарен!
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34917070
t03
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=AlexiS=-
Можно и мне? Зарание благодарен!
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34918802
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сегодня выложено в решениях на фоксклубе под названиями.
Проверка контрольной цифры-Налоговый и идентификационные коды Россия
Проверка контрольной цифры-Налоговый и идентификационные коды Украина

НО пока в списке еще не появилось .
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34927359
t03
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто знает, что закодированно в Инн человека (Украина, 10 цифр) в 6-8 позициях?
1-5 дата рождения, 9 - пол, 10 - контрольная сумма.
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34929509
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=AlexiS=-Сегодня выложено в решениях
Ошибка в check_inn_ukr.prg - line 69 col 40...
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34929511
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t03А кто знает, что закодированно в Инн человека (Украина, 10 цифр) в 6-8 позициях?
1-5 дата рождения, 9 - пол, 10 - контрольная сумма.
Ничего интересного! 200%!!! ;-)
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34931489
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Redrik
Спасибо - "очепятка" однако
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34974279
t03
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to -=AlexiS=-
Ошибка, однако, в этом куске кода:
* Физ.лицо
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
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 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
а че делать если lnKod=10: должен быть либо дополнительный расчет lnCS как в других ветках CASE либо:
Код: plaintext
1.
2.
If  lnKod= 10 
    lnKod= 0 
Endif
А что должно все-таки быть...?
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34974631
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно я не знаю .
В тех описаниях , что есть у меня, про это ничего не написано.
пока что поставил
Код: plaintext
1.
2.
If  lnKod= 10 
    lnKod= 0 
Endif
Но вот что интересно - а такое может быть, может первый множитель <-1> исключает такую возможность ?
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34975233
t03
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по моей статистике, скорее всего так и есть, но это нужно знать точно. По крайней мере большинство ошибочных кодов кончается как раз на "0". Вариант:
Код: plaintext
1.
2.
If  lnKod= 10 
    lnKod= 0 
Endif
как раз подходит для них.
Что касается второго вопроса, то -1 ничего не решает :) Первая цифра кода сейчас от 1 до 3, так что это мало влияет при перемножении и суммировании других цифр.
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34976611
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Должно быть так и никак иначе!
Код: plaintext
lnKod=MOD(MOD(lnCS, 11 ), 10 )
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34977169
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага - я тоже вчера нарыл это в каком-то форуме.
в принципе - это то-же что приведено выше,просто компактнее
хотя все это и логично , но как-бы официально про это нигде не написано , хотя и самих-то алгоритмов в законе-то и нет.
я вообще не понимаю нафига прятать эти алгоритмы .
в Российской законодательной базе все подробно расписано - а у нас прям тайны мадридского двора.
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34978373
t03
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в нашей стране почти все, особенно если это связанно с государством, делается не через мозги, а через другое место.
Если Redrik так уверенно предлагает вариант, значит он знает, что говорит . Тем более, что по логике так и получается.
В общем пока не нашли другого варианта останавливаемся на варианте

lnKod=MOD(MOD(lnCS,11),10)
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34979422
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexiS...у нас прям тайны мадридского двора
Зато у них справки в налоговой без дениг не дают!
Я в инете читал!
t03...знает, что говорит
Не сомневайся - другого варианта не существует!
"Надійність, перевірена часом!" (с)...
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #34998366
t03
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redrik, a ты думаешь наша налоговая все вопросы без денег решает ), за одно пролетарское СПАСИБО )))))
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35000001
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t03Redrik, a ты думаешь наша налоговая все вопросы без денег решает ), за одно пролетарское СПАСИБО )))))
Хе-хе, я ж про то, что "официально"...
Алгоритм контрольной цифры определен внутренним документом, а не расписан в законе - поэтому нигде не опубликован. Более того - поскольку каждая контора вправе присваивать своим документам степень "конфиденциальности", поэтому этот алгоритм "для служебного использования". Лично я считаю, что это необоснованное "завышение секретности" и такое дело, кстати, наказуемо! Но, пока у нас не совсем "закон один для всех"...
P.S. Кстати, я решаю вопросы без денег! Чессно слово!
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35109432
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to AlexiS!
Могу ошибиться, но Вам стоило бы посетить свою налоговую - у них в базе Ваше отчество занесено под кодом 10493, а надо бы - 114! IMHO, конечно...
ЧуднЫе справочники! Ключница делала... ;-)

Теперь о деле: Вот тут было бы интересно порыться...
Все хорошо, но добиться сохранения найденной информации (таблички) не могу!
Делаю так:
Код: plaintext
1.
2.
3.
CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
...
poWinHttp.ResponseText
...
Может поможете?
И, заодно - как потом "нажать" кнопку " ВПЕРЕД "?
(Парни "зашифровались" - ФИО переделали на русский, адреса остались украинские...)
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35110018
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedrikМогу ошибиться, но Вам стоило бы посетить свою налоговую - у них в базе Ваше отчество занесено под кодом 10493, а надо бы - 114!
Блин нашел себя - данные - ну очень старые. И отчество неправильно - хрен знает как переводили.
А как этот самый код просчитать ?

насчет получения инфы и "нажатия" кнопки.
по хорошему нужно делать примерно так
Код: plaintext
1.
2.
3.
4.
5.
Public poWinHttp
poWinHttp = Createobject("WinHttp.WinHttpRequest.5.1")
poWinHttp.Open("POST", sUrl, .f.)
? poWinHttp.Send()
? poWinHttp.Status, poWinHttp.StatusText,poWinHttp.ResponseBody
тут фигня получаеться - несмотря что я формирую запрос "POST" почему-то на сервер этот запрос идет как "GET" и никакого запроса не происходит - только заполнение параметров .
И чья это ошибка - незнаю , то-ли фокса , то ли объекта "WinHttp.WinHttpRequest.5.1" скорее всего последнего.

Поэтому я решил это дело через "промежуточный " скрипт.Т.е. наш веб-програмер сляпал страничку на корпоративном сайте к которой я обращаюсь "GET" а уже эта страничка делает "POST" запрос и возвращает мне страничку.
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35110252
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=AlexiS=-А как этот самый код просчитать?
Никак - это просто код в справочнике...
По теме: кажись надо пробовать через CREATEOBJECT("InternetExplorer.Application")
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35110572
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По отчеству
русский вариант Валериевич (в паспоре так) или допускаеться Валерьевич
укр Валерiйович
как там насчет кода -правильно ?

кажись надо пробовать через CREATEOBJECT("InternetExplorer.Application")
Пробовал по всякому.
к сожалению - не получаеться.
Post- запрос получаеться какой-то "корявый" - tckb сесли ть снифером - как бы в заголовке у него POST ,а вот "унутре" - GET .
поэтому и пришлось переделывать на свою страничку.
в принципе мне так даже удобнее - прогу менять не надо , если что поменяеться .
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35111228
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На 1 украинского "ВАЛЕРІЙОВИЧ" приходится 5 вариантов русского написания:
Валерьянович
Валериевич
Валеревич
Валерьевич
Валеривич

Паспортисты - уроды!

Получилось через мои "любимые" табуляции! Помнишь?
Код: plaintext
1.
2.
3.
oIE = CREATEOBJECT("InternetExplorer.Application")
oSh = CREATEOBJECT("WScript.Shell")
...
oIE.Navigate("http://www.nomer.org/allukraina/&lastName=Янукович&firstName=Виктор&middleName=Федорович")
ждем пока не будет
Код: plaintext
oIE.Document.ReadyState <> "complete"
потом
Код: plaintext
1.
oSh.APPACTIVATE("Вся Украина - жители")
oSh.SENDKEYS(REPLICATE(CHR( 9 ), 15 )+"{ENTER}")
снова ждем
Код: plaintext
oIE.Document.ReadyState <> "complete"
и в конце-концов
Код: plaintext
lcHTML = oIE.Document.DocumentElement.InnerHTML

Осталось покопаться со ссылкой "Вперед->"...
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35566295
jubba2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, есть ИНН, начинается с 85756... , что по алгоритму:
Код: plaintext
Transform(Date( 1899 , 12 , 31 )+Val(Substr(IDK, 1 , 5 )))
соответствует дате 16.10.2134 . У клиента же указана дата рождения 01.01.1961 . Контрольный разряд правильный, т.е. код с большой степенью вероятности верный. Единственная ссылка, которую я нарыл по данному поводу следующая:

1) если код начинаеться с 7 или 8, то это даты в которые родилось очень много народу, например 1.01.47 тогда многие, ктородился 30 и 31.12 записывали на 01.01, что б в армию на год позже идти. Эти коды фиксированные, под каждую дату свой (первые 5 цифр)

Я правильно понял, что для проверки этого ИНН мне нужна табличка таких исключений (дата, код)?
Не поможет ли кто с этой табличкой?
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35566411
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну уж на форуме "Натали" вряд ли стоит искать решение вопроса! :)
Если получится - сообщу!
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35566714
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваще жестко фиксировать ошибки ИНН неправильно - ошибки совершаются не только при вводе оператором но и при присвоении. Особено много косяков было во время компании первоночальной выдачи всем работающим. И далеко не все бросили все и побежали его менять;)
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35568663
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас на 99% отказались от его изменения в случае ошибки в дате рождения! В справку добавили эту дату... "Хитромудрые" банкиры в шоке!
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35572940
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Был случай, когда пол человека, закодированный в идентификационном коде, не соответствовал реальному полу человека :)
Так что все эти проверки соответствия кода дате рождения и полу нельзя делать жесткими, только предупреждение.
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35958701
Suncat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Redrik-=AlexiS=-неплохо-бы ети коды проверять на правильность и достоверность.
Угу... Актуально!
Меня лично это "достало" настолько, что на днях сделал проверку...
Приносят списки (WORD) - или коды ЄДРПОУ, или номера свидетельств, или ИПНы.
Я их загоняю в табличку, а потом вытягиваю все, что есть на www.sta.gov.ua. Результат - вся "история" в XLS...
Могу поделиться! ;-)
P.S. Глянь почту! Проверка связи... :-)


Redrik!
Честно, нифига не шарю в программировании. Я так понимаю из вашей темы, что зная ИНН можно по фирме "вытянуть все, что есть на www.sta.gov.ua."
А можно тебя попросить это сделать по одному ИНН? Ну очень нужно!
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35959620
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А о ком/чём вопрос-то?
Тут обсуждались и физлица, и плательщики НДС...
По НДСу:
Действующие: http://www.sta.gov.ua/control/vat/search
Ликвидированные: http://www.sta.gov.ua/control/cancelledlicense/search
И всё...
А что касается данных по физлицам... Кхм... Сам понимаешь - в основном глубоко конфиденциальная инфа!
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35976913
leftjoin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может кому-то пригодится - дата рождения и пол из ИНН Украины на SQL:
to_date('19000101','YYYYMMDD')+(substr(tax_code,1,5)-1) birth_date,
decode(mod(substr(tax_code,9,1),2),1,'M','F') gender

Поделитесь пожалуйста проверкой контрольной суммы, если есть
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #35977904
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leftjoinПоделитесь пожалуйста проверкой контрольной суммы, если есть
Алгоритм - не открытая информация
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #36198801
jubba2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RedrikleftjoinПоделитесь пожалуйста проверкой контрольной суммы, если есть
Алгоритм - не открытая информация
Не совсем :) Брал, не помню, с какого форума:
Код: 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.
137.
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

Там была небольшая ошибка в :

Код: plaintext
1.
2.
3.
4.
		lnKod=Mod(lnCS, 11 )
		If  lnKod= 10 
			lnKod= 0 
		Endif

Кажется, решил через:

Код: plaintext
1.
		lnKod= Mod(Mod(lnCS, 11 ), 10 )

Есстессно, девочки из налоговой ошибаются и при вводе даты рождения, и при выборе пола. И даже контрольный разряд иногда не совпадает. Ошибка на уровне 1-2%. Поэтому клиентов с неверными кодами надо не убивать, а просто еще раз проверить их документы :)
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #36211338
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jubba2001И даже контрольный разряд иногда не совпадает.
Не может быть! Дайте глянуть хоть один такой действующий номерок!
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #36543332
AK55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jubba2001,
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

Скорее всего, этот кусок ошибочен.
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #36547556
AK55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jubba2001,

Немного подумав, пришел к выводу, что и первая часть алгоритма вызывает сомнение

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)

А именно коэффициент 11!
Это означает, что в первом разряде можно вводить любое число!
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #36548262
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AK55Это означает, что в первом разряде можно вводить любое число!
Почему?
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #36554502
AK55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Redrik,

mod(a*11+b,11)=mod(b,11)

где:
a - первый разряд ИНН
b - сумма произведений разрядов со 2 по 11 на соответствующие коэффициенты.

P.S. Тестирование алгоритма показало, что вторая часть алгоритма не скорее ошибочна, а 100% ошибочна.
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #36557350
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AK55,

Пардон! Перемкнуло... Я насчет ид. номера человека...
А здесь - да! Первая цифра ни на что не влияет, но следует учесть, что одно дело, когда ИНН имеет право существовать, а другое дело, когда он реально существует!

Дополнительно могу сказать, что контроль ИНН человека тоже далек от "красивости"!
Вот пример:
2564412450 и 2564413450
По алгоритму эти оба номера имеют право существовать, но реально присваивался и существует только один!
...
Рейтинг: 0 / 0
контроль ИНН для юр.лиц Украина
    #36558558
AK55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Redrik,

О чудо. Можно сказать, что "ткнул пальцем в небо" и, вроде, попал!
Вторая часть алгоритма проверки ИНН юридических лиц, возможно, должна выглядеть так:

If lnKod=10
lnCS = Val(Left(IDK, 1)) * 17 + ;
VAL(Substr(IDK, 2, 1)) * 19 + ;
VAL(Substr(IDK, 3, 1)) * 23 + ;
VAL(Substr(IDK, 4, 1)) * 29 + ;
VAL(Substr(IDK, 5, 1)) * 31 + ;
VAL(Substr(IDK, 6, 1)) * 37 + ;
VAL(Substr(IDK, 7, 1)) * 41 + ;
VAL(Substr(IDK, 8, 1)) * 43 + ;
VAL(Substr(IDK, 9, 1)) * 47 + ;
VAL(Substr(IDK, 10, 1)) * 53 + ;
VAL(Substr(IDK, 11, 1)) * 59
lnKod=Mod(lnCS,11)
If lnKod=10
lnKod=0
Endif
Endif
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / контроль ИНН для юр.лиц Украина
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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