Почему 1С:Розница 2.3 не пробивает чеки ЕГАИС и как исправить ошибки отклонения УТМ

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

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

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

Разбор ошибки «Value is not facet-valid with respect to pattern NOEMPTY»

Рассмотрим первую и наиболее частую ошибку, с которой сталкиваются администраторы: java.lang.IllegalArgumentException: org.xml.sax.SAXParseException; cvc-pattern-valid: Value '' is not facet-valid with respect to pattern '[a-zA-Z0-9_-]{1,128}' for type 'NOEMPTY'.

Проанализируем текст этой ошибки. Она указывает на то, что при формировании XML-файла чека, который 1С отправляет в УТМ, одно из обязательных полей оказалось пустым. Согласно требованиям XSD-схемы (правилам построения документа), поле с типом NOEMPTY должно содержать хотя бы один символ, соответствующий регулярному выражению [a-zA-Z0-9_-]{1,128}.

Выясним причину: в релизе 2.3.8.27 возник внутренний программный сбой при заполнении атрибута Identity (идентификатор документа). Если 1С не может корректно сформировать этот уникальный строковый идентификатор или он обрезается при записи в базу, УТМ отклоняет весь пакет данных. Попытка повторно пробить такой «отложенный» чек часто не помогает, так как ошибка уже записана в структуру объекта чека.

Анализ ошибки «Value ЕГАИС EAN13 is not facet-valid для EANType»

Другой специфический случай связан с ошибкой: Value 'ЕГАИС EAN13' is not facet-valid with respect to pattern '(\d{8}|\d{13}|\d{12}|\d{14})' for type 'EANType'. Посмотрим, что здесь идет не так.

УТМ версии 4.2.0 и выше строго проверяет формат передаваемого штрихкода. Ожидается числовая последовательность (8, 12, 13 или 14 цифр). Однако из-за некорректных данных в регистре ШтрихкодыУпаковок или ошибок в карточке номенклатуры, программа подставляет в XML-структуру служебную строку «ЕГАИС EAN13» вместо реального кода.

Это происходит по следующим причинам:

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

Проблема «Дублей продаж» при повторной отправке

Разберем ситуацию, когда после возникновения ошибки и перезагрузки системы кассир пытается пробить чек снова, но получает сообщение «Дубль продажи». Это критическая ситуация рассинхронизации данных между 1С и ЕГАИС.

Проанализируем механику процесса: Шаг 1: 1С отправляет чек в УТМ. Шаг 2: УТМ принимает чек, успешно регистрирует его в базе ФСРАР, но из-за таймаута или внутренней ошибки не успевает вовремя вернуть 1С подтверждение (квитанцию). Шаг 3: 1С считает, что продажа не состоялась, и выводит ошибку. Шаг 4: При повторном сканировании той же марки УТМ видит, что эта марка уже была «списана» секунду назад, и блокирует продажу как повторную.

В этом случае марка уже числится реализованной в ЕГАИС, и повторно пробить её через ККМ штатным способом невозможно.

Пошаговая инструкция по решению проблем

Для исправления ситуации и предотвращения подобных ошибок в будущем, выполним следующие действия:

Шаг 1: Установка исправлений (патчей) 1С

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

Шаг 2: Проверка и очистка очереди УТМ

Если в очереди УТМ скопились «битые» чеки, они могут блокировать работу. Выполним следующие операции:

  1. Откроем домашнюю страницу УТМ по адресу http://localhost:17777.
  2. Перейдем на вкладку Исходящие.
  3. Проанализируем список документов. Если там висят чеки со статусом «Ошибка» или «Отклонено», их нужно удалить, чтобы очистить очередь.
  4. Если УТМ работает нестабильно, иногда помогает полная очистка базы данных модуля (папка transport/db), но делать это следует только после создания резервной копии и понимания того, что все входящие ТТН приняты.

Шаг 3: Корректировка данных в 1С при дублях продаж

Если марка уже ушла в ЕГАИС, а чек в 1С остался не пробитым, воспользуемся обработкой Корректировка данных ЕГАИС. Рассмотрим алгоритм:

  1. Найдем проблемный чек в списке чеков ККМ.
  2. Убедимся через личный кабинет ЕГАИС или проверку статуса марки, что она действительно списана.
  3. В 1С необходимо пометить данный чек как «Пробитый» без повторной отправки данных в ЕГАИС, чтобы выровнять остатки и закрыть смену. В некоторых случаях придется удалить акцизную марку из чека и пробить его как «неалкогольный», если вы уверены в законности операции и фиксации продажи в ЕГАИС.

Шаг 4: Проверка штрихкодов номенклатуры

Выясним причину ошибки EANType. Для этого:

  1. Откроем карточку номенклатуры, на которой возник сбой.
  2. Перейдем в раздел Штрихкоды.
  3. Проверим, нет ли там записей, где вместо цифр указан текст.
  4. Убедимся, что в карточке верно указан Объем, Крепость и Код алкогольной продукции. Пустые значения в этих полях также могут приводить к ошибкам валидации NOEMPTY.

Рекомендации по настройке сканера

Чтобы избежать попадания мусорных данных в XML, проверим настройки сканера штрихкодов в разделе Подключаемое оборудование. Мы рекомендуем использовать сканер в режиме NativeApi или COM-порта (эмуляция). Это гарантирует, что 1С получит «чистый» код без влияния раскладки клавиатуры и состояния клавиши CapsLock.

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

Таким образом, мы проанализировали основные причины сбоев ЕГАИС в 1С:Розница 2.3.8.27. В большинстве случаев проблема решается своевременной установкой патчей и контролем чистоты данных в справочнике номенклатуры.

← На главную