Как отличить ИП от физлица в 1С: программные методы, банковский контроль и требования 54-ФЗ

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет Торговля и дистрибуция
← На главную

В практике автоматизации учета в 1С разработчики и бухгалтеры регулярно сталкиваются с необходимостью четко разделять индивидуальных предпринимателей (ИП) и обычных физических лиц (ФЛ). Типичный пример — выполнение требований Федерального закона № 54-ФЗ (о применении ККТ). Бухгалтерия часто требует: «Отправляйте чеки только обычным физическим лицам, но не отправляйте их индивидуальным предпринимателям, если оплата пришла по безналичному расчету».

Сложность заключается в том, что ИНН индивидуального предпринимателя совпадает с его личным ИНН как физического лица и состоит из 12 цифр. Человек получает ИНН один раз в жизни, и даже если он регистрирует ИП, прекращает деятельность, а затем регистрирует его снова — ИНН остается прежним. Обычные алгоритмы проверки длины ИНН (где 10 символов — это юридическое лицо, а 12 символов — физическое лицо) здесь не помогают, так как и для ИП, и для ФЛ длина ИНН одинакова.

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

Способ 1. Программный анализ наименования и реквизитов контрагента

Самый простой, но наименее надежный способ — это анализ текстового наименования контрагента или заполненных классификаторов (например, ОКОПФ). Если пользователи ведут базу аккуратно, в наименовании ИП обязательно будут присутствовать аббревиатура «ИП» или словосочетание «Индивидуальный предприниматель».

Рассмотрим пример функции на языке 1С, которая анализирует наименование контрагента и заполненный код ОКОПФ:


Функция ЭтоИндивидуальныйПредприниматель(КонтрагентСсылка) Экспорт
    
    // 1. Проверка по наименованию контрагента
    Наименование = НРег(КонтрагентСсылка.Наименование);
    Если СтрНайти(Наименование, "ип ") > 0 
        Или СтрНайти(Наименование, " индивидуальный предприниматель") > 0 
        Или СтрНайти(Наименование, "предприниматель ") > 0 Тогда
        Возврат Истина;
    КонецЕсли;
    
    // 2. Проверка по ОКОПФ (Общероссийский классификатор организационно-правовых форм)
    // Для ИП код ОКОПФ обычно равен 50102 ("Индивидуальные предприниматели")
    Если ЗначениеЗаполнено(КонтрагентСсылка.ОКОПФ) Тогда
        КодОКОПФ = СокрЛП(КонтрагентСсылка.ОКОПФ.Код);
        Если КодОКОПФ = "50102" Тогда
            Возврат Истина;
        КонецЕсли;
    КонецЕсли;
    
    Возврат Ложь;
КонецФункции

Преимущества метода: Высокая скорость работы, отсутствие необходимости отправлять запросы во внешние сервисы.

Недостатки метода: Полная зависимость от человеческого фактора. Если менеджер зарегистрировал контрагента как «Иванов Иван Иванович» без указания статуса «ИП» в наименовании или некорректно выбрал ОКОПФ, система допустит ошибку.

Способ 2. Автоматическая проверка через сервис «1С:Контрагент» и ЕГРИП

Более надежным решением является использование встроенных механизмов проверки контрагентов. Современные конфигурации 1С (такие как «1С:Бухгалтерия 3.0», «1С:ERP Управление предприятием» или «1С:Комплексная автоматизация») включают встроенный сервис 1С:Контрагент, который в фоновом режиме отправляет запросы к базе ФНС.

Принцип работы строится на следующих правилах:

  1. Обычные физические лица (без статуса ИП) отсутствуют в открытых бизнес-реестрах ФНС (ЕГРЮЛ и ЕГРИП).
  2. Если отправить запрос по 12-значному ИНН обычного гражданина, сервис вернет статус, что контрагент отсутствует в базе ФНС.
  3. Если ИНН принадлежит действующему ИП, сервис вернет заполненную структуру данных, включая ОГРНИП (Основной государственный регистрационный номер индивидуального предпринимателя) и коды ОКВЭД.

Проанализируем пример кода, определяющего наличие ОГРНИП через типовые регистры сведений встроенной подсистемы проверки контрагентов:


Функция ПроверитьСтатусИПЧерезЕГРИП(ИНН) Экспорт
    
    Если СтрДлина(СокрЛП(ИНН)) <> 12 Тогда
        Возврат Ложь; // Только у физлиц и ИП ИНН состоит из 12 цифр
    КонецЕсли;
    
    // В типовых конфигурациях 1С данные проверок кэшируются в регистре "СостоянияКонтрагентов"
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Состояния.Состояние
        |ИЗ
        |   РегистрСведений.СостоянияКонтрагентов КАК Состояния
        |ГДЕ
        |   Состояния.Контрагент.ИНН = &ИНН";
    
    Запрос.УстановитьПараметр("ИНН", ИНН);
    РезультатЗапроса = Запрос.Выполнить();
    
    Если Не РезультатЗапроса.Пустой() Тогда
        Выборка = РезультатЗапроса.Выбрать();
        Выборка.Следующий();
        
        // Если сервис подтвердил существование контрагента, значит, это зарегистрированный ИП
        Если Выборка.Состояние = ПредопределенноеЗначение("Перечисление.СостоянияКонтрагентов.ДеятельностьПрекращена") Тогда
            Возврат Ложь; // Регистрация ИП прекращена, теперь это просто физлицо
        ИначеЕсли Выборка.Состояние = ПредопределенноеЗначение("Перечисление.СостоянияКонтрагентов.СодержитсяВВК") Тогда
            Возврат Истина; // Действующий ИП найден в ведомственном классификаторе ФНС
        КонецЕсли;
    КонецЕсли;
    
    Возврат Ложь;
КонецФункции

Способ 3. Банковский контроль — анализ масок расчетных счетов

Для целей налогового учета и применения ККТ (54-ФЗ) ключевое значение имеет не столько сам юридический статус гражданина в ЕГРИП, сколько способ проведения расчетов. Физическое лицо может иметь действующий статус ИП, но совершать покупку для личных домашних нужд, расплачиваясь личной банковской картой. И наоборот — производить оплату за бизнес-услуги со своего расчетного счета предпринимателя.

При получении безналичной оплаты через банковские выписки (Клиент-Банк) система может автоматически и со 100% точностью определить тип плательщика по первым цифрам его 20-значного расчетного счета:

Рассмотрим, как реализовать проверку входящего платежа в 1С при разборе банковской выписки:


Функция ОпределитьКатегориюПлательщика(НомерСчета) Экспорт
    
    ОчищенныйСчет = СокрЛП(СтрЗаменить(НомерСчета, " ", ""));
    
    Если СтрДлина(ОчищенныйСчет) <> 20 Тогда
        Возврат "Не определено";
    КонецЕсли;
    
    // Извлекаем первые 5 цифр балансового счета второго порядка
    БалансовыйСчет = Лев(ОчищенныйСчет, 5);
    
    Если БалансовыйСчет = "40802" Тогда
        Возврат "ИндивидуальныйПредприниматель";
    ИначеЕсли БалансовыйСчет = "40817" Или БалансовыйСчет = "40820" Тогда
        Возврат "ФизическоеЛицо";
    Иначе
        Возврат "Прочее";
    КонецЕсли;
    
КонецФункции

Почему это важно для бухгалтера: Согласно п. 9 ст. 2 Федерального закона № 54-ФЗ, безналичные расчеты между организациями и (или) индивидуальными предпринимателями освобождены от применения ККТ (за исключением расчетов с предъявлением электронного средства платежа). Таким образом:

  1. Если деньги пришли со счета, начинающегося на 40802 (ИП), на расчетный счет вашей организации — пробивать и отправлять чек ККТ не нужно.
  2. Если деньги пришли со счета, начинающегося на 40817 (обычное физлицо), организация обязана сформировать кассовый чек, даже если плательщик утверждает, что он приобрел товар для нужд своего ИП. Банковская система провела этот платеж через личный потребительский счет, что переводит транзакцию в плоскость расчетов с физическим лицом.

Резюме и практические рекомендации

Для построения надежной системы разграничения ИП и физических лиц в 1С рекомендуется использовать гибридный подход:

  1. В справочнике Контрагенты создайте отдельный реквизит (флаг или тип) для явного указания статуса. Заставьте пользователей заполнять его при ручном вводе.
  2. Для автоматического заполнения используйте сервис 1С:Контрагент. Если при вводе 12-значного ИНН сервис находит данные в ЕГРИП — автоматически выставляйте статус «ИП» и заполняйте поле ОГРНИП.
  3. При интеграции с кассовым оборудованием и отправке электронных чеков анализируйте банковские реквизиты платежа. Ориентируйтесь строго на маску счета: счета группы 40802 освобождают вас от печати чеков по безналичным расчетам, а счета группы 40817 безоговорочно требуют фискализации.
← На главную