Проверка ИНН в справочниках Контрагенты и Физические лица





Обработка проверяет ИНН в справочниках Контрагенты и Физические лица на:
•    пустые значения;
•    длину (в зависимости от юр. или физ. лицо)
•    соответствие контрольным разрядам;
•    наличие символов НЕ цифра;
  1. При открытии обработки по умолчанию выполняется проверка для справочника Контрагенты. Заполняются две таблицы: «Контрагенты с пустыми ИНН» и «Контрагенты с не правильными ИНН» (см. картинку 1).
  2. Для выбора нужного справочника: Физические лица – снять флажок «Обработка справочника…», Контрагенты – установить флажок «Обработка справочника…»     (см. картинку 2).
  3. В таблицы выводятся: Код контрагента (физ. лица),  ссылка, по которой можно открыть выбранный элемент справочника для просмотра (или редактирования), в таблице «Контрагенты с не правильными ИНН» дополнительно выводятся признак ЮрФизЛицо, ИНН, Примечание.
  4. В колонке Примечание описание, почему ИНН не правильный (см. картинку 3).
  5. Строки, в которых ИНН содержит символы отличные от цифры, и где ИНН прошел проверку контрольных разрядов, но неверно выбран признак ЮрФизЛицо, дополнительно подсвечиваются цветом.
  6. Кнопка «Обновить» предназначена для того, что бы обновить исходные данные в случае, если было редактирование ИНН какого-либо элемента справочника. 

          Проверено на платформе: 1С:Предприятие 8.2 (8.2.13.205). Конфигурации: «Комплексная автоматизация, редакция 1.1», «Бухгалтерия предприятия, редакция 2.0» ,«Управление торговлей, редакция 10.3»

          P.S. Для Управления торговлей проверяется только справочник Контрагенты (ИНН для Физ. лиц не используется…)

15.05.2024. Внесены изменения в обработку.

  1. Добавлена возможность работы обработки в конфигурации ЗУП 2.5 (обработка  ломалась по причине отсутствия в справочнике Контрагенты реквизита «ЮрФизЛицо»).
  2. Исправлена ошибка, возникающая при проверке ИНН на наличие не цифры.
  3. По просьбе пользователя b-dm добавлена возможность проверки справочника Контрагенты с отбором по Группе Контрагентов (см. картинку 4).
  4. Добавлена возможность при проверке ИНН в справочнике Контрагенты с отбором по Группе Контрагентов проверять Контрагентов как в выбранной группе (Без иерархии), так и во всех вложенных группах выбранной (В иерархии) (см. картинку 5).
  5. Добавлен подсчет времени обработки выбранного справочника.

37 Comments

  1. vladir

    Обработка проверяет ИНН в справочниках Контрагенты и Физические лица на:

    • пустые значения;

    • длину (в зависимости от юр. или физ. лицо)

    • соответствие контрольным разрядам;

    • наличие символов НЕ цифра;

    Перейти к публикации

    Reply
  2. Yashazz

    Автор, а можно ссылку на методические материалы, согласно которым ИНН проверяется? Мне важно и нужно для своей задачи, хочу свериться с вами.

    Reply
  3. vladir

    (1) Смотрел здесь:

    kontragent.info

    Reply
  4. Cemen82

    Спасибо за интересную обработку

    Reply
  5. vladir

    (3) Приятно если пригодилась 🙂

    Reply
  6. Yashazz

    (2) Спасибо преогромное!

    Reply
  7. vladir

    (5) А сама обработка не пригодилась? Нужна была только методика?

    Reply
  8. Yashazz

    (6) Да, у меня другая задача — распознание платежей. Как известно, в назначении платежа могут написать любую муть, в качестве р/с плательщика может быть не тот, что сопоставлен юрлицу, и так далее. ИНН будет дополнительным фактором уточнения — так хотя бы можно понять, чей это ИНН — плательщика или банковского подразделения.

    Reply
  9. vladir

    (8) но только в случае, если плательщик ФизЛицо 🙂

    Reply
  10. serega3333

    полезная обработка

    Reply
  11. vladir

    (10) Спасибо. Если обработка в чем-то пригодилась, дык плюсаните, мелочь а приятно 🙂

    Reply
  12. sanja

    Обработку не смотрел. Раньше бы пригодилась, а так уже вписал свою проверку при записи контрагента

    Reply
  13. gull22

    Считаю, что обработка полезна для любой организации как дополнительный способ прорверки добросовестности Контрагентов по ИНН.

    Reply
  14. Rom_Kat

    а я вот встречал реальные ИНН, у которых контрольные суммы не совпадают. ИНН реальных юр. лиц, выданные налоговой. Нонсенс — согласен. Так как в этом случае быть?

    Reply
  15. vladir

    (14) Чудеса… Придумывают правила, что бы потом их нарушать… В обработке не вывожу «правильные разряды». Считаю если что-то не срослось проверить можно только по реальному документу.

    Reply
  16. Rom_Kat

    прецедент был как раз по поводу не прошедшего ИНН при вводе клиента, с которым пытались заключить сделку. Мне тогда предъявили копию свидетельства регистрации, и мне пришлось для этого клиента закрыть проверку ИНН. Вот такая история (((

    Reply
  17. vladir

    (16) Видимо исходя из подобных прецедентов в конфах Комплексная автоматизация и Управление торговлей проверки на контрольный разряд нет…

    Reply
  18. Rom_Kat

    Думаю уж совсем без проверки нельзя. Ваша обработка как раз для этого и подходит.

    Reply
  19. vladir

    (18) Спасибо. Вообщем-то и делалась для того, что бы усомниться в правильности ввода ИНН и, на всякий случай, провериться по первоисточнику. 🙂

    Reply
  20. aavolkoff

    Все норм, чуток рефакторинга можно провести.

    Но есть один момент про последний блок кода (уникальность ИНН):

    Если в базе будут использовать ограничение на уровне записи (ака РЛС), и в качестве объекта выберут «Контрагенты», то задвоение ИНН станет реальностью 🙂

    Я, для того, чтоб избежать сей ситуации, контроль уникальности ИНН провожу под полными правами, выдавая пользователю имена существующих в базе контрагентов.

    Вообще в типовых через ж.. сделаны механизмы получения/контроля данных под РЛС (и 1С в курсе, только им пох…). Попытайтесь наложить РЛС на динамический тип цен 😉

    Reply
  21. imozg

    Строку 149 в основной форме обработки надо включить в блок исключения.

    Вместо:

    Для Сч = 0 По 10 Цикл Сум2 = Сум2 + Сред(ИНН, Сч+1, 1) * Множители[Сч]; КонецЦикла;

    Надо:

    Попытка
    Для Сч = 0 По 10 Цикл Сум2 = Сум2 + Сред(ИНН, Сч+1, 1) * Множители[Сч]; КонецЦикла;
    Исключение
    Результат.Вставить(0, «Нонсенс… В ИНН присутствуют НЕ цифры???»);
    Возврат Результат;
    КонецПопытки;
    

    Или сначала посчитать сумму переменной Сум2, а Сум уже можно без блока исключения.

    Тестировал на 1С: Управление строительной организацией, редакция 1.3 (1.3.32.3)

    Reply
  22. margo_m09

    очень полезная обработка)

    Reply
  23. b-dm

    а зачем приоткрытии начинать все делать ?)и видимо не предусмотрено что может быть забито нечислово значение, т.к. у меня в базе вышла ошибка:

    {Форма.Форма.Форма(149)}: Преобразование значения к типу Число не может быть выполнено

    Для Сч = 0 По 10 Цикл Сум2 = Сум2 + Сред(ИНН, Сч+1, 1) * Множители[Сч]; КонецЦикла;

    Reply
  24. vladir

    (23) b-dm, напишите, на каком ИНН ломается.

    Reply
  25. b-dm

    (24) как это вычислить ?

    Reply
  26. b-dm

    ИНН:5256037792/5

    Reply
  27. vladir

    (25) b-dm, попробуйте посмотреть отладчиком. Вообще-то проверка на число реализована в Попытке, если строку невозможно преобразовать в число в Исключении формируется соответствующее сообщение. Только что проверил на своей базе, см. картинку, все Ок…

    Reply
  28. b-dm

    лучше бы в обработке такое сделать предупреждение чтобы когда вылетала писала бы номер ИНН.

    Reply
  29. vladir

    (28) b-dm, Да, на самом деле на таком странном ИНН (5256037792/5) обработка сломалась и у меня… Будет свободное время посмотрю сегодня/завтра.

    Reply
  30. b-dm

    а можно при старте делать проверку не сразу на всех, а на группу например ? У нас такое количество контрагентов, что задача с обработкой висит уже минут 20, если не умерла…

    Reply
  31. vladir

    (30) b-dm, сколько у Вас контрагентов, если не секрет?

    Reply
  32. b-dm

    175 000

    Reply
  33. vladir

    (32) b-dm, Да, до фига!… Ок, будет свободное время(сегодня/завтра), допишу.

    Reply
  34. b-dm

    ИНН:2311024488**

    Reply
  35. vladir

    (34) b-dm, да я уже понял. Для того, что бы определить есть ли не цифры в ИНН использовал Ф. Число(ИНН), полагаясь на описание:

    Преобразует полученный параметр в значение типа Число.

    Значение типа Строка преобразуется в число в том случае, если параметр является строковым представлением литерала численного типа. При этом строковое представление анализируется как с учетом региональных установок информационной базы, так и без их учета. В противном случае будет выдано сообщение об ошибке выполнения функции.

    Получается у меня неверное представление о Литерале численного типа… :(((

    Reply
  36. b-dm

    Спасибо за внимание к моим пожеланиям, буду ждать обновленную версию!

    Reply
  37. b-dm

    Видимо её не будет 🙂

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *