В практике работы с алкогольной подсистемой в конфигурации 1С:Управление торговлей 10.3 нередко возникают ситуации, когда действия пользователей в учетной системе расходятся с реальным состоянием документов на серверах ЕГАИС. Типичный сценарий: оператор по ошибке отправляет отказ от накладной либо, наоборот, сначала подтверждает накладную, а затем пытается отозвать проведение документа через утилиту curl или командную строку напрямую через Универсальный транспортный модуль (УТМ). В результате на портале ФСРАР накладная меняет статус (например, становится отмененной), а в 1С статус входящей ТТН остается прежним. При этом созданный документ ПоступлениеТоваровУслуг блокируется системой и не дает распровести или пометить себя на удаление.
Разберем детально, почему возникает такая рассинхронизация и какими способами можно вернуть документы в корректное состояние.
Проанализируем техническую сторону взаимодействия учетной системы с УТМ. Когда запрос на отмену проведения (типа RequestRepealWB) отправляется в УТМ сторонней утилитой в обход типового функционала 1С, происходят следующие события:
ReplyId, по которому подсистема сопоставляет ответы из ЕГАИС.Ticket) от ЕГАИС. Если квитанция была вычитана сторонним скриптом или удалена из очереди УТМ, 1С ее вовсе не видит. Даже если регламентное задание 1С загрузит этот тикет, штатный механизм обработки входящих сообщений не сможет привязать его к накладной из-за отсутствия исходного запроса в истории обмена.ТТН ЕГАИС (входящая) сохраняется прежний положительный статус.Почему же в таком случае нельзя просто пометить на удаление ПоступлениеТоваровУслуг? В типовых алгоритмах 1С реализован строгий контроль: при распроведении или установке пометки удаления документа поступления модуль объекта проверяет связанную входящую накладную ЕГАИС. Если накладная находится в статусе «Подтвержден», система аварийно прерывает операцию с ошибкой. Это сделано для защиты от расхождения бухгалтерского и партионного учета с данными ЕГАИС.
Если первоочередная задача — распровести и пометить на удаление ошибочный документ ПоступлениеТоваровУслуг, самым быстрым и безопасным решением является временное или постоянное удаление ссылки на него из накладной ЕГАИС. Разберем по шагам, как это выполнить:
ТТН ЕГАИС (входящая).Документ поступления (или Поступление товаров и услуг в зависимости от релиза конфигурации).Групповая обработка справочников и документов либо короткий фрагмент кода.ПоступлениеТоваровУслуг штатно распроводится и помечается на удаление.Посмотрим на пример кода во внешней обработке для программного разрыва связи:
ДокументОбъект = СсылкаНаТТН.ПолучитьОбъект();
ДокументОбъект.ДокументПоступления = Неопределено;
ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
Чтобы привести базу в полное соответствие с данными портала ЕГАИС, необходимо скорректировать реквизиты самой входящей накладной. Рассмотрим подробнее, какие именно данные требуется исправить:
ТТН ЕГАИС (входящая) через обработку изменения реквизитов устанавливаем реквизиты Статус и СтатусОбмена в значения, соответствующие отказу (например, Отказан или Отменен).СтатусыДокументовЕГАИС. В некоторых релизах статус хранится не только в самом документе, но и дублируется в этом регистре. Запись по текущей ТТН необходимо обновить.Акцизные марки ЕГАИС со статусом «В наличии». Если просто поменять статус документа, эти акцизные марки останутся числиться за вашей организацией в учетной системе. Записи по этим маркам необходимо очистить либо изменить их статус, иначе при повторном поступлении этих же марок система выдаст ошибку дублирования.Пример программной корректировки статуса документа:
ДокументОбъект = СсылкаНаТТН.ПолучитьОбъект();
ДокументОбъект.Статус = Перечисления.СтатусыТТНВходящейЕГАИС.Отказан;
ДокументОбъект.СтатусОбмена = Перечисления.СтатусыОбменаЕГАИС.Подтвержден;
ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
В ряде случаев нет необходимости править статус вручную — можно задействовать штатный механизм повторного получения ТТН. Разберем этот вариант:
Запрос на повторную отправку ТТН (служебное сообщение типа QueryResendDoc).WB-XXXXXXXXXX) и отправляем запрос в УТМ.При выполнении любых манипуляций с отменой проведения накладных следует помнить о системных регламентах ЕГАИС:
RequestRepealWB) принимается сервером ЕГАИС только в течение 30 календарных дней с даты первоначальной фиксации входящего документа. По истечении этого срока отменить проведение накладной возможно только через обращение в дежурную службу ФСРАР с подтверждающими документами от обеих сторон сделки.