Проверка правильнос...
 
Уведомления
Очистить все

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

1 Записи
1 Пользователи
0 Likes
346 Просмотры
65-150 Okolokompa Форум
(@kalininalex)
Reputable Member
Присоединился: 4 года назад
Записи: 160
Создатель темы  

Функция КонтрольнаяСуммаИНН(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     
КонецПроцедуры


   
Цитата
Поделиться: