Как исправить ошибку «Не найден документ с идентификатором запроса» при обмене ЕГАИС в 1С:Розница?

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

При работе с алкогольной продукцией в программе 1С:Розница 2.2 (базовая или проф-версия) пользователи часто сталкиваются с ситуацией, когда обмен с ЕГАИС полностью останавливается. При попытке выполнить обмен или запросить остатки система выдает критическую ошибку следующего вида: При загрузке документа http://localhost:8080/opt/out/ReplyRests_v2/8 с типом ReplyRests_v2 возникла ошибка: Не найден документ с идентификатором запроса.... При этом новые накладные ТТН перестают поступать в информационную базу, а остатки не обновляются.

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

Выясняем причину: почему блокируется обмен?

Давайте разберем внутреннюю логику взаимодействия программ автоматизации с ЕГАИС. Обмен происходит по двухэтапной схеме:

  1. Программа 1С:Розница генерирует исходящий запрос (например, запрос остатков на регистре №1 или №2), присваивает ему уникальный идентификатор (GUID) и отправляет его в УТМ. Данные о запросе и его GUID записываются в регистры сведений информационной базы 1С.
  2. УТМ передает этот запрос на сервера ФС РАР, получает ответ и сохраняет его во входящую очередь в виде XML-файла.
  3. При следующем сеансе обмена 1С:Розница опрашивает входящую очередь УТМ (адрес http://localhost:8080/opt/out), считывает XML-файлы ответов, находит внутри каждого файла уникальный идентификатор исходного запроса и пытается сопоставить его с записями в своей базе данных.

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

Проанализируем ситуации, при которых возникает подобная рассинхронизация:

Рассмотрим подробнее три основных способа устранения этой неисправности.

Способ 1. Точечное удаление «проблемного» документа через утилиту curl (Рекомендуемый)

Этот способ является наиболее безопасным и быстрым, так как мы удаляем только конкретный зависший файл, не затрагивая остальные документы во входящей очереди УТМ. Для выполнения операции мы воспользуемся встроенной в операционную систему Windows консольной утилитой curl.

Разберем этот процесс по шагам:

  1. Внимательно прочитайте текст ошибки в 1С и скопируйте ссылку на документ, который вызывает сбой. В нашем примере это: http://localhost:8080/opt/out/ReplyRests_v2/8.
  2. Откройте меню «Пуск», введите в строке поиска cmd (Командная строка), нажмите на нее правой кнопкой мыши и выберите пункт «Запуск от имени администратора».
  3. В открывшемся окне консоли введите команду удаления, указав точную ссылку на ошибочный документ с префиксом метода запроса -X DELETE: curl -X DELETE http://localhost:8080/opt/out/ReplyRests_v2/8
  4. Нажмите клавишу Enter. В случае успешного удаления утилита вернет пустую строку или короткий XML-ответ сервера о подтверждении удаления.
  5. Вернитесь в программу 1С:Розница и повторно запустите команду «Выполнить обмен с ЕГАИС».

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

Способ 2. Полная очистка транспортной базы данных УТМ

Если «чужих» документов в очереди накопилось слишком много или ручное удаление через curl вызывает затруднения, можно прибегнуть к полной очистке базы данных УТМ. Посмотрим на этот метод детально.

Важное предупреждение: При полной очистке базы данных транспортного модуля удалятся абсолютно все находящиеся в нем на тот момент документы (включая еще не загруженные в 1С новые накладные ТТН от поставщиков). После очистки вам потребуется зайти в Личный кабинет ЕГАИС и переотправить неполученные накладные заново по их номерам TTN.

Выполним очистку базы по шагам:

  1. Остановите службы УТМ. Для этого нажмите правой кнопкой мыши на значок агента УТМ в системном трее Windows (возле часов) и выберите пункт «Остановить». Также это можно сделать через стандартную оснастку операционной системы services.msc (Службы), остановив службу с именем Transport.
  2. Перейдите с помощью проводника Windows в каталог установки транспортного модуля. По умолчанию это путь: C:\UTM\transporter\ или C:\TT\transporter\.
  3. Найдите внутри каталога папку с именем transportDB. В этой папке хранится локальная база данных Derby, содержащая все документы.
  4. Переименуйте эту папку, присвоив ей любое другое имя (например, transportDB_backup). Это позволит вам сохранить резервную копию на случай непредвиденных обстоятельств.
  5. Запустите службы УТМ обратно (через агент в трее или оснастку служб). После старта служба автоматически создаст новую чистую папку transportDB.
  6. Запустите обмен в 1С:Розница. Программа успешно свяжется с пустым транспортным модулем, и ошибка исчезнет.

Пример консольных команд для автоматизации процесса остановки служб и подготовки директории:


net stop transport
rename "C:\UTM\transporter\transportDB" "transportDB_old"
net start transport

Способ 3. Визуальный анализ очереди через домашнюю страницу УТМ

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

  1. Откройте любой интернет-браузер на компьютере, где установлен модуль. В адресной строке введите http://localhost:8080 и нажмите Enter. Перед вами откроется домашняя страница УТМ.
  2. Перейдите на вкладку «Исходящие» или «Входящие» (в зависимости от версии модуля интерфейс может незначительно отличаться). Также вы можете напрямую перейти по адресу http://localhost:8080/opt/out для просмотра xml-структуры очереди.
  3. Вы увидите список ссылок на XML-документы. Кликнув по любой из них, вы сможете прочесть содержимое файла. Обратите внимание на теги <oref:ReplyId> — именно они содержат те идентификаторы, которые 1С не может найти в своей базе данных.
  4. Используя специализированные внешние обработки для 1С:Предприятие (которые можно скачать на профильных порталах разработчиков), вы можете подключиться к этому интерфейсу напрямую из вашей учетной системы. Такие обработки позволяют визуально отметить флажками ненужные XML-пакеты в списке и удалить их одной кнопкой без использования командной строки Windows.

Рекомендации по профилактике ошибок ЕГАИС

Чтобы избежать повторного возникновения подобных сбоев и обеспечить стабильный обмен данными, рекомендуем придерживаться следующих правил:

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

← На главную