8.х генератор ИНН

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем KiberMath, 22 фев 2009.

  1. TopicStarter Overlay
    KiberMath
    Offline

    KiberMath Опытный в 1С

    Регистрация:
    22 сен 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    :unsure: Прохожу книженцию по бухгалтерии ред 1.6. В примерах из книжки неправильные инн ) прога ругается и не хочет записывать элемент справочника физ лицо с кривым ИНН... можно где-нибудь достать генератор ИНН???
  2. TopicStarter Overlay
    KiberMath
    Offline

    KiberMath Опытный в 1С

    Регистрация:
    22 сен 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Вопрос решен

    покапался в коде. Оказывается все просто


    Код:
            КонтрольнаяСумма11 = 0;
    КонтрольнаяСумма12 = 0;
    
    Для Н=1 По 11 Цикл
    
    // Расчет множителя для 11-го и 12-го разрядов
    Если Н = 1 Тогда
    Множитель11 = 7;
    Множитель12 = 3;
    ИначеЕсли Н = 2 Тогда
    Множитель11 = 2;
    Множитель12 = 7;
    ИначеЕсли Н = 3 Тогда
    Множитель11 = 4;
    Множитель12 = 2;
    ИначеЕсли Н = 4 Тогда
    Множитель11 = 10;
    Множитель12 = 4;
    ИначеЕсли Н = 5 Тогда
    Множитель11 = 3;
    Множитель12 = 10;
    ИначеЕсли Н = 6 Тогда
    Множитель11 = 5;
    Множитель12 = 3;
    ИначеЕсли Н = 7 Тогда
    Множитель11 = 9;
    Множитель12 = 5;
    ИначеЕсли Н = 8 Тогда
    Множитель11 = 4;
    Множитель12 = 9;
    ИначеЕсли Н = 9 Тогда
    Множитель11 = 6;
    Множитель12 = 4;
    ИначеЕсли Н = 10 Тогда
    Множитель11 = 8;
    Множитель12 = 6;
    ИначеЕсли Н = 11 Тогда
    Множитель11 = 0;
    Множитель12 = 8;
    КонецЕсли; 
    
    Цифра = Число(Сред(ИНН,Н,1));
    КонтрольнаяСумма11 = КонтрольнаяСумма11 + Цифра * Множитель11;
    КонтрольнаяСумма12 = КонтрольнаяСумма12 + Цифра * Множитель12;
    //begin KiberMath
    если Н = 10 тогда кс12 = КонтрольнаяСумма12; конецесли; 
    //end KiberMath
    КонецЦикла; 
    
    КонтрольныйРазряд11 = (КонтрольнаяСумма11 %11) %10;
    КонтрольныйРазряд12 = (КонтрольнаяСумма12 %11) %10;
    
    //begin KiberMath
    кс12 = кс12 + КонтрольныйРазряд11 * Множитель12;
    КонтрольныйРазряд12 = (КС12 %11) %10;
    //end KiberMath
    
    Если КонтрольныйРазряд11 <> Число(Сред(ИНН,11,1))
    ИЛИ КонтрольныйРазряд12 <> Число(Сред(ИНН,12,1)) Тогда
    
    // begin KiberMath
    Сообщить("верный 11-ый разраяд = " + строка(КонтрольныйРазряд11));
    сообщить("Верный 12-ый разряд = " + строка(КонтрольныйРазряд12));
    // end KiberMath
    
    Возврат Ложь;
    
    КонецЕсли; 
    
    
    

Поделиться этой страницей