Как правильно сформировать XML-файл акта разногласий для ЕГАИС УТМ 4.0 при работе с акцизными марками

Программист 1С v7.7 Управленческий учет Торговля и дистрибуция
← На главную

Переход на версию УТМ 4.0 и поштучный учет алкогольной продукции внес свои коррективы в процесс формирования электронных документов. Одной из наиболее частых задач для разработчиков и системных администраторов является корректное составление Акта разногласий (WaybillTicket). В данной статье мы подробно разберем, как должен выглядеть этот документ, какие марки в него включать и как избежать конфликтов с форматно-логическим контролем (ФЛК) системы ЕГАИС и учетными системами поставщиков.

Основной принцип: какие марки указывать в акте

Проанализируем главный вопрос, возникающий при заполнении блока MarkCodes: нужно ли перечислять те марки, которые мы принимаем, или те, от которых отказываемся? Согласно официальной документации к УТМ и методологии ведения поштучного учета, ответ однозначен: в акте разногласий указываются только те марки, которые грузополучатель НЕ ПРИНИМАЕТ. Это логично, так как акт разногласий — это дополнение к накладной, фиксирующее «выпавшие» из поставки позиции.

Рассмотрим ситуацию на примере: если в ТТН было 10 бутылок, а вы фактически получили только 8, то в акте расхождений вы указываете:

  1. Количество фактически принятого товара в поле RealQuantity — 8 шт.
  2. В блоке марок перечисляете только те 2 цифровых идентификатора, которые отсутствуют в коробке или повреждены.

Обработка пограничных случаев: RealQuantity = 0

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

1. Недокументированная возможность («Пасхалка»): Как показывает практика и обсуждения на форумах ФСРАР, если в поле RealQuantity указано 0, сервер ЕГАИС технически позволяет не заполнять блок со списком марок. В этом случае система автоматически считает, что все марки, указанные в исходной ТТН по данной позиции, являются непринятыми. Это значительно упрощает формирование файла.

2. Официальная методология: Несмотря на техническую возможность «пропустить» список марок, официальная методология (п. 7 «Получение продукции») гласит, что в акте должны быть указаны идентификаторы, которые присутствуют в накладной, но не приняты получателем.

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

Структура XML-файла и важные поля

Разберем структуру документа WaybillTicket версии 4. При формировании файла важно соблюдать иерархию тегов и правильно указывать пространства имен. Основные элементы акта расхождений располагаются в блоке контента.

Рассмотрим пример заполнения позиции в акте:


<wa:Position>
    <wa:Identity>1</wa:Identity>
    <wa:InformF2RegId>FB-00000123456789</wa:InformF2RegId>
    <wa:RealQuantity>5.000</wa:RealQuantity>
    <wa:Marks>
        <wa:MarkCode>182...длинный_код_марки_1...</wa:MarkCode>
        <wa:MarkCode>182...длинный_код_марки_2...</wa:MarkCode>
    </wa:Marks>
</wa:Position>

Здесь InformF2RegId — это регистрационный номер записи справки 2 (Б), по которой пришли остатки. Важно понимать, что сумма RealQuantity и количества марок в блоке Marks должна в точности соответствовать исходному количеству (Quantity) в ТТН. Если это равенство не будет соблюдено, документ не пройдет ФЛК на сервере ЕГАИС.

Взаимосвязь акта расхождений и других типов актов

Посмотрим на ситуацию шире. Акт расхождения является универсальным инструментом. Рассмотрим интересные закономерности:

Однако на практике для полного принятия или полного отказа лучше использовать специализированные типы документов (Accept/Reject), так как они проще в обработке и не требуют перечисления марок.

Практические рекомендации по реализации в 1С

При кодировании алгоритма в вашей учетной системе (будь то 1С v7.7 или современные версии v8.3), придерживайтесь следующих шагов:

  1. Сопоставление данных: При получении ТТН сохраняйте список всех марок в привязке к позициям (справкам 2). Это необходимо для того, чтобы при создании акта расхождений вы могли вычислить разницу (исключить принятые марки из общего списка и получить список «отказных»).
  2. Валидация перед отправкой: Проверяйте, что в акт попадают только те марки, которые реально были в исходной ТТН. Указание «левой» марки (которой не было в накладной) приведет к отклонению акта сервером ЕГАИС.
  3. Работа с групповой тарой: Помните, что в УТМ 4.0, если вы отказываетесь от части короба, вы должны указывать в акте марки каждой бутылки из этого короба, от которой вы отказались. Работа через коды групповой тары (коробов) в акте расхождений возможна только при полном отказе от этого короба целиком.
  4. Логирование: Всегда сохраняйте отправленный XML-файл. В случае возникновения споров с поставщиком (как в примере из темы форума, где поставщик утверждает, что акт некорректен), вы сможете предъявить файл и доказать его валидность ссылкой на документацию УТМ.

Подводя итог, можно сказать, что хотя система ЕГАИС обладает определенной гибкостью и «пасхалками», для стабильной работы бизнеса и бесперебойных поставок следует придерживаться максимально подробного заполнения документов: всегда перечисляйте все непринятые марки, даже если их количество равно нулю.

← На главную