Проверка ИНН
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 5 из 5
  1. #1
    Иногда оказывает помощь

    Регистрация
    20.04.2009
    Сообщений
    105
    Сказал(а) спасибо
    21
    Поблагодарили 18 раз(а) в 9 сообщениях

    По умолчанию Проверка ИНН

    Сделано на примере УТ. В модуле формы "ФормаЭлемента" справочника Контрагенты есть функция ПроверитьИНН().
    Предлагаю заменить ее на следующую. В данном случае будет проверяться контрольное число.

    Если НЕ ЗначениеЗаполнено(ИНН) Тогда
    Возврат;
    КонецЕсли;

    ДлинаИНН = СтрДлина(ИНН);
    ТекстСообщения = "";

    Если ЮрФизЛицо = Перечисления.ЮрФизЛицо.Физ Лицо Тогда
    Если НЕ ДлинаИНН = 12 Тогда
    ТекстСообщения = """ИНН"" физического лица 12 символов!";
    КонецЕсли;
    Иначе
    Если НЕ ДлинаИНН = 10 Тогда
    ТекстСообщения = """ИНН"" юридического лица 10 символов!";
    КонецЕсли;
    КонецЕсли;

    Множители = Новый Массив(11);
    Множители[0] = 3;
    Множители[1] = 7;
    Множители[2] = 2;
    Множители[3] = 4;
    Множители[4] = 10;
    Множители[5] = 3;
    Множители[6] = 5;
    Множители[7] = 9;
    Множители[8] = 4;
    Множители[9] = 6;
    Множители[10] = 8;

    Результат=Ложь;

    Если ДлинаИНН = 10 Тогда
    Сум = 0;
    Для i=0 По 8 Цикл
    Сум = Сум + Сред(ИНН,i+1,1) * Множители[i+2];
    КонецЦикла;
    Сум = Сум - 11 * Цел(Сум/11);
    Сум = Сум - 10 * Цел(Сум/10);
    Результат = ?(Число(Сред(ИНН,10,1)) = Сум,Истина,Ложь);
    ИначеЕсли ДлинаИНН = 12 Тогда
    Сум = 0;
    Для i=0 По 9 Цикл
    Сум = Сум + Сред(ИНН,i+1,1) * Множители[i+1];
    КонецЦикла;
    Сум = Сум - 11 * Цел(Сум/11);
    Сум = Сум - 10 * Цел(Сум/10);
    Сум2 = 0;
    Для i=0 По 10 Цикл
    Сум2 = Сум2 + Сред(ИНН,i+1,1) * Множители[i];
    КонецЦикла;
    Сум2 = Сум2 - 11 * Цел(Сум2/11);
    Сум2 = Сум2 - 10 * Цел(Сум2/10);
    Результат = ?((Число(Сред(ИНН,11,1)) = Сум)И(Число(Сред(ИНН,12,1)) = Сум2),Истина,Ложь);
    КонецЕсли;

    Если Результат = ложь Тогда
    ТекстСообщения = """ИНН"" не совпадают контрольные числа!";
    КонецЕсли;
    Если ЗначениеЗаполнено(ТекстСо� �бщения) Тогда
    ОбщегоНазначения.Сообщить� �бОшибке("Длина ""ИНН"" не соответствует требованиям: " + ТекстСообщения);
    КонецЕсли;

  2. #2
    Гость форума

    Регистрация
    12.02.2010
    Сообщений
    5
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию

    а зачем вообще эта проверка нужна?
    у меня клиент ввел инн и очень был шокирован, что программа выдала сообщение, о неправильном инн'e

  3. #3
    Иногда оказывает помощь

    Регистрация
    20.04.2009
    Сообщений
    105
    Сказал(а) спасибо
    21
    Поблагодарили 18 раз(а) в 9 сообщениях

    По умолчанию

    И что его шокировало? Что Контрагент с которым он намерен работать или работает, мягко говоря, ввел его в заблуждение? ;)

  4. #4
    Гость форума

    Регистрация
    12.02.2010
    Сообщений
    5
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию

    а в чем же заблуждение? если эта проверка сто процентов может сказать существует ли такой инн или нетИ

  5. #5
    Иногда оказывает помощь

    Регистрация
    20.04.2009
    Сообщений
    105
    Сказал(а) спасибо
    21
    Поблагодарили 18 раз(а) в 9 сообщениях

    По умолчанию

    О том что НЕ сущесвует точнно на 100%

Похожие темы

  1. ЗиК проверка реквизитов
    от Леди Юлька в разделе 1С Предприятие 7.7
    Ответов: 4
    Последнее сообщение: 09.02.2010, 08:38

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •