Почему в 1С:ERP в справочнике Контрагенты нет ОГРН и как его вывести

Программист 1С v8.3 (Управляемые формы) Налоговый учет
← На главную

При переходе на 1С:ERP многие пользователи и администраторы сталкиваются с неожиданной ситуацией: в карточке контрагента для российских организаций отсутствует привычное поле ОГРН. В то же время поле Регистрационный номер присутствует, но доступно оно только для нерезидентов. Проанализируем, почему так происходит, и разберем все возможные способы вывода этого реквизита без снятия конфигурации с поддержки.

Выясним причину: логика разработчиков 1С

Разберем ситуацию с точки зрения методологии 1С. В последних редакциях 1С:ERP разработчики придерживаются концепции, согласно которой основным уникальным идентификатором юридического лица в РФ является ИНН. ОГРН (Основной государственный регистрационный номер) рассматривается как производный классификатор, который, хотя и важен для юридической чистоты, не является основным поисковым ключом в повседневной работе базы.

Проанализируем основные причины «скрытого» поведения этого поля:

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

Способ 1: Использование типового механизма «Регистрационные данные»

Прежде чем приступать к программированию, рассмотрим, где физически в типовой конфигурации можно увидеть и отредактировать ОГРН. Рассмотрим по шагам:

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

Этот способ позволяет увидеть ОГРН без каких-либо доработок, однако он не всегда удобен для оперативной проверки данных в общем списке или на главной странице карточки.

Способ 2: Использование дополнительных реквизитов

Если нам необходимо, чтобы ОГРН был виден на основной вкладке и при этом мы не хотим использовать расширения или менять код, воспользуемся механизмом Дополнительных реквизитов. Это позволит сохранить конфигурацию полностью типовой.

Проанализируем последовательность действий:

  1. Перейдем в раздел НСИ и администрирование — Общие настройки — Дополнительные реквизиты и сведения.
  2. Найдем в списке справочник Контрагенты.
  3. Добавим новый реквизит с наименованием «ОГРН».
  4. Установим тип значения — «Строка» и зададим длину 13 символов (для юридических лиц) или 15 символов (для ИП — ОГРНИП).

Важный момент: дополнительные реквизиты по умолчанию выводятся в отдельной группе «Дополнительные реквизиты». Чтобы переместить его в удобное место, воспользуемся командой «Еще» — «Изменить форму» в карточке контрагента. Мы можем просто перетащить созданное поле в нужное место интерфейса.

Способ 3: Разработка расширения (рекомендуемый метод)

Для того чтобы сделать стандартное поле Регистрационный номер видимым для резидентов и использовать его именно под ОГРН, лучше всего использовать Расширение конфигурации. Это позволит нам вмешаться в логику отображения формы, не снимая систему с поддержки.

Посмотрим на пример кода, который можно разместить в расширении формы контрагента. Нам необходимо переопределить поведение формы при ее открытии или чтении данных. Проанализируем программный подход:


&НаСервере
Процедура Расш1_ПриЧтенииНаСервереПосле(ТекущийОбъект)
    // Управляем видимостью стандартного поля РегистрационныйНомер
    // Проверяем, является ли контрагент юридическим лицом РФ
    Если Объект.СтранаРегистрации = Справочники.СтраныМира.Россия Тогда
        Элементы.РегистрационныйНомер.Видимость = Истина;
        Элементы.РегистрационныйНомер.Заголовок = "ОГРН";
    КонецЕсли;
КонецПроцедуры

Разберем, что делает этот код: мы подключаемся к событию ПриЧтенииНаСервере, проверяем страну регистрации контрагента и принудительно включаем видимость элемента формы. Также мы меняем заголовок поля на более понятный пользователю — «ОГРН».

Способ 4: Особенности ОГРНИП для индивидуальных предпринимателей

При настройке поля ОГРН важно помнить о различиях между юридическими лицами и ИП. Как отмечалось в обсуждении на форуме, один ИНН физического лица может быть связан с разными ОГРНИП, если человек закрывал и снова открывал ИП.

Рассмотрим ситуацию подробнее: ИНН физического лица остается неизменным, но при каждой новой регистрации в качестве индивидуального предпринимателя выдается новый ОГРНИП. Если в вашей базе 1С:ERP ведется учет по таким контрагентам, крайне важно иметь возможность хранить актуальный номер регистрации.

Для реализации проверки корректности ввода можно добавить в расширение следующий код валидации:


&НаКлиенте
Процедура Расш1_РегистрационныйНомерПриИзмененииПосле(Элемент)
    ДлинаНомера = СтрДлина(Объект.РегистрационныйНомер);
    Если Объект.ЮрФизЛицо = ПредопределенноеЗначение("Перечисление.ЮрФизЛицо.ЮрЛицо") Тогда
        Если ДлинаНомера <> 13 Тогда
            Сообщить("Внимание: ОГРН юридического лица должен содержать 13 цифр!");
        КонецЕсли;
    ИначеЕсли Объект.ЮрФизЛицо = ПредопределенноеЗначение("Перечисление.ЮрФизЛицо.ИндивидуальныйПредприниматель") Тогда
        Если ДлинаНомера <> 15 Тогда
            Сообщить("Внимание: ОГРНИП должен содержать 15 цифр!");
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Как подтянуть ОГРН из ЕГРЮЛ автоматически?

Проанализируем работу сервиса 1С:Контрагент. Если он подключен, то при создании контрагента и вводе ИНН, система автоматически запрашивает данные с серверов 1С. Хотя поле может не отображаться на главной форме, данные записываются в скрытый регистр сведений ДанныеКонтрагентовИзЕГРЮЛ.

Если вам нужно программно получить ОГРН из этого регистра для своих нужд (например, для вывода в отчет), используйте следующий подход:


Менеджер = РегистрыСведений.ДанныеКонтрагентовИзЕГРЮЛ.СоздатьМенеджерЗаписи();
Менеджер.Контрагент = СсылкаНаКонтрагента;
Менеджер.Прочитать();

Если Менеджер.Выбран() Тогда
    // В типовых решениях поле может называться ОГРН или РегистрационныйНомер в зависимости от версии
    НужныйОГРН = Менеджер.ОГРН; 
КонецЕсли;

Подведем итоги

Мы рассмотрели несколько путей решения проблемы отсутствия ОГРН в интерфейсе 1С:ERP. Резюмируем:

  1. Для быстрой проверки: используйте переход в «Регистрационные данные» внутри карточки.
  2. Для отображения без программирования: создайте Дополнительный реквизит и настройте форму через «Изменить форму».
  3. Для системного решения: используйте расширение, которое сделает видимым стандартное поле РегистрационныйНомер и переименует его в «ОГРН» для резидентов.

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

← На главную