Сегодня речь пойдет об ИНН, а точнее о проверке ИНН (по контрольным цифрам) и генерации корректных ИНН.
Все вместе (проверка ИНН и простой генератор ИНН) можно найти в этой обработке.
Код проверки ИНН покажу отдельно:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | &НаКлиенте Функция ПроверитьИНН(тИНН) тДлина = СтрДлина(СокрЛП(тИНН)); Если тДлина = 10 ИЛИ тДлина = 12 Тогда тМножители = Новый Массив; тМножители.Добавить(3); тМножители.Добавить(7); тМножители.Добавить(2); тМножители.Добавить(4); тМножители.Добавить(10); тМножители.Добавить(3); тМножители.Добавить(5); тМножители.Добавить(9); тМножители.Добавить(4); тМножители.Добавить(6); тМножители.Добавить(8); Попытка тЧисла = Новый Массив; Для тСчет = 1 По тДлина Цикл тЧисла.Добавить(Число(Сред(СокрЛП(тИНН), тСчет, 1))); КонецЦикла; Исключение Возврат Ложь; КонецПопытки; тКонтроль10_12 = 0; тКонтроль11 = 0; тСчетМ = 12 - тДлина; тСчетЧ = 0; Пока тСчетЧ < тДлина-1 Цикл тКонтроль10_12 = тКонтроль10_12 + тЧисла[тСчетЧ]*тМножители[тСчетМ]; Если тДлина = 12 И тСчетМ > 0 Тогда тКонтроль11 = тКонтроль11 + тЧисла[тСчетЧ-1]*тМножители[тСчетМ]; КонецЕсли; тСчетМ = тСчетМ + 1; тСчетЧ = тСчетЧ + 1; КонецЦикла; тКонтроль10_12 = (тКонтроль10_12%11)%10; тКонтроль11 = (тКонтроль11%11)%10; Если тДлина = 10 И тКонтроль10_12 = тЧисла[9] Тогда Возврат Истина; ИначеЕсли тДлина = 12 И тКонтроль10_12 = тЧисла[11] И тКонтроль11 = тЧисла[10] Тогда Возврат Истина; КонецЕсли; Возврат Ложь; Иначе Возврат Ложь; КонецЕсли; КонецФункции |
На этом все, надеюсь, что данная статья Вам помогла.
а чем запускать программу ГенераторИНН (открывать файл *.epf) ?
Это внешняя обработка, открывать в любом приложении 1С (управляемое приложение): «Файл»->»Открыть»