Как исправить ошибку «Недопустимый формат штрихкода» при продаже маркированной продукции в 1С:Управление торговлей 11?

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

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

В этой статье мы подробно разберем, почему возникает данная неполадка при ручном копировании кодов и при сканировании, как правильно перенастроить торговое оборудование, где найти скрытые параметры интеграции в личном кабинете «Честного ЗНАКа» и как решить проблему с непередачей маркировочных данных в фискальный чек ККТ.

Причина №1: Попытка ручного ввода кода маркировки через буфер обмена

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

Полный код маркировки формата GS1 DataMatrix представляет собой сложную структурированную строку, содержащую не только видимые символы (идентификаторы применения, серийный номер, криптохвост), но и непечатные служебные символы-разделители. Основным из них является символ <GS> (Group Separator, ASCII-код 29). Этот символ сообщает парсеру 1С о переходе от одной группы данных к другой (например, отделяет серийный номер от ключа и кода проверки).

Когда вы копируете КМ как обычный текст через буфер обмена Windows, операционная система физически не может передать непечатный символ ASCII 29. Он либо полностью вырезается, либо преобразуется в обычный пробел. Получив строку без разделителей, встроенный в 1С модуль интеграции с ИС МП (Информационной системой маркировки пива и табака / обуви) теряет ориентиры для разбора строки и сообщает о неверном формате штрихкода.

Кроме того, в старых релизах 1С:УТ 11 (например, в ветке 11.4.11) регулярные выражения встроенного парсера имели внутренние ограничения. Если криптохвост кода содержал спецсимволы, такие как знак процента %, скобки или точки, парсер ошибочно воспринимал их как начало новых служебных тегов, что приводило к аварийному завершению процедуры разбора КМ.

Решение причины №1: Правильная настройка сканера штрихкодов в режиме эмуляции COM-порта

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

  1. Перевод сканера в режим эмуляции USB-COM порта: По умолчанию большинство сканеров из коробки работают в режиме эмуляции клавиатуры (HID-режим). В этом режиме сканер имитирует быстрый ввод символов с клавиатуры, при этом служебный символ ASCII 29 теряется точно так же, как и при копировании из буфера. Переведите сканер в режим виртуального COM-порта (USB-COM / Virtual COM). Для этого необходимо найти инструкцию к вашей модели сканера (Honeywell, Zebra, Datalogic, Mertech и др.) и считать специальный настроечный штрихкод из раздела «USB OEM» или «USB Serial Emulation».
  2. Установка драйверов в ОС: После перевода устройства в COM-режим в диспетчере устройств Windows появится новое виртуальное устройство (например, в разделе «Порты (COM и LPT)» появится виртуальный порт COM3 или COM4). При необходимости установите официальный драйвер виртуального COM-порта от производителя вашего сканера.
  3. Активация чтения DataMatrix: Убедитесь, что в настройках сканера разрешено чтение кодов типа DataMatrix и GS1 DataMatrix (в некоторых бюджетных моделях по умолчанию включено чтение только одномерных 1D-кодов).
  4. Настройка суффикса: Для корректной работы драйвера 1С сканеру необходимо передавать признак окончания посылки данных. Настройте на сканере суффикс CR (Carriage Return, ASCII 13) или пару суффиксов CR/LF с помощью управляющих кодов из инструкции.
  5. Подключение оборудования в 1С: УТ 11:
    • Перейдите в меню НСИ и администрирование — Администрирование — РМК и оборудование — Подключаемое оборудование.
    • Создайте новое устройство с типом «Сканеры штрихкода».
    • В качестве драйвера оборудования выберите сертифицированный встроенный драйвер «1С:Сканеры штрихкода (NativeApi)».
    • Нажмите кнопку «Настроить» и укажите порт (выберите тот виртуальный COM-порт, который определился в диспетчере устройств). Скорость передачи и другие параметры порта обычно можно оставить по умолчанию.
    • Обязательно нажмите кнопку «Тест устройства» и сосканируйте марку. В окне теста вы должны увидеть считанный код маркировки, в структуре которого будут наглядно отображаться непечатные символы (в зависимости от драйвера они могут отображаться как 'GS' или спецсимволы в угловых скобках).

Для понимания того, как система должна обрабатывать корректный поток данных со сканера на программном уровне, приведем пример кода, который выполняется при получении данных от внешнего события оборудования в Управлении торговлей:


// Пример обработки входящих данных от сканера NativeAPI в модуле формы РМК
Процедура ВнешнееСобытие(Источник, Событие, Данные)
    
    Если Источник = "BarCodeScanner" Или Событие = "BarCode" Тогда
        // Отключаем обработку событий на время разбора
        ПолученныеДанные = СокрЛП(Данные);
        
        // В COM-режиме символ ASCII 29 передается корректно как Символ(29)
        Если Найти(ПолученныеДанные, Символ(29)) > 0 Тогда
            // Вызываем стандартный парсер библиотеки интеграции с ИС МП
            ПараметрыШтрихкода = МаркировкаКлиент.РазобратьШтрихкодDataMatrix(ПолученныеДанные);
            Если ПараметрыШтрихкода.ФорматВерный Тогда
                // Добавляем маркированную продукцию в корзину
                ОбработатьДобавлениеМаркированногоТовара(ПараметрыШтрихкода);
            Иначе
                ВызватьИсключение "Не удалось распознать структуру GS1!";
            КонецЕсли;
        Иначе
            Предупреждение("Внимание! Сканер вернул код без разделителей GS. Проверьте настройки COM-порта.");
        EndIf;
    КонецЕсли;
    
КонецПроцедуры

Причина №2: Настройка параметров СУЗ и поиск раздела «Устройства» в ЛК «Честный Знак»

Для полноценной работы с маркировкой в 1С (особенно если требуется не только продавать, но и заказывавать коды маркировки, вводить их в оборот или проверять их статусы напрямую в ГИС МТ) необходимо заполнить параметры подключения к Станции управления заказами (СУЗ).

Пользователи часто заходят в тупик, не находя кнопку «Устройства» в интерфейсе СУЗ на сайте ГИС МТ. Разберем по шагам, как получить параметры СУЗ в обновленном интерфейсе личного кабинета ЦРПТ:

  1. Авторизуйтесь в личном кабинете системы маркировки «Честный Знак» с помощью вашей усиленной квалифицированной электронной подписи (УКЭП).
  2. В левом верхнем углу рабочей области найдите кнопку главного меню (выглядит как пиктограмма из нескольких квадратов или горизонтальных полос) и перейдите во вкладку «Станция управления заказами» (СУЗ).
  3. После перехода в интерфейс СУЗ обратите внимание на левую вертикальную панель меню. Перейдите в раздел «Устройства».
  4. Если в списке устройств пусто, вам необходимо зарегистрировать новое виртуальное устройство, через которое 1С будет обмениваться данными с сервером ЦРПТ. Нажмите кнопку «Создать устройство».
  5. Задайте устройству любое произвольное логическое имя (например, "РабочееМесто_1С"). В поле выбора типа устройства строго укажите тип «АСУ ТП», а в качестве режима выберите режим «Автоматически».
  6. Сохраните изменения. В строке созданного устройства отобразятся критически важные реквизиты: OMS ID (уникальный идентификатор станции) и Идентификатор соединения (токен). Скопируйте эти данные.
  7. Вернитесь в программу 1С:УТ 11, перейдите в раздел НСИ и администрирование — Настройка интеграции с ИС МП, откройте настройки обмена и перейдите по гиперссылке настройки параметров СУЗ. Создайте новую запись, выберите организацию, вставьте скопированные значения OMS ID, токен соединения и укажите используемый порт (по умолчанию для обмена используется защищенный сетевой порт 443).

Причина №3: Маркированный товар не передается в кассовый чек (на примере ККТ Штрих-М)

Рассмотрим проблему, описанную в Сообщении 10: пользователь успешно добавил товар в чек в 1С, но при пробитии чека на кассовом аппарате маркировка не уходит в ОФД, а сам код маркировки не печатается в фискальном документе. На это влияют три системных фактора:

  1. Использование ручного ввода КМ: Если код маркировки был введен вручную без участия драйвера сканера, 1С не сможет сгенерировать служебный реквизит КодМаркировкиBase64, который необходим для передачи структуры КМ в ККТ через XML-пакет. Касса просто проигнорирует неполные данные и пробьет товар как обычный (немаркированный).
  2. Неверная настройка внутренних таблиц ККТ Штрих-М: Фискальные регистраторы семейства Штрих-М имеют сложную структуру внутренних таблиц конфигурации. Настройку необходимо производить через утилиту «Тест драйвера ККТ»:
    • Подключитесь к кассе, перейдите в раздел «Настройки свойств» — «Таблицы».
    • Откройте Таблицу № 17 «Региональные настройки». Найдите поле № 41 («Способ передачи КМ»). В зависимости от версии прошивки и используемого ФФД, значение в этом поле должно быть задано корректно (обычно значение «0» или «1» определяет, кто отвечает за разбор марки — касса или кассовое ПО).
    • Также проверьте настройки контроля КМ в Таблице № 17 поле № 25 и в Таблице № 1 «Тип КЛ». При некорректно заполненных таблицах ККТ Штрих-М при попытке пробить чек выдает ошибку «Код ошибки 94» или молча обрезает маркировочный тег.
  3. Устаревшая версия драйвера кассы: Использование старых версий драйверов (например, линейки 4.14) приводит к тому, что новые структуры TLV-контейнеров 1С не распознаются драйвером ККТ. Рекомендуется обновить драйвер Штрих-М до стабильных версий веток 4.15 или 5.16 / 5.17.

Важное законодательное требование: Переход на ФФД 1.2

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

Обратите внимание! В соответствии с действующим законодательством РФ, розничные продавцы маркированных товаров (за исключением некоторых специфических групп, например, пива на первых этапах) обязаны работать строго по формату ФФД 1.2. Работа по ФФД 1.05 для маркировки полностью запрещена!

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

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

← На главную