Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 21:52

ИНН организации задан неверно!

Автор хайрулло, 22 сен 2010, 21:30

0 Пользователей и 1 гость просматривают эту тему.

хайрулло

1С 8.1 Бухгалтерия предприятия ввожу свою ИНН организации "630010546" а там ошибка ИНН организации задан нерверно!
Гляжу в модул а там такое нимойму. Как делать что мое пошло.Зарание спасибо..
// Проверяет соответствие ИНН требованиям
// Параметры:
//      ИНН - строка - проверяемый индивидуальный номер налогоплательщика,
//      ВладелецИНН - ПеречислениеСсылка.ЮрФизЛицо - тип владельца ИНН: физлицо или юрлицо
Функция ИННСоответствуетТребованиям(Знач ИНН, ВладелецИНН) Экспорт

   ИНН = СокрЛП(ИНН);
   ДлинаИНН =  СтрДлина(ИНН);

   Если НЕ ОбщегоНазначения.ТолькоЦифрыВСтроке(ИНН) Тогда
      Возврат Ложь;
   КонецЕсли;

   Если ДлинаИНН = 10  и ВладелецИНН = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда

      КонтрольнаяСумма = 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)) Тогда
         Возврат Ложь;
      КонецЕсли;
      
   ИначеЕсли ДлинаИНН =12 и ВладелецИНН = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
      
      КонтрольнаяСумма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;
         
      КонецЦикла;
      
      КонтрольныйРазряд11 = (КонтрольнаяСумма11 %11) %10;
      КонтрольныйРазряд12 = (КонтрольнаяСумма12 %11) %10;
      
      Если КонтрольныйРазряд11 <> Число(Сред(ИНН,11,1))
         ИЛИ КонтрольныйРазряд12 <> Число(Сред(ИНН,12,1)) Тогда
         Возврат Ложь;
      КонецЕсли;
      
   Иначе
      
      Возврат Ложь;
      
   КонецЕсли;
   
   Возврат Истина;
   
КонецФункции

// Проверяет соответствие ИНН требованиям.
// Используется в тех случаях, когда невозможно определить тип владельца ИНН.
// Во всех остальных случаях следует использовать функцию ИННсоответствуетТребованиям(Знач ИНН, ВладелецИНН)
// Параметры:
//      ИНН - строка - проверяемый индивидуальный номер налогоплательщика
Функция ИННСоответствуетТребованиямБезТипа(Знач ИНН) Экспорт
   
   ИННСтр = СокрЛП(ИНН);
   ДлинаИНН =  СтрДлина(ИННСтр);
   
   Если ДлинаИНН = 10 Тогда
      ВладелецИНН = Перечисления.ЮрФизЛицо.ЮрЛицо;
   ИначеЕсли ДлинаИНН = 12 Тогда
      ВладелецИНН = Перечисления.ЮрФизЛицо.ФизЛицо;
   Иначе
      Возврат Ложь;
   КонецЕсли;
   
   Возврат ИННСоответствуетТребованиям(ИНН, ВладелецИНН);
   
КонецФункции

   

Klyacksa

В обеих функциях вариации длины ИНН 10 и 12 символов. А у тебя 9. Вот они и возвращают не соответствие.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск