Перейти к содержанию
Меню
EN

Решение проблем

Восстановление печати и устранение ошибок

Как безопасно разобрать ошибку очереди, автоматический повтор, Dead Letter, неизвестный результат, отмену и восстановление после перезапуска.

Эта инструкция помогает восстановить обработку задания и при этом не выпустить лишние этикетки. Она применяется, когда задание долго не меняет состояние, завершилось ошибкой, попало в Остановлено после ошибки, получило результат Неизвестно или осталось незавершённым после перезапуска Automation.

Главное правило: не запускайте маршрут и не выполняйте повторную печать, пока не установлен фактический результат предыдущего задания. Состояние приложения, очередь Windows и физический выход принтера — разные уровни контроля.

Быстрый порядок восстановления

  1. Остановите ручные повторные запуски того же задания.
  2. Зафиксируйте время, маршрут, шаблон, принтер и ожидаемое число этикеток.
  3. На Дашборде определите, есть ли задания, требующие внимания.
  4. В Очередях печати найдите исходное задание и откройте его карточку.
  5. Проверьте режим отправки, состояние, последнюю попытку, ErrorCode, SpoolerJobId и историю состояний.
  6. Сверьте физический принтер и очередь Windows.
  7. Откройте связанную запись в Журнале распечатки и сопоставьте данные, результат и временную шкалу.
  8. Устраните причину и выберите действие по таблице решений ниже.
  9. После восстановления убедитесь, что новое или восстановленное задание получило ожидаемый итог, а число физических этикеток совпало с заданием.

Не очищайте Dead Letter, не закрывайте неопределённое задание и не удаляйте диагностические события до завершения разбора. Эти записи содержат доказательства того, что происходило с печатью.

Сначала определите режим отправки

Режим указан в столбце Отправка и в сводке карточки задания.

  • Очередь — Automation планирует следующую попытку автоматически, пока не исчерпан установленный предел.. Устраняет причину и ждёт следующую попытку. Не создаёт параллельный повтор.
  • Сразу — Автоматического повтора надёжной очереди нет; ошибка становится окончательным результатом этого задания.. Устанавливает физический результат, устраняет причину и только затем решает, нужна ли новая печать.

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

Найти и идентифицировать задание

Откройте Мониторинг → Очереди печати. Используйте поиск по шаблону или принтеру и фильтр по состоянию, затем сопоставьте строку по времени создания.

Нажмите строку и запишите полный Идентификатор задания. В сводке проверьте:

  • Принтер — куда было направлено задание;
  • ОтправкаОчередь или Сразу;
  • Элементы / Копии — сколько записей и копий ожидалось;
  • Оператор — кем создано задание;
  • SHA-256 — контрольную сумму подготовленного содержимого;
  • Ссылка на источник — идентификатор исходных данных.

При обращении к администратору передавайте идентификатор задания полностью. Название шаблона и время сами по себе недостаточны: одинаковые задания могут быть созданы несколько раз подряд.

Выбрать действие по текущему состоянию

  • В очереди — Задание ждёт запуска либо следующей автоматической попытки.. Проверьте последнюю ошибку и время. Устраните причину и дождитесь обработки.
  • Подготовка — Формируются данные и печатное представление.. Не запускайте дубль. Если состояние не меняется, проверьте историю и события.
  • Отправка — Задание передаётся печатному адаптеру.. Считайте физический результат потенциально неопределённым до проверки принтера.
  • В Spooler / Печать — Задание принято системной очередью или находится на этапе печати.. Проверьте очередь Windows и сам принтер. Не выполняйте повтор только по отсутствию этикетки в данный момент.
  • Завершено — Automation завершила программную обработку без зарегистрированной ошибки.. При спорном результате всё равно сверьте физический выпуск и журнал.
  • Приостановлено — Оператор остановил ожидающее задание до его запуска.. После устранения причины нажмите Возобновить.
  • Отмена запрошена — Команда отмены принята, но результат ещё не получен.. Дождитесь окончательного состояния и проверьте очередь Windows.
  • Отменено — Обработка отменена.. До нового запуска убедитесь, что этикетка не была напечатана до отмены.
  • Ошибка — Попытка или немедленное задание завершились ошибкой.. Проверьте режим отправки, код и физический результат. Для очереди возможна следующая попытка.
  • Частично завершено — Обработана только часть элементов или копий.. Пересчитайте фактический выпуск. Не повторяйте весь набор автоматически.
  • Результат неизвестен — Automation не может доказать, состоялась ли печать.. Сверьте принтер и очередь Windows; после ручного решения закройте запись.
  • Остановлено после ошибки — Автоматические попытки прекращены.. Устраните причину; повтор создавайте из журнала только при доказанном отсутствии печати.
  • Закрыто оператором — Неопределённый результат разобран и убран из рабочего списка.. Используйте журнал и системные события для последующего аудита.

Состояния Отправка, В Spooler, Печать, Отмена запрошена и Результат неизвестен требуют особой осторожности: приложение могло передать данные дальше, даже если окончательное подтверждение не получено.

Разобрать автоматический повтор

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

  1. Откройте карточку задания.
  2. В блоке Попытки начните с последней строки.
  3. Сравните ErrorCode и текст ошибки с предыдущими попытками.
  4. Проверьте, появился ли SpoolerJobId.
  5. Устраните внешнюю причину: доступность принтера, очередь Windows, сеть, лицензию или данные.
  6. Закройте карточку и обновите список после наступления следующей попытки.

Не нажимайте ручной запуск маршрута, пока исходное задание снова находится В очереди. Ручной запуск создаёт другое задание и не заменяет запланированную попытку исходного.

Как понять, что ошибка временная

К временным обычно относятся кратковременная недоступность принтера, потеря связи с внешним компонентом или утрата рабочей аренды задания. Окончательное решение принимает Automation; сам текст сообщения не гарантирует повтор.

Признаки запланированного повтора:

  • режим отправки — Очередь;
  • предел попыток ещё не исчерпан;
  • в истории после ошибки задание возвращается В очередь;
  • номер попытки увеличивается после следующего запуска.

Если состояние стало Остановлено после ошибки, автоматического повтора уже не будет.

Восстановить задание из Dead Letter

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

  1. Отфильтруйте очередь по DeadLetter.
  2. Откройте задание и сохраните идентификатор, код, сообщение, попытки и историю.
  3. Проверьте, был ли когда-либо выдан SpoolerJobId.
  4. Устраните причину ошибки.
  5. Убедитесь по очереди Windows и физическому принтеру, что нужный выпуск не состоялся.
  6. Найдите исходную запись в Журнале распечатки.
  7. Откройте её и выберите Напечатать повторно.
  8. Ещё раз проверьте предупреждение, принтер и число копий.
  9. Подтвердите создание нового задания и проследите его до результата.

Повтор из журнала создаёт новое задание; он не продолжает старое. Исходную запись Dead Letter сохраняйте до завершения проверки нового задания.

Очистить Dead Letter

Кнопка Очистить Dead Letter необратимо удаляет все такие задания вместе с их попытками и историей состояний. Она не устраняет причину ошибки, не создаёт повтор и не отменяет данные, уже переданные принтеру.

Используйте очистку только после того, как:

  • причины всех записей разобраны;
  • нужные идентификаторы и диагностические данные сохранены;
  • необходимые повторы завершены и проверены;
  • удаление согласовано по правилам вашей организации.

Если в списке есть хотя бы одно неразобранное задание, очистку не выполняйте.

Разобрать неизвестный или частичный результат

Результат неизвестен

Состояние Результат неизвестен означает, что Automation не может надёжно установить исход операции. Это не равнозначно отсутствию печати.

  1. Проверьте SpoolerJobId и время перехода в неопределённое состояние.
  2. Найдите номер в очереди Windows или в журнале печати операционной системы.
  3. Проверьте индикаторы и внутреннюю историю принтера, если она доступна.
  4. Пересчитайте физически выпущенные этикетки.
  5. Сопоставьте результат с Элементы / Копии.
  6. Зафиксируйте принятое решение во внешнем журнале инцидента.
  7. Только после сверки используйте Закрыть и убрать.

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

Частично завершено

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

Безопасно отменить задание

  1. Откройте карточку незавершённого задания.
  2. Нажмите Отменить и подтвердите запрос.
  3. Не закрывайте страницу сразу: дождитесь окончательного состояния.
  4. Если появилось Отмена запрошена, проверьте очередь Windows.
  5. После Отменено всё равно убедитесь, что принтер не успел выдать этикетку.

Команда отмены может прийти поздно, если данные уже переданы драйверу или принтеру. Она управляет заданием Automation, но не гарантирует физическую отмену на каждом устройстве.

Восстановление после перезапуска Automation

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

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

  • просроченная подготовка может быть возвращена на повтор как временная ошибка;
  • отправляемое задание ищется по ключу идемпотентности;
  • для задания со SpoolerJobId проверяется состояние в системной очереди;
  • незавершённый запрос отмены отправляется повторно;
  • при невозможности доказать исход назначается Результат неизвестен.

После перезапуска:

  1. Откройте Очереди печати и обновите список.
  2. Найдите задания, которые были активны перед остановкой.
  3. Дождитесь завершения стартового согласования состояний.
  4. Проверьте новые записи в истории каждого задания.
  5. Сверьте очередь Windows и физический результат.
  6. Не создавайте ручной повтор, пока восстановленное задание остаётся активным.

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

Проверить принтер и формат печати

При повторяющейся ошибке проверьте последовательно:

  1. принтер включён, доступен в Windows и не находится в автономном режиме;
  2. в очереди Windows нет зависшего задания или требования вмешательства;
  3. бумага, этикетки, красящая лента и крышка принтера в рабочем состоянии;
  4. имя принтера в карточке совпадает с ожидаемым устройством;
  5. принтеру назначен разрешённый лицензионный слот;
  6. для ZPL/TSPL действует расширение AUT.EXTPRINTING;
  7. формат маршрута поддерживается выбранным принтером;
  8. число элементов и копий соответствует ожидаемому объёму.

Для GDI задание проходит через драйвер Windows. Для ZPL/TSPL формируется командный поток для совместимого принтера. Ошибка одного формата не доказывает неисправность другого: сопоставляйте код, адаптер, SpoolerJobId и фактическую очередь конкретного устройства.

Сопоставить очередь с журналом распечатки

Очередь отвечает на вопрос «что сейчас происходит с заданием», а журнал — «какие данные были подготовлены и какой результат зарегистрирован».

В журнале проверьте:

  • идентификатор и итог операции;
  • маршрут, шаблон, принтер и формат;
  • подготовленные данные и предпросмотр элементов;
  • число элементов и копий;
  • временную шкалу;
  • полный технический результат.

Если сведения очереди и журнала расходятся, не выбирайте более удобный вариант. Зафиксируйте оба идентификатора, время и состояние, затем дополните их данными очереди Windows и физического принтера.

Проверить системные события

Откройте Параметры → Системный журнал и установите интервал, охватывающий ошибку. Отфильтруйте события по уровню и найдите совпадение по времени, коду события, идентификатору сущности или корреляционному идентификатору.

Для обращения в поддержку сохраните:

  • полные идентификаторы задания и записи журнала;
  • локальное время инцидента и время UTC из истории состояний;
  • маршрут, шаблон, принтер, формат и режим отправки;
  • ожидаемое число элементов и копий;
  • состояние, номер попытки, ErrorCode и текст ошибки;
  • SpoolerJobId, если он есть;
  • корреляционный идентификатор системного события;
  • фактически напечатанное количество;
  • обезличенные снимки очереди, журнала и очереди Windows.

Не передавайте лицензионные ключи, пароли, connection string, токены источников и полный необработанный контекст события по незащищённому каналу.

Типовые ошибки и действия

  • Queue.PrinterUnavailable — Доступность принтера, очередь Windows, имя устройства. Восстановить принтер; для режима Очередь дождаться штатной попытки.
  • Queue.LicenseDenied — Базовую лицензию, AUT.EXTPRINTING, назначение слота. Исправить лицензию или назначение; не менять формат ради обхода ограничения.
  • Queue.PayloadTooLarge — Размер данных, число элементов, изображения шаблона. Уменьшить объём или разделить входной набор по согласованному сценарию.
  • Queue.UnsupportedAdapter — Формат маршрута и возможности принтера. Выбрать поддерживаемое сочетание формата и устройства.
  • Common.Validation — Обязательные данные, привязки полей, типы значений. Исправить источник или шаблон, затем создать новую корректную операцию.
  • Queue.LeaseLost — Нагрузку и доступность сервера. Не создавать дубль; очередь обычно обрабатывает временную потерю автоматически.
  • Common.InternalError — События по корреляционному идентификатору. Сохранить диагностику и передать администратору; повторять только после определения физического результата.
  • Долгое В очереди — Пауза, время следующей попытки, доступность обработчика. Проверить историю и параметры; не повышать приоритет как способ лечения ошибки.
  • Есть SpoolerJobId, но нет этикетки — Очередь Windows и состояние принтера. Устранить проблему на уровне Windows/принтера и проверить фактический выпуск.

Точный код имеет приоритет над общим текстом ошибки, но окончательное решение о повторе всегда учитывает физический результат.

Контроль после восстановления

Восстановление считается завершённым, когда одновременно выполнены условия:

  • причина ошибки устранена или изолирована;
  • исходное задание имеет понятный окончательный статус;
  • при необходимости создано ровно одно новое задание;
  • новое задание прослежено до результата;
  • очередь Windows не содержит неожиданного остатка;
  • фактическое число этикеток сверено с Элементы / Копии;
  • диагностические идентификаторы сохранены до окончания разбора;
  • лишние тестовые маршруты и задания не создавались.

Подробное описание карточки, фильтров и команд см. в разделе «Очереди печати». Поля подготовленных данных и повтор из исходной операции описаны в разделе «Журнал распечатки». Настройки и поиск событий приведены в разделе «Параметры и диагностика».