PORTA.ru - on-line магазин ПОРТАтивной техники.PORTA.ru - on-line магазин ПОРТАтивной техники.

Новости
Мои разработки
FAQ
Ссылки
Форум

Проверка правильности ИНН

Функция КонтрольнаяСуммаИНН(n,inn)
     Перем checksum[11];
     checksum[1]=3;
     checksum[2]=7;
     checksum[3]=2;
     checksum[4]=4;
     checksum[5]=10;
     checksum[6]=3;
     checksum[7]=5;
     checksum[8]=9;
     checksum[9]=4;
     checksum[10]=6;
     checksum[11]=8;
     s=0;
     Для i=1 По n-1 Цикл
          s=s+Число(Сред(inn,i,1))*checksum[12-n+i];
     КонецЦикла;  
     
Возврат s%11%10;
КонецФункции
//***
Функция ПроверитьИНН(Знач inn)
     inn=СокрЛП(Строка(inn)); 
     
len=СтрДлина(inn);
     Если len=10 тогда
          Если Число(Сред(inn,10,1))<>КонтрольнаяСуммаИНН(10,inn) тогда Возврат 0; КонецЕсли;
     ИначеЕсли len=12 then
          Если Число(Сред(inn,11,1))<>КонтрольнаяСуммаИНН(11,inn) тогда Возврат 0; КонецЕсли;
          Если Число(Сред(inn,12,1))<>КонтрольнаяСуммаИНН(12,inn) тогда Возврат 0; КонецЕсли;
     Иначе 
          
Возврат 0; 
     
КонецЕсли;
     Возврат 1;
КонецФункции
//***
Процедура Сформировать()
     сообщить(ПроверитьИНН("5436100041")); // правильный - возвращает 1
     сообщить(ПроверитьИНН("5436100042")); // неправильный - возвращает 0     
КонецПроцедуры
<сообщил avb>

- Наверх -

В качестве благодарности за решение проблемы, щелкните здесь.
Поддержите развитие сайта.
Спасибо!
Автор и разработчик: Кайгородов Андрей aka mszsuz. mszsuz@online.sinor.ru ICQ#33993114. Дата последнего обновления страницы: Friday 09.04.2004 16:52
1C:TOP-100 Рейтинг ресурсов 1С
Hosted by uCoz