Почему не гасится ВСД в 1С:Комплексная автоматизация 2.4 при внутреннем перемещении и как это исправить?

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

При работе с ФГИС «Меркурий» (ВетИС) через программные продукты 1С пользователи часто сталкиваются со специфическими ошибками при гашении ветеринарно-сопроводительных документов (ВСД). Особенно остро эта проблема проявляется при оформлении входящих транспортных операций внутри одного хозяйствующего субъекта (например, когда продукция перемещается с таможенного терминала на городской склад организации). В этой ситуации отправитель и получатель — одно и то же юридическое лицо.

В процессе гашения такого ВСД система 1С может выдавать сразу несколько критических ошибок валидации API Меркурия:

  1. MERC14575: Тип ТТН в сведениях о принимаемой партии должен совпадать с указанным в ветеринарно-сопроводительном документе.
  2. MERC14257: Так как дата ТТН в сведениях о принимаемой партии не совпадает с указанной в ветеринарно-сопроводительном документе, то необходимо указать причину в акте о несоответствии.
  3. MERC14258: Так как номер ТТН в сведениях о принимаемой партии не совпадает с указанной в ветеринарно-сопроводительном документе, то необходимо указать причину в акте о несоответствии.

Давайте подробно разберем, почему возникают эти ошибки, проанализируем архитектурное несовпадение систем и рассмотрим все возможные варианты решения — от оперативного изменения программного кода до штатных обходных путей без привлечения программиста.

В чем первопричина конфликта систем?

Для того чтобы понять природу ошибки, проанализируем логику работы обеих систем:

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


Вариант решения №1: Доработка программного кода (рекомендуется для разработчиков)

Если вы хотите раз и навсегда решить проблему автоматического гашения таких документов непосредственно из рабочего места 1С, потребуется внести небольшие изменения в конфигурацию через механизм расширений или напрямую (если база снята с поддержки).

Шаг 1. Отключение автоматической очистки данных ТТН

Выясним, где именно в коде происходит сброс параметров транспортного документа. Нам необходим модуль формы документа ВходящаяТранспортнаяОперацияВЕТИС. В процедуре НастроитьЗависимыеЭлементыФормы найдем фрагмент кода, отвечающий за заполнение признака ТТН, и закомментируем его. Это позволит сохранить исходные данные ТТН, полученные из ФГИС «Меркурий», даже если отправитель и получатель совпадают.

Найдите и закомментируйте следующие строки кода:


//Объект.ТТНУказан = Ложь;
//Если Объект.ТТНУказан И Объект.ТипТТН.Пустая() Тогда
//    Объект.ТипТТН = ПредопределенноеЗначение("Перечисление.ТипыДокументовВЕТИС.ТТН");
//ИначеЕсли Не Объект.ТТНУказан Тогда
//    Объект.ТипТТН = ПредопределенноеЗначение("Перечисление.ТипыДокументовВЕТИС.ПустаяСсылка");
//КонецЕсли;

После этого изменения 1С перестанет стирать данные о типе, номере и дате накладной, и первая группа ошибок валидации (MERC14575, MERC14257, MERC14258) перестанет появляться.

Шаг 2. Исправление ошибки парсинга «Неправильное имя колонки»

После исправления ТТН вы можете столкнуться со следующей проблемой: ВСД успешно гасится в самом Меркурии, однако документ 1С «Входящая транспортная операция ВЕТИС» не может завершить обработку транзакции. При разборе входящего XML-пакета от веб-службы система падает со служебной ошибкой «Неправильное имя колонки».

Причина кроется в общем модуле ОбменДаннымиВЕТИС в процедуре ЗагрузитьЗаписиСкладскогоЖурналаПоРезультатамЗапросаВЕТИС. Разработчики интеграционного модуля 1С забыли добавить проверку типа документа при заполнении параметров отбора складского журнала. Мы можем исправить это, обернув добавление параметров в условие проверки типов документов.

Найдите указанную процедуру и скорректируйте код следующим образом:


Если ТипЗнч(Документ) = Тип("ДокументСсылка.ИнвентаризацияПродукцииВЕТИС")
        ИЛИ ТипЗнч(Документ) = Тип("ДокументСсылка.ПроизводственнаяОперацияВЕТИС") Тогда
    // Здесь располагается типовой код добавления параметров отбора колонок журнала
КонецЕсли;

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


Вариант решения №2: Оформление Акта о несоответствии (без изменения кода)

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

Рассмотрим, как это сделать по шагам:

  1. Откройте проблемный документ «Входящая транспортная операция ВЕТИС» в режиме редактирования.
  2. Перейдите по гиперссылке «Заполнить акт несоответствия» (или аналогичной кнопке на командной панели заполнения расхождений).
  3. В появившемся поле акта укажите причину расхождения данных ТТН. Вы можете написать любой формальный текст, например: «Корректировка реквизитов ТТН при внутреннем перемещении» или «Техническая особенность заполнения».
  4. Проведите документ и повторно отправьте запрос на гашение в ВетИС.

Важное примечание: При наличии заполненного блока «Акт о несоответствии» транспортный модуль 1С передает в ФГИС «Меркурий» специальный управляющий тег. Получив его, сервер Меркурия игнорирует несовпадение номеров ТТН и успешно закрывает ВСД. Использование таких актов при внутренних операциях абсолютно легитимно и не влечет за собой штрафных санкций со стороны контролирующих органов Россельхознадзора.


Вариант решения №3: Проверка параметров и типа перевозки

Дополнительно проанализируем правильность заполнения реквизитов доставки. Перед отправкой транзакции обязательно убедитесь, что в документе гашения корректно выставлен тип операции.

В поле «Способ перехода права собственности» или аналогичном реквизите типа перевозки должно быть строго установлено значение: «Перевозка без смены владельца». Для данного типа перевозки веб-интерфейс и шлюз Меркурия используют более мягкие алгоритмы проверки сопроводительных документов, что может снизить вероятность возникновения ошибок сопоставления.


Вариант решения №4: Использование Личного кабинета «Меркурий.ХС» (быстрый обход проблемы)

Если вам нужно срочно погасить зависшую на балансе партию товара, а времени на программирование или разбор документов в 1С нет, используйте официальный веб-интерфейс государственной системы:

  1. Перейдите в веб-интерфейс подсистемы «Меркурий.ХС» под вашими учетными данными.
  2. Найдите входящий ВСД по его уникальному идентификатору (UUID) или по номеру транспортного средства.
  3. Выполните операцию гашения вручную через браузер. Веб-интерфейс «Меркурия» не накладывает жестких ограничений на проверку полей ТТН при внутренних перемещениях и позволит завершить операцию без ошибок.
  4. Вернитесь в программу 1С и выполните сеанс обмена (синхронизации) с ВетИС. Система загрузит измененные статусы транзакций, обнаружит, что ВСД уже погашен на сервере, и автоматически обновит статус документа «Входящая транспортная операция ВЕТИС» в вашей базе данных.
← На главную