При работе в программе 1С:Управление нашей фирмой (УНФ) редакции 3.0 индивидуальные предприниматели часто сталкиваются с досадной проблемой: в печатной форме документа УПД (Универсальный передаточный документ) номер ОГРНИП отображается корректно, однако при формировании электронного документа для отправки через ЭДО соответствующее поле остается пустым. Это может привести к отказу в приемке документа со стороны контрагента или контролирующих органов, так как реквизиты свидетельства о регистрации являются обязательными для ИП.
В этой статье мы подробно проанализируем ситуацию, выясним технические причины такого поведения системы и рассмотрим три способа решения проблемы: от простого заполнения реквизитов до программной правки конфигурации.
Для начала проанализируем, почему возникает расхождение между печатной формой и электронным XML-файлом. Печатная форма УПД формируется на основе макета, который подтягивает данные напрямую из поля ОГРНИП карточки организации. Однако формирование электронного документа происходит иначе — за это отвечает подсистема БЭД (Библиотека электронных документов).
Согласно формату ФНС (версия 5.02), данные об индивидуальном предпринимателе должны содержаться в атрибуте СвГосРегИП. Стоит отметить, что сейчас активно осуществляется переход на формат УПД 5.03 (удобно через обработку выгрузки УПД в XML по формату 5.03), где требования к данным могут меняться, но в старых релизах УНФ (в частности, в версии 3.0.12.261 и ранее) программный код ЭДО настроен таким образом, что он ищет не просто номер ОГРНИП, а сведения о свидетельстве о государственной регистрации. Если в карточке ИП заполнено только поле ОГРНИП, но не заполнены сведения о свидетельстве (серия, номер, дата), алгоритм формирования XML может оставить этот тег пустым.
Посмотрим на техническую сторону вопроса. В конфигурации за сбор данных для ЭДО отвечает общий модуль ФорматыЭДО_ФНС. Проблема кроется в процедуре, которая собирает сведения об участнике электронного обмена.
Самый правильный и надежный способ — это обновление программы. Разработчики 1С признали наличие данной коллизии в логике заполнения реквизитов. Начиная с версии 3.0.13 конфигурации Управление нашей фирмой, алгоритм формирования электронных документов был доработан. В новых релизах система автоматически подставляет ОГРНИП в поле свидетельства, если специализированные поля регистрации не заполнены.
Рассмотрим шаги для исправления ситуации через обновление:
ОГРНИП в черновике электронного документа.Если по каким-то причинам оперативное обновление конфигурации невозможно или у вас не работает штатная выгрузка документа реализации в XML (см. внешнюю обработку выгрузки УПД в XML для ЭДО), попробуем решить проблему административными методами. Нами необходимо предоставить системе те данные, которые она ожидает увидеть в модуле ЭДО.
Выполним следующие действия:
ОГРНИП, но и сведения в поле Свидетельство.Акт выполненных работ или Расходная накладная и нажмем кнопку ЭДО — Сформировать электронный документ заново.Если предыдущие методы не помогают или вам требуется более глубокая кастомизация, например, изменение "Основания передачи (сдачи) / получения (приемки)" в УПД, проанализируем ситуацию в конфигураторе и внесем изменения в код. Чтобы не снимать конфигурацию с поддержки, крайне рекомендуется использовать механизм расширений.
Нам необходимо обратить внимание на общий модуль ФорматыЭДО_ФНС. В нем нас интересует процедура ЗаполнитьСведенияОбУчастникеУПД_5_02. Именно здесь происходит сопоставление данных из дерева электронного документа с атрибутами XML. Подобные доработки часто требуются и в других случаях, например, когда в ЭДО УПД не заполняются данные ГТД.
Найдем в коде следующий фрагмент, отвечающий за получение данных о свидетельстве ИП:
СвидетельствоОГосРегистрации = ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(
СтрокаДереваДанных,
ВидУчастника + ".ТипУчастника.ИП.СвидетельствоОГосРегистрации");
Выясним причину: если ЗначениеРеквизитаВДереве возвращает пустую строку, тег в XML не создается. Мы можем принудительно подставить значение ОГРНИП в этот параметр. В расширении это можно реализовать через перехват процедуры (после выполнения основной логики). Пример кода для расширения:
&После("ЗаполнитьСведенияОбУчастникеУПД_5_02")
Процедура ИНФ_ЗаполнитьСведенияОбУчастникеУПД_5_02(УчастникXDTO, СтрокаДереваДанных, Ошибки, ПространствоИмен, ВидУчастника)
// Проверяем, если это индивидуальный предприниматель и поле Свидетельство пустое
Если ВидУчастника = "Продавец" Тогда
// Получаем ИНН для идентификации (опционально)
ТекущийИНН = ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(СтрокаДереваДанных, ВидУчастника + ".ИНН");
// Если реквизит СвГосРегИП отсутствует или пуст в XDTO-пакете
Если УчастникXDTO.ТипУчастника.ИП.СвидетельствоОГосРегистрации = "" Тогда
// Извлекаем ОГРНИП из дерева данных, если он там есть
ОГРНИП_Значение = ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(СтрокаДереваДанных, ВидУчастника + ".ОГРНИП");
// Принудительно заполняем структуру
УчастникXDTO.ТипУчастника.ИП.СвидетельствоОГосРегистрации = ОГРНИП_Значение;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Проанализируем этот код: мы проверяем, заполнен ли атрибут СвидетельствоОГосРегистрации в объекте УчастникXDTO. Если он пуст, мы берем значение из реквизита ОГРНИП, который обычно присутствует в дереве данных документа, и записываем его в нужное поле. При работе с номенклатурой также важно следить, чтобы не возникало некорректное заполнение кодов маркировки с характеристиками в ЭДО.
При использовании программного исправления важно помнить следующее:
Таким образом, мы выяснили, что отсутствие ОГРНИП в ЭДО для УНФ 3.0.12 — это следствие жесткой привязки модуля ЭДО к полю "Свидетельство". Используя один из предложенных выше способов, вы сможете восстановить корректную выгрузку документов и избежать проблем с контрагентами.