Имя: Пароль:
1C
 
Зачем в УТ проверка ИНН на валидность?
0 mikiFox
 
24.06.15
08:35
Вот такой код при изменении реквизита ИНН контрагента. Кто нить вкурсе зачеем он?


            КонтрольнаяСумма = 0;

            Для Индекс = 1 По 9 Цикл

                Если Индекс = 1 Тогда
                    Множитель = 2;
                ИначеЕсли Индекс = 2 Тогда
                    Множитель = 4;
                ИначеЕсли Индекс = 3 Тогда
                    Множитель = 10;
                ИначеЕсли Индекс = 4 Тогда
                    Множитель = 3;
                ИначеЕсли Индекс = 5 Тогда
                    Множитель = 5;
                ИначеЕсли Индекс = 6 Тогда
                    Множитель = 9;
                ИначеЕсли Индекс = 7 Тогда
                    Множитель = 4;
                ИначеЕсли Индекс = 8 Тогда
                    Множитель = 6;
                ИначеЕсли Индекс = 9 Тогда
                    Множитель = 8;
                КонецЕсли;

                Цифра = Число(Сред(ИНН, Индекс, 1));
                КонтрольнаяСумма = КонтрольнаяСумма + Цифра * Множитель;

            КонецЦикла;
            
            КонтрольныйРазряд = (КонтрольнаяСумма %11) %10;

            Если КонтрольныйРазряд <> Число(Сред(ИНН, 10, 1)) Тогда
                СоответствуетТребованиям = Ложь;
                ТекстСообщения = ТекстСообщения + ?(ЗначениеЗаполнено(ТекстСообщения), Символы.ПС, "")
                               + НСтр("ru = 'Контрольное число для ИНН не совпадает с рассчитанным.'");
            КонецЕсли;
1 Маратыч
 
24.06.15
08:37
(0) Очевидно, проверка ИНН на валидность.
2 mikiFox
 
24.06.15
08:41
(1) Есть какие то правила на валидность ИНН?
3 ilyavorobyev
 
24.06.15
08:42
4 zak555
 
24.06.15
08:42
(2) ну ты в 0 не видишь ?

ИНН для юриков 12 символов
5 Маратыч
 
24.06.15
08:43
(2) Само собой, там в конце контрольное число добавляется, вычисляемое из предыдущих цифр.
6 zak555
 
24.06.15
08:43
*10 символов
7 Маратыч
 
24.06.15
08:44
+(5) ... или два контрольных числа, в зависимости от длины ИНН
8 mikiFox
 
24.06.15
08:44
В УПП просто на длину проверяется 12 или 10 в зависимости от типа контрагента и все.
9 Маратыч
 
24.06.15
08:46
(8) Это плохо. Лучше проверять валидность - таким образом некорретно введенные данные (цифиркой ошиблись) сразу выявляются.
10 zak555
 
24.06.15
08:47
а 0000000000 -- валидный ИНН ?
11 Ненавижу 1С
 
гуру
24.06.15
08:47
(8) наверное у тебя старая УПП
12 Маратыч
 
24.06.15
08:51
(10) Ага.
13 Ненавижу 1С
 
гуру
24.06.15
08:51
(10) судя по алгоритму да, надо бы еще проверять на корректность региону (2 первые цифры)
14 zak555
 
24.06.15
08:52
(13) не у всех организаций есть инн, как и не у всех есть огрн
15 zak555
 
24.06.15
08:53
у кого нет огрн -- нужно 0000 писать
а вот для тех, у кого нет инн -- тоже что ли ?
16 Ненавижу 1С
 
гуру
24.06.15
08:54
(14)(15) вот не в курсе этого
17 bolder
 
24.06.15
08:56
(10) а никого это не волнует.Нужно отделить явные ошибки, незаполненный или нулевой сразу виден.