При обновлении Универсального транспортного модуля (УТМ) до актуальных версий формат входящих накладных автоматически переключается на вторую версию (v2). Пользователи конфигурации 1С:Розница 1.0 при этом сталкиваются с ситуацией, когда входящие документы видны в веб-интерфейсе УТМ, но при выполнении обмена программа сообщает: «Загружено документов 0». Разберем причины такого поведения платформы и пошагово выясним, как адаптировать типовую конфигурацию под обновленный формат обмена.
Проанализируем механизм обработки входящих сообщений в «1С:Розница 1.0». Типовой алгоритм разбора XML-файлов из УТМ жестко привязан к пространствам имен (namespaces) первой версии документов: http://fsrar.ru/WEGAIS/TTNSingle и корневому тегу ns:WayBill.
Когда транспортный модуль передает накладную формата v2 (схемы TTNSingle_v2 и тег ns:WayBill_v2), встроенный парсер не находит совпадений ни с одним зарегистрированным в метаданных типом XDTO. В результате обработчик просто игнорирует неизвестный XML-документ без генерации критического исключения и завершает сеанс загрузки с нулевым результатом.
Существует три основных подхода к восстановлению обмена с ЕГАИС:
ПоступлениеТоваров.10.3.42.1).Рассмотрим подробно процесс самостоятельной доработки конфигурации, так как он позволяет сохранить привычное рабочее место кассира и существующую логику учета.
Разберем по шагам, какие изменения необходимо внести в дерево метаданных конфигуратора.
В ветке ПакетыXDTO необходимо актуализировать базовые схемы и добавить новые:
EGCommon и EGCommonEnum.TTNSingle_v2, WayBill_v2, ClientRef_v2, ProductRef_v2, WayBillAct_v2.Все схемы можно экспортировать в виде файлов .xsd из конфигурации «1С:Управление торговлей 10.3» (релиз 10.3.42.1 или выше) и загрузить в «Розницу 1.0».
Формат v2 вводит новые обязательные поля для алкогольной продукции и классификаторов. Проверим и добавим следующие реквизиты:
ФорматОбмена (для разделения обработки версий v1 и v2).Capacity), объемная доля спирта (AlcPercent), а также тип продукции UnitType со значениями Packed (фасованная) / Unpacked (нефасованная).InformF2RegId (справка 2).Необходимо обновить код в общих модулях, отвечающих за разбор входящих XML-пакетов и генерацию исходящих сообщений. Переносим функции парсинга из модуля ИнтеграцияЕГАИС (или аналогичного) конфигурации УТ 10.3. При этом важно скорректировать условия выбора схемы при формировании объектов XDTO.
Обратите внимание: если накладная пришла в формате v2, ответный акт (подтверждение, отказ, акт расхождений) обязательно должен быть сформирован по схеме WayBillAct_v2. Отправка акта первой версии на накладную v2 приведет к ошибке формата на стороне ЕГАИС.
При тестировании алгоритмов загрузки важно учитывать поведение УТМ относительно очереди входящих сообщений:
В типовых модулях после считывания XML-документа отправляется HTTP-команда DELETE по адресу сообщения в УТМ. Если на этапе отладки в коде разбора возникнет непредвиденная ошибка, документ уже будет удален из буфера УТМ, и его придется запрашивать повторно через запрос переотправки (QueryResendDoc).
На время разработки и отладки закомментируем вызов процедуры удаления сообщений из транспортного модуля. Возвращать команду DELETE следует только после того, как убедимся, что накладные формата v2 корректно десериализуются в объекты информационной базы.