Почему ОГРНИП не отображается в электронном УПД при отправке через ЭДО и как это исправить?

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

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

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

Разберем причину возникновения проблемы

Для начала проанализируем, почему возникает расхождение между печатной формой и электронным XML-файлом. Печатная форма УПД формируется на основе макета, который подтягивает данные напрямую из поля ОГРНИП карточки организации. Однако формирование электронного документа происходит иначе — за это отвечает подсистема БЭД (Библиотека электронных документов).

Согласно формату ФНС (версия 5.02), данные об индивидуальном предпринимателе должны содержаться в атрибуте СвГосРегИП. Стоит отметить, что сейчас активно осуществляется переход на формат УПД 5.03 (удобно через обработку выгрузки УПД в XML по формату 5.03), где требования к данным могут меняться, но в старых релизах УНФ (в частности, в версии 3.0.12.261 и ранее) программный код ЭДО настроен таким образом, что он ищет не просто номер ОГРНИП, а сведения о свидетельстве о государственной регистрации. Если в карточке ИП заполнено только поле ОГРНИП, но не заполнены сведения о свидетельстве (серия, номер, дата), алгоритм формирования XML может оставить этот тег пустым.

Посмотрим на техническую сторону вопроса. В конфигурации за сбор данных для ЭДО отвечает общий модуль ФорматыЭДО_ФНС. Проблема кроется в процедуре, которая собирает сведения об участнике электронного обмена.

Способ 1: Обновление конфигурации (рекомендуемый)

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

Рассмотрим шаги для исправления ситуации через обновление:

  1. Создадим резервную копию информационной базы.
  2. Перейдем в раздел ОбслуживаниеОбновление программы.
  3. Установим релиз не ниже 3.0.13.1.
  4. После обновления проверим заполнение ОГРНИП в черновике электронного документа.

Способ 2: Корректное заполнение карточки организации без программирования

Если по каким-то причинам оперативное обновление конфигурации невозможно или у вас не работает штатная выгрузка документа реализации в XML (см. внешнюю обработку выгрузки УПД в XML для ЭДО), попробуем решить проблему административными методами. Нами необходимо предоставить системе те данные, которые она ожидает увидеть в модуле ЭДО.

Выполним следующие действия:

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

Способ 3: Программная правка через расширение (для разработчиков)

Если предыдущие методы не помогают или вам требуется более глубокая кастомизация, например, изменение "Основания передачи (сдачи) / получения (приемки)" в УПД, проанализируем ситуацию в конфигураторе и внесем изменения в код. Чтобы не снимать конфигурацию с поддержки, крайне рекомендуется использовать механизм расширений.

Нам необходимо обратить внимание на общий модуль ФорматыЭДО_ФНС. В нем нас интересует процедура ЗаполнитьСведенияОбУчастникеУПД_5_02. Именно здесь происходит сопоставление данных из дерева электронного документа с атрибутами XML. Подобные доработки часто требуются и в других случаях, например, когда в ЭДО УПД не заполняются данные ГТД.

Найдем в коде следующий фрагмент, отвечающий за получение данных о свидетельстве ИП:


СвидетельствоОГосРегистрации = ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(
    СтрокаДереваДанных, 
    ВидУчастника + ".ТипУчастника.ИП.СвидетельствоОГосРегистрации");

Выясним причину: если ЗначениеРеквизитаВДереве возвращает пустую строку, тег в XML не создается. Мы можем принудительно подставить значение ОГРНИП в этот параметр. В расширении это можно реализовать через перехват процедуры (после выполнения основной логики). Пример кода для расширения:


&После("ЗаполнитьСведенияОбУчастникеУПД_5_02")
Процедура ИНФ_ЗаполнитьСведенияОбУчастникеУПД_5_02(УчастникXDTO, СтрокаДереваДанных, Ошибки, ПространствоИмен, ВидУчастника)
    
    // Проверяем, если это индивидуальный предприниматель и поле Свидетельство пустое
    Если ВидУчастника = "Продавец" Тогда
        // Получаем ИНН для идентификации (опционально)
        ТекущийИНН = ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(СтрокаДереваДанных, ВидУчастника + ".ИНН");
        
        // Если реквизит СвГосРегИП отсутствует или пуст в XDTO-пакете
        Если УчастникXDTO.ТипУчастника.ИП.СвидетельствоОГосРегистрации = "" Тогда
            // Извлекаем ОГРНИП из дерева данных, если он там есть
            ОГРНИП_Значение = ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(СтрокаДереваДанных, ВидУчастника + ".ОГРНИП");
            
            // Принудительно заполняем структуру
            УчастникXDTO.ТипУчастника.ИП.СвидетельствоОГосРегистрации = ОГРНИП_Значение;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Проанализируем этот код: мы проверяем, заполнен ли атрибут СвидетельствоОГосРегистрации в объекте УчастникXDTO. Если он пуст, мы берем значение из реквизита ОГРНИП, который обычно присутствует в дереве данных документа, и записываем его в нужное поле. При работе с номенклатурой также важно следить, чтобы не возникало некорректное заполнение кодов маркировки с характеристиками в ЭДО.

Важные замечания

При использовании программного исправления важно помнить следующее:

Таким образом, мы выяснили, что отсутствие ОГРНИП в ЭДО для УНФ 3.0.12 — это следствие жесткой привязки модуля ЭДО к полю "Свидетельство". Используя один из предложенных выше способов, вы сможете восстановить корректную выгрузку документов и избежать проблем с контрагентами.

← На главную