Имя: Пароль:
1C
1C 7.7
v7: Проверка ОГРНИП. Алгоритм
0 svsrus
 
04.08.07
12:22
Нашел вот алгоритм проверки правильности ввода ОГРН. А у меня вводится не только ОГРН, но и ОГРНИП. ОГРН - 13 цифр, ОГРНИП - 15 цифр. Никто не подскажет алгоритм проверки ОГРНИП. Или он такой же как и у ОГРН.
1 ИльяА
 
04.08.07
12:45
А какой у ОГРН?
2 svsrus
 
04.08.07
13:21
Алгоритм проверки ОГРН:

Функция КонтрольноеЧисло(СтрокаЦифр, Знач СтрокаМножителей="")
   СтрокаМножителей=СтрЗаменить(СтрокаМножителей,",",РазделительСтрок);
   Сумма=0;
   Если ПустаяСтрока(СтрокаМножителей)=1 Тогда
       Сумма=Число(СтрокаЦифр);
   Иначе
       Для а=1 По Мин(СтрДлина(СтрокаЦифр),СтрКоличествоСтрок(СтрокаМножителей)) Цикл
           Цифра = Число(Сред(СтрокаЦифр,а,1));
           Множитель=Число(СтрПолучитьСтроку(СтрокаМножителей,а));
           Сумма=Сумма+Цифра*Множитель;
       КонецЦикла;
   КонецЕсли;
   КонтрольноеЧисло=Сумма-(Цел(Сумма/11)*11);
   КонтрольноеЧисло=?(КонтрольноеЧисло=10,0,КонтрольноеЧисло);
   Возврат КонтрольноеЧисло;
КонецФункции // КонтрольноеЧисло

Функция глПроверкаОГРН(Знач ОГРН) Экспорт
   Хорошо=1;
   СтрокаЦифр=Лев(ОГРН,12);
   КонтрольноеЧисло=Число(Прав(ОГРН,1));
   Если ПустаяСтрока(СтрокаЦифр)=0 Тогда
       Если КонтрольноеЧисло<>КонтрольноеЧисло(СтрокаЦифр) Тогда
           Хорошо=0;
       КонецЕсли;
   Иначе
       Хорошо=0;
   КонецЕсли;
   Возврат Хорошо;
КонецФункции // глПроверкаОГРН
3 1Сергей
 
04.08.07
13:23
А что такое ОГРН?
4 1Сергей
 
04.08.07
13:28
Впервые вижу, чтобы были функция и переменная с одним идентификатором. Это работает?
5 svsrus
 
04.08.07
13:44
(3) ОГРН - обязательный гос. регистрационный номер. ОГРНИП - то же самое, но для ИП.

Работает!:)))
6 svsrus
 
04.08.07
13:50
Т.е. по сути нужно узнать как расчитывается контрольное число для ОГРНИП.
7 svsrus
 
04.08.07
13:52
Нашел. Кому интересно:

Номера ОГРН и ОГРНИП

(Основной Государственный Регистрационный Номер (для Индивидуального Предпринимателя))

Состоят из 13 (или 15) цифр, из них последняя — n1 — контрольная.

Контрольная цифра равна остатку от деления на 11 числа, состоящего из первых 12 (или 14) цифр. Если остаток есть 10, то n1 = 0.

Конкретные примеры:

   1037739010891 — 13 цифр, ОГРН.

Вычисляем остаток: -1+0-3+7-7+3-9+0-1+0-8+9 = -10;
-10 + 11 = 1(остаток)

Контрольное число = 1 — совпадает, номер правильный.

   304500116000157 — 15 цифр, ОГРНИП.

Вычисляем остаток: -3+0-4+5-0+0-1+1-6+0-0+0-1+5= -4;
-4 + 11 = 7(остаток)

Контрольное число = 7 — совпадает, номер правильный.