Как исправить ошибку формата ИдФайла при выгрузке УПД в XML из УТ 11.4 для Диадока

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

При работе с типовыми конфигурациями 1С, такими как Управление торговлей 11.4, пользователи часто сталкиваются с проблемой: при попытке выгрузить электронный документ (УПД) в файл XML для последующей ручной загрузки в личный кабинет Диадок, система выдает ошибку формата. Чаще всего ошибка звучит так: Значение атрибута @ИдФайл имеет неверный формат. Проблема заключается в том, что формат имени файла и внутренних идентификаторов в XML не соответствует требованиям оператора ЭДО — для этого подойдёт обработка исправления формата ИдФайла для Диадок.

В этой статье мы подробно разберем, почему возникает эта ошибка, как устроены идентификаторы в системе ЭДО и как настроить 1С так, чтобы выгрузка документов в XML файл для электронного документооборота происходила корректно без приобретения дорогостоящих дополнительных модулей (удобно через выгрузка УПД в XML с автоподстановкой ID).

Разбор причины ошибки: Идентификатор ФНС против ИНН/КПП

Проанализируем структуру ошибки. Сообщение указывает, что ожидается формат, начинающийся с ON_NSCHFDOPPR_, но содержимое после префикса не проходит валидацию. Главная причина кроется в атрибутах @ИдОтпр (Идентификатор отправителя) и @ИдПол (Идентификатор получателя).

Типовая 1С при "простой" выгрузке документа в файл (без настроенного обмена ЭДО) часто подставляет в эти поля комбинацию ИНН_КПП. Однако по стандартам ФНС и правилам операторов ЭДО, в этих полях должен быть указан уникальный Идентификатор участника ЭДО. Это строка из 46 символов (для формата 820), которая обычно начинается с префикса оператора (например, 2BM- для Контура).

Рассмотрим структуру правильного атрибута ИдФайл:

ПРЕФИКС_ИдОтправителя_ИдПолучателя_Дата_УникальныйНомер

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

Решение 1: Настройка идентификаторов в 1С без модуля

Для того чтобы 1С начала формировать правильные XML-файлы, нам необходимо заставить её "узнать" реальные идентификаторы ЭДО. Мы можем сделать это через типовой функционал 1С, даже если не планируем отправлять документы напрямую через встроенный сервис.

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

Где взять эти ID? Проанализируем веб-интерфейс Диадока. Зайдем в раздел "Контрагенты", выберем нужную компанию. В технической информации о контрагенте будет указан "Идентификатор участника". Скопируем его (он выглядит примерно так: 2BM-9721093030-202006120131238933686).

После того как эти данные внесены в 1С, при выполнении команды ЭДО -> Выгрузить документ в файл, программа подставит эти значения в XML, и файл будет успешно принят веб-версией Диадока.

Решение 2: Ручная корректировка XML-файла

Если документов немного (1-2 в день) и вы не хотите вносить изменения в настройки 1С, возможна выгрузка ЭД УПД в XML без лишних телодвижений или можно воспользоваться "быстрым" способом правки уже выгруженного файла. Разберем этот процесс по шагам:

  1. Выгрузим файл из 1С.
  2. Откроем его любым текстовым редактором (лучше всего подойдет Notepad++).
  3. Найдем в первой строке атрибут ИдФайл. Заменим в нем части, соответствующие ИНН_КПП, на корректные ID отправителя и получателя.
  4. Далее найдем теги Файл -> Документ -> СвОдинф -> ИдОтпр и ИдПол.
  5. Заменим их значения на соответствующие идентификаторы участника ЭДО.

Важно помнить, что если вы ошибетесь хотя бы в одном символе, контрольная сумма или логика парсера оператора выдаст ошибку. Поэтому крайне рекомендуем использовать Решение 1 как более надежное.

Решение 3: Использование кода из модуля Диадок

Как было отмечено в обсуждении на форуме, код официального модуля Диадок является открытым. Это означает, что программист 1С может проанализировать логику формирования XML в этом модуле и перенести её в свою внешнюю обработку выгрузки. Посмотрим на пример того, как программно может определяться префикс файла в зависимости от типа продукции:


// Пример логики определения префикса в зависимости от маркировки
Функция ОпределитьПрефиксФайла(ДанныеДокумента)
    Если ДанныеДокумента.СодержитМаркируемуюПродукцию Тогда
        Возврат "ON_NSCHFDOPPRMARK";
    ИначеЕсли ДанныеДокумента.СодержитПрослеживаемыеТовары Тогда
        Возврат "ON_NSCHFDOPPRPROS";
    Иначе
        Возврат "ON_NSCHFDOPPR";
    КонецЕсли;
КонецФункции

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

Проблема маркировки и прослеживаемости

Выясним причину, по которой Диадок может требовать разные префиксы. С 2021-2022 годов введены обязательные требования к передаче данных о маркированных и прослеживаемых товарах. Если в вашей реализации есть хотя бы одна позиция с маркировкой (например, обувь или одежда), префикс ОБЯЗАТЕЛЬНО должен быть ON_NSCHFDOPPRMARK. Если вы продаете мониторы или холодильники (прослеживаемость), префикс будет ON_NSCHFDOPPRPROS.

Типовая выгрузка УТ 11.4 может не "подхватить" нужный префикс, если в карточке номенклатуры неверно указан Вид номенклатуры (Тип номенклатуры должен быть "Товар: Маркируемая продукция"). Проверьте эти настройки, прежде чем выполнять выгрузку.

Стоит ли платить за модуль?

Рассмотрим экономическую целесообразность. Стоимость модуля для 1С составляет около 13 700 рублей в год — для этого подойдёт модуль ЭДО без выгрузки файлов для 1С. При объеме 1-2 документа в день затраты на ручную выгрузку/загрузку (около 5-10 минут времени сотрудника) могут показаться оправданными. Однако модуль автоматизирует не только выгрузку, но и:

Если вы решили отказаться от модуля, помните, что при ручной загрузке через браузер ответственность за корректность заполнения полномочий подписанта в XML ложится на вас. При выгрузке из 1С убедитесь, что в блоке Подписант заполнены ФИО и должность, иначе документ в Диадоке может оказаться без данных о подписанте, и его придется "дозаполнять" в веб-интерфейсе.

Заключение

Мы проанализировали проблему неверного формата ИдФайл в УТ 11.4 и нашли способы её решения. Основной путь — это корректная настройка идентификаторов участников ЭДО в справочниках 1С. Это позволит использовать стандартную функцию выгрузки в файл, получая на выходе валидный XML, который Диадок примет без лишних вопросов.

← На главную