Как массово удалить документы в УТМ

Универсальный транспортный модуль (УТМ) ЕГАИС при получении сохраняет у себя во входящей очереди все полученные документы. Иногда это приводит к неожиданным проблемам.

Мы несколько раз столкнулись с такой проблемой: онлайн-касса ЭВОТОР самостоятельно отправила в ЕГАИС несколько тысяч запросов, на которые во входящую очередь УТМ пришло 115 000 документов, касса не могла их обработать. Проблема решалась массовым удалением ненужных документов во входящей очереди. После "чистки" касса вновь стала нормально получать из УТМ документы.

Как УТМ удаляет документы?

Удаление документов из входящей очереди документов - это штатный функционал УТМ ЕГАИС.

Удаление документов обычно производит ваша программа, которая обменивается с УТМ информацией - получила документ, он уже не нужен, удалила его.

Удаление документов производит УТМ самостоятельно с определенной периодичностью. Для разных типов документов имеются разные сроки их хранения во входящей очереди. Если эти сроки прошли - УТМ самостоятельно удаляет документы.

Удалить документы можно вручную, но для этого придется применять подручные средства. Ниже мы опишем как это сделать. Но для начала немного теории.

Особенности работы с документами в УТМ ЕГАИС

Многие из Вас знают, что у УТМ ЕГАИС есть домашняя страница, которая обычно открывается на компьютере по адресу http://localhost:8080, и на этой странице можно посмотреть очередь входящих документов. (вместо localhost может быть имя компьютера или его IP-адрес)

Помимо этого пользовательского интерфейса УТМ ЕГАИС имеет функционал для работы с программами для ЕГАИС (кассовые и товароучетные программы), в частности:

1. посмотреть очередь входящих документов можно по этой ссылке в УТМ:  http://localhost:8080/opt/out
2. посмотреть в очереди документы определенного типа можно по ссылке:  http://localhost:8080/opt/out/{тип_документа}. например просмотреть список ответов на запрос информации о Контрагенте можно по ссылке http://localhost:8080/opt/out/ReplyClient_v2, а увидеть список тикетов можно так http://localhost:8080/opt/out/Ticket.
3. посмотреть конкретный документ в очереди можно добавив к предыдущему запрос номер документа, например по ссылке  http://localhost:8080/opt/out/Ticket/1234 можно посмотреть тикет под номером 1234.

Кроме функционала просмотра документа, также доступно его удаление, но это не очень простая задача.

Как удалить документ в УТМ?

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

Скачать утилиту curl можно с официального сайта разработчика:  https://curl.haxx.se/ . Достаточно распаковать утилиту в папку на компьютере и можно с ней работать (без дополнительной установки).

Для удаления документа в УТМ ЕГАИС требуется запустить программу curl с параметрами: curl -X DELETE http://localhost:8080/opt/out/{тип_документа}/{номер_документа_в_очереди_УТМ}

После успешного выполнения этой команды файл будет удален в УТМ.

Для того, чтобы узнать номер документа в очереди УТМ - нужно заглянуть в очередь. Можете это сделать через пользовательский интерфейс во входящей очереди (обычно по адресу  http://localhost:8080) или из списка входящих документов (обычно доступен по адресу  http://localhost:8080/opt/out). 

Выглядит это так:

проверка номера документа в очереди ЕГАИС

или так:

проверка номера документа в УТМ ЕГАИС

В качестве примера:

Для удаления ответа на запрос информации о контрагенте (документ ReplyClient_v2 с номером 112666) нужно:

1. запустить утилиту командной строки в ОС Windows - нажать кнопку "Пуск", в поиске вести "cmd", и запустить из результатов поиска "cmd.exe" (или "Командная строка").
2. выполнить команду c:\curl\bin\curl.exe -X DELETE http://localhost:8080/opt/out/ReplyClient_v2/12666

Документ ReplyClient_v2 под номером 12666 удалится из очереди документов.

Как удалить много документов оптом?

Для удаления множества файлов можно использовать простой скрипт:

for /l %%i in (112600,1,112700) do c:\curl\bin\curl.exe -X DELETE http://localhost:8080/opt/out/Ticket/%%i

в котором:

"for /l %%i in (112600,1,112700) do" - задаем цикл, в котором переменная i будет принимать значения с 112600 по 112700 с шагом 1 и будет выполнятся команда, стоящая после do

"c:\curl\bin\curl.exe" - путь до исполняемого файла curl.exe 

-X DELETE - параметр (метод) для утилиты curl.exe (удаление файла)

http://localhost:8080/opt/out/Ticket/%%i - путь к МНОЖЕСТВУ документов Ticket с номерами с 112600 по 112700 во входящей очереди УТМ ЕГАИС

Такой простой скрипт в одну строку удаляет ТОЛЬКО выбранный тип документов (в примере Ticket) из входящей очереди УТМ и ТОЛЬКО с номерами, указанными в переменной цикла (в примере 112600-112700). Скорость удаления приличная - примерно 1000 документов за 10-15 секунд.

При этом другие документы остаются в очереди УТМ нетронутые, будут удалены ТОЛЬКО выбранные типы документов и ТОЛЬКО с конкретными номерами.

Важное предупреждение!

Удалением "лишних" документов самостоятельно заниматься крайне опасно - Вы можете потерять "полезные" документы!

Лучше пусть этим занимаются специально обученные люди - обратитесь к вашей обслуживающей организации или в нашу платную техническую поддержку (для этого достаточно написать в чат на сайте). 

Данная статья написана преимущественно для специалистов, рядовому пользователю выполнить такую операцию будет сложно и опасно.

Решения самых популярных проблем с ЕГАИС Вы можете найти в нашем Telegram канале "ЕГАИС простыми словами" (@egais_is_easy).

Если помогла статья - скажите Спасибо автору:

Заказать услугу
Нужна наша помощь в настройке? Сэкономьте свое время и обратитесь в нашу платную техническую поддержку! 
Оплату мы берем за результат! (по завершении настройки и регистрации)
Вернуться к списку