Как решить ошибку D3h "Код товара не распознан" при пробитии весовых и маркированных товаров на кассах ШТРИХ-М после перехода на ФФД 1.2 в 1С?

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

Переход на новый формат фискальных данных (ФФД) версии 1.2 часто сопровождается новыми требованиями к обработке товарных позиций, особенно маркированных и весовых товаров. Одним из распространенных затруднений, с которым сталкиваются пользователи 1С Розница и 1С Управление торговлей при работе с контрольно-кассовой техникой (ККТ) «ШТРИХ-М», является ошибка D3h, Ошибка привязки КМ: Код товара не распознан. Давайте рассмотрим подробнее причины возникновения этой ошибки и выясним, какие шаги мы можем предпринять для ее эффективного устранения.

Причины возникновения ошибки D3h (211) "Код товара не распознан"

Ошибка D3h, или 211, означает, что фискальный регистратор не смог корректно обработать переданный ему код товара или код маркировки. Это может происходить по нескольким основным причинам, которые мы сейчас подробно проанализируем:

  1. Некорректная передача данных для весовых товаров: В некоторых случаях, особенно для весовых товаров, система 1С вместо ожидаемого штрихкода может передавать в ККТ внутренний PLU-код товара (SKU) или другую служебную информацию. Если этот PLU-код имеет определенный формат, который не соответствует внутренним правилам ККТ "ШТРИХ-М" (например, содержит пробелы или превышает допустимую длину, как для PLU-кодов 248 или 3456), или вовсе не распознается как штрихкод, это приводит к ошибке. Для корректной работы с весовыми штрихкодами (например, с префиксом 2X, который кодирует вес) крайне важно, чтобы в 1С были настроены правильные префиксы и алгоритмы расшифровки, позволяющие программе извлекать из него вес и код номенклатуры, а не передавать его в ККТ в "сыром" виде.

  2. Проблемы с кодами маркировки (КМ) в ФФД 1.2: Формат ФФД 1.2 вводит дополнительные и более строгие требования к передаче данных о маркированных товарах. Ошибка D3h может возникать, если код маркировки (КМ) передан некорректно, имеет неверный формат GS1, содержит ошибочный тег, или не проходит внутреннюю проверку ККТ. Фискальный регистратор "ШТРИХ-М" ожидает определенную структуру данных для маркировки, включая контрольный код КМ, режим обработки и результат проверки сведений о товаре, и любое отклонение от этого формата приводит к отказу в пробитии чека.

  3. Устаревшие версии программного обеспечения: Несоответствие версий конфигурации 1С, драйвера ККТ и прошивки фискального регистратора требованиям ФФД 1.2 является одной из самых частых причин. Производители постоянно выпускают обновления, исправляющие ошибки совместимости и некорректной обработки данных, особенно после масштабных изменений в законодательстве. Если хотя бы один из компонентов устарел, это может нарушить цепочку обмена данными.

  4. Неверные внутренние настройки ККТ: В некоторых случаях, внутренние настройки ККТ "ШТРИХ-М" могут быть слишком строгими к формату принимаемых кодов. Если ККТ настроена на очень жесткую проверку и не способна принимать "нестандартные" или специально сгенерированные 1С коды, это будет препятствовать пробитию чека даже при незначительных отклонениях в формате штрихкода или кода маркировки.

  5. Особенности обработки штрихкодов немаркированных товаров: В редких ситуациях ошибка D3h может появляться даже для обычных немаркированных товаров. Это происходит, если их штрихкоды, например, формата UPC-A (12-значные, часто на импортных товарах), не преобразуются в стандартный для России EAN-13 формат (путем добавления ведущего нуля) на стороне 1С, или имеют другие специфические отклонения, которые ККТ не распознает.

Комплексные подходы к устранению ошибки D3h "Код товара не распознан"

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

1. Настройка ККТ "ШТРИХ-М": Расширенный прием кодов товара

Один из наиболее часто помогающих и относительно быстрых способов — это изменение внутренней настройки самой контрольно-кассовой техники "ШТРИХ-М". Данная настройка позволяет ККТ принимать все коды товаров, даже если они не распознаются ею автоматически по стандартным правилам, что часто обходит ошибку D3h.

  1. Доступ к настройкам ККТ: Мы используем утилиту для настройки фискальных регистраторов "ШТРИХ-М". Чаще всего это "Тест драйвера ККТ", который поставляется вместе с драйвером, или специализированное программное обеспечение для работы с таблицами ККТ. Мы запускаем эту утилиту и подключаемся к нашей ККТ.

  2. Изменение параметра: Мы переходим в раздел работы с таблицами настроек ККТ. Нам необходимо найти Таблицу 17 (в некоторых версиях прошивок или драйверов она может быть обозначена как таблица параметров ФФД 1.2 или иметь другое наименование). В этой таблице нас интересует поле 41 (иногда поле 57 в более старых версиях), которое называется "Rus принимать все кт" (или "ПРИНИМАТЬ ВСЕ КОДЫ ТОВАРА", или "Принимать любой код маркировки/код товара"). Мы устанавливаем для этого поля значение "1".

  3. Сохранение изменений: После изменения значения мы обязательно записываем и сохраняем новые настройки в ККТ. После этого рекомендуется перезагрузить ККТ, если утилита не предлагает это сделать автоматически.

Пояснение: Установка значения "1" для параметра "Rus принимать все кт" инструктирует фискальный регистратор принимать любые коды товаров, включая PLU-коды, которые 1С может передавать для весовых товаров, и коды маркировки, которые могли быть некорректно сформированы или интерпретированы. Это позволяет обойти проблему "не распознанного кода" на уровне ККТ, не давая фискальнику отклонять чек.

Важно понимать потенциальные риски: Данное решение является своего рода обходным путем. Хотя оно может быстро решить проблему с пробитием чеков, особенно для весовых и некоторых немаркированных товаров, при работе с маркированной продукцией оно несет определенные риски. Если ККТ будет принимать "битые" или некорректные коды маркировки, она все равно отправит их в ОФД и далее в систему "Честный ЗНАК". Впоследствии это может привести к появлению предупреждений, запросов на пояснения или даже штрафов за продажу товаров с недействительными кодами маркировки. Поэтому мы рекомендуем использовать это решение как временное, для тестирования или для исключительно немаркированных товаров, а для маркировки все же стремиться к полному решению через обновления и корректную передачу данных.

2. Комплексное обновление программного обеспечения

Зачастую, причина ошибки кроется в устаревших компонентах системы. Производители программного обеспечения и ККТ постоянно выпускают обновления, исправляющие известные ошибки и улучшающие совместимость с ФФД 1.2. Мы настоятельно рекомендуем провести комплексное обновление всех компонентов, участвующих в процессе пробития чеков:

  1. Обновление конфигурации 1С: Мы обновляем нашу конфигурацию 1С (например, 1С:Розница, 1С:Управление торговлей) до самой актуальной версии. Разработчики 1С активно работают над устранением проблем, связанных с ФФД 1.2 и маркировкой. Многие ошибки, включая некорректную передачу данных для весовых товаров и некорректную обработку кодов маркировки, были исправлены в последних релизах. Например, упоминалось, что 1С:Розница 2.3.10.43 и выше уже содержат исправления для подобных проблем. Также крайне важно убедиться, что библиотека подключаемого оборудования (БПО) обновлена до версии не ниже 3.2.7.21, так как именно она отвечает за взаимодействие с внешними устройствами.

  2. Обновление прошивки ККТ "ШТРИХ-М": Мы обращаемся к производителю или авторизованному сервисному центру для обновления прошивки нашего фискального регистратора "ШТРИХ-М" до самой актуальной версии, поддерживающей ФФД 1.2. Прошивка от 19.07.2021, упомянутая в сообщениях, на момент возникновения проблемы, скорее всего, уже устарела, и новые версии могли содержать критически важные исправления для совместимости с ФФД 1.2 и корректной обработки кодов маркировки.

  3. Обновление драйвера ККТ "ШТРИХ-М": Мы устанавливаем самую последнюю версию драйвера ККТ "ШТРИХ-М". Актуальный драйвер (например, версии 5.17.0.968 и выше, или более поздние) критически важен для корректного взаимодействия между 1С и фискальным регистратором, учитывая все нюансы ФФД 1.2. После установки нового драйвера в операционную систему, мы можем вручную добавить его в 1С (через раздел "Администрирование" -> "Подключаемое оборудование" -> "Драйверы оборудования"), как это было сделано для решения проблемы с сигаретами в первом сообщении, чтобы 1С использовала именно новую версию драйвера.

Важный алгоритм перехода на ФФД 1.2: Для корректного перехода на ФФД 1.2 и минимизации ошибок мы рекомендуем следующую последовательность действий:

  1. Перед началом процесса убедимся, что установлена актуальная версия драйвера ККТ на рабочем месте.

  2. Закроем текущую смену на ККТ.

  3. Проверим отсутствие неотправленных документов в ОФД, чтобы не потерять данные.

  4. Обновим прошивку ККТ до версии с полной поддержкой ФФД 1.2. Это действие обычно выполняется сервисным инженером.

  5. Проведем перерегистрацию фискального накопителя (ФН) в налоговой службе, обязательно указав в параметрах регистрации использование ФФД 1.2. Без этого ККТ не сможет работать в новом формате.

3. Программная доработка конфигурации 1С (для программистов)

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

В случае с весовыми товарами, проблема часто заключается в том, что 1С передает в ККТ не совсем корректный штрихкод, сформированный из PLU-кода или других внутренних идентификаторов, который фискальный регистратор не может распознать.

  1. Создание расширения или модификация кода: Мы разрабатываем расширение конфигурации или вносим изменения непосредственно в код модуля, отвечающего за формирование чека и взаимодействие с ККТ. Рекомендуется использовать расширения, чтобы не снимать конфигурацию с поддержки.

  2. Логика очистки или коррекции штрихкода: Основная идея заключается в том, чтобы перед записью чека (или перед отправкой данных в драйвер ККТ) выполнить проверку типа товара. Если товар является весовым (или имеет специфичный формат штрихкода, вызывающий ошибку), мы очищаем поле штрихкода, которое будет передано в ККТ, или формируем его по особому правилу, которое ККТ гарантированно поймет. Это предотвращает передачу некорректных данных, которые ККТ не может распознать.

    Примерная логика может выглядеть так (мы адаптируем ее под конкретные методы и структуры данных нашей конфигурации 1С, например, в обработке РМКОперации или в модуле менеджера ПодключаемоеОборудование):

    
    // Предположим, мы работаем с данными чека перед его отправкой в ККТ.
    // Это может быть обработчик ПередЗаписью или ПередПечатьюЧекаККМ.
            
    Для Каждого СтрокаТабличнойЧасти Из ОбъектЧека.Товары Цикл
        // Проверяем, является ли товар весовым или имеет специфичный PLU-код.
        // Например, по свойству номенклатуры "Весовой" или по префиксу штрихкода.
        Если СтрокаТабличнойЧасти.Номенклатура.Весовой Тогда
            // В данном случае мы очищаем штрихкод, чтобы ККТ не пыталась его распознать как КМ.
            // ККТ должна обработать товар как обычный, а вес будет передан в отдельном поле.
            СтрокаТабличнойЧасти.Штрихкод = ""; 
                    
            // Альтернативно, если ККТ ожидает специфичный формат штрихкода для весового,
            // мы можем его сформировать. Например:
            // СтрокаТабличнойЧасти.Штрихкод = СформироватьКорректныйШтрихкодДляВесового(СтрокаТабличнойЧасти.Номенклатура);
        КонецЕсли;
    КонецЦикла;
    

    Примечание: Этот пример кода является схематичным. Реальная реализация будет зависеть от конкретной версии 1С, используемого драйвера и того, как именно 1С формирует команды для ККТ. Мы будем искать место, где данные о штрихкоде товара подготавливаются для передачи драйверу ККТ, и там вносить корректировки.

  3. Тестирование: После внедрения доработки мы тщательно тестируем процесс пробития различных типов товаров (весовых, маркированных, обычных немаркированных), чтобы убедиться в отсутствии других ошибок и корректности данных, попадающих в чек и передаваемых в ОФД.

4. Временный обходной путь (для пользователей)

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

При возникновении ошибки D3h после сканирования весового товара, мы можем попробовать перевыбрать этот товар в рабочем месте кассира (РМК). Иногда это действие заставляет 1С переформировать данные о товаре или повторно запросить информацию о нем, что позволяет системе корректно подготовить данные для ККТ и успешно пробить позицию.

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

Дополнительные рекомендации и анализ

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

  1. Настройка 1С для весовых штрихкодов: Мы должны убедиться, что в 1С правильно настроены префиксы для весовых штрихкодов (например, префикс 2X, который кодирует вес). Программа должна корректно расшифровывать такие штрихкоды, извлекая из них вес и код номенклатуры, а не передавать их в ККТ как обычный код, ожидающий проверки маркировки.

  2. Проверка штрихкодов немаркированных товаров: Если ошибка D3h возникает и для обычных немаркированных товаров, мы должны проверить формат их штрихкодов. Штрихкоды UPC-A (12-значные) часто требуют преобразования в EAN-13 (путем добавления ведущего нуля) на стороне 1С для корректной работы с российскими фискальными регистраторами.

  3. Мониторинг статуса маркировки на чеке: ФФД 1.2 вводит дополнительные теги для маркированных товаров и требует их корректной передачи. Символы М+, М- или просто М на чеке указывают на статус проверки кода маркировки. М+ означает успешную проверку и передачу данных, М- — отрицательный результат проверки (код недействителен или отсутствует в системе), а просто М — отсутствие проверки. Мы всегда стремимся к тому, чтобы на чеках маркированных товаров отображалось М+, что подтверждает корректность передачи данных в ОФД и "Честный ЗНАК".

  4. Контроль за передачей данных в Честный ЗНАК: Мы регулярно проверяем, что данные о продажах маркированных товаров корректно передаются в систему "Честный ЗНАК" через ОФД. Если после применения каких-либо обходных решений или обновлений возникают расхождения или ошибки в отчетах "Честного ЗНАКА", это может указывать на скрытые проблемы, которые необходимо будет исследовать дополнительно.

Заключение: Решение проблемы с ошибкой D3h при переходе на ФФД 1.2 требует комплексного подхода и внимательности к деталям. Мы можем начать с настройки ККТ и обновления всего программного обеспечения, а при необходимости прибегнуть к точечным доработкам в 1С. Важно понимать, что для маркированных товаров наилучшим решением будет устранение корневой причины через обновления и корректную передачу всех необходимых тегов, а не использование обходных путей, которые могут нести регуляторные риски.

← На главную