При проверке поступления или продаже табачной продукции в программе 1С:Розница 2.3 пользователи часто сталкиваются с крайне неприятной проблемой. При сканировании кода маркировки (как с отдельной пачки, так и с целого блока сигарет) система выдает ошибку проверки, заявляя, что отсканирован неизвестный штрихкод, и пытается добавить его как новый товар. При детальном анализе считанной строки выясняется, что сканер передает некорректные данные: при чтении блока добавляются лишние круглые скобки, а при сканировании пачки в конец кода дописывается служебный текст вроде МРЦСтрокой или другие непредусмотренные символы.
В этой статье мы подробно разберем техническую суть этой проблемы, выясним, почему программа так странно искажает считанные данные, и пошагово рассмотрим несколько способов настройки оборудования и конфигурации «1С», которые помогут полностью решить эту проблему.
---
Для начала проанализируем структуру двумерного штрихкода GS1 DataMatrix, используемого для маркировки табачной продукции. Этот код состоит из нескольких групп данных, перед каждой из которых идет специальный идентификатор применения (AI):
01 — GTIN продукции (14 символов);21 — индивидуальный серийный номер пачки (7 символов);8005 — максимальная розничная цена, или МРЦ (6 символов);93 — код проверки, так называемый криптохвост (4 символа).В печатном (текстовом) представлении эти идентификаторы применения принято выделять круглыми скобками, например: (01)046... (21)... (8005).... Однако в самом штрихкоде DataMatrix на пачке никаких физических круглых скобок нет! Вместо них по стандарту GS1 для разделения полей переменной длины используется скрытый непечатный управляющий символ — GS (Group Separator, ASCII-символ 29).
Когда ваш 2D-сканер работает в самом простом и распространенном режиме эмуляции клавиатуры (USB HID), он передает считанные символы последовательно, как будто они быстро набираются на физической клавиатуре. Операционная система Windows воспринимает непечатный символ разделителя групп GS (ASCII 29) как управляющую команду и попросту срезает (игнорирует) его. Данные поступают в «1С» сплошным неразрывным потоком.
В результате алгоритм разбора штрихкода в «1С» теряет ориентиры. Программа не может определить, где заканчивается серийный номер и начинается блок МРЦ. Шаблон разбора внутри «1С» сбивается, и система вместо значения цены подставляет в конец распознанной строки имя внутренней переменной — текст МРЦСтрокой. Из-за этого модифицированный код маркировки не совпадает с кодом из накладной ЭДО или системы «Честный ЗНАК», и проверка завершается ошибкой.
Что касается лишних скобок при сканировании блоков, то здесь причина кроется в настройках самого сканера. В некоторых моделях по умолчанию включена опция «GS1-128 Emulation», которая принудительно вставляет скобки вокруг идентификаторов применения, что ломает логику парсинга native-драйвера «1С».
---
Рассмотрим самый правильный и рекомендуемый разработчиками «1С» и ЦРПТ способ решения проблемы — перевод сканера штрихкодов в режим работы **USB-to-COM**.
В режиме виртуального COM-порта данные от сканера передаются напрямую в порт ввода-вывода операционной системы, минуя клавиатурный буфер. В этом случае управляющий символ-разделитель GS (ASCII 29) доходит до конфигурации «1С» в первозданном виде без каких-либо потерь.
Выполним настройку по шагам:
Порты (COM и LPT) и посмотрите, какой номер виртуального COM-порта (например, COM3 или COM5) присвоен вашему сканеру.Администрирование — Подключаемое оборудование.Настроить.Порт выберите из выпадающего списка номер COM-порта, который мы определили в Диспетчере устройств.Драйвер оборудования убедитесь, что выбран современный сертифицированный драйвер — «1С:Сканер штрихкода (NativeApi)».Тест подключения и отсканируйте марку сигарет. В окне теста вы должны увидеть считанную строку, в которой разделители групп будут отображаться в виде спецсимволов (например, стрелочек или символов <GS>). Если тест прошел успешно, сохраните настройки.---
Выясним, как поступить, если перевести сканер в COM-режим по какой-то причине невозможно (например, сканер используется параллельно в других старых программах, не поддерживающих виртуальные порты, или рабочее место развернуто в терминальном сессионном режиме RDP, где проброс портов затруднен).
В этом случае нам необходимо заставить сканер преобразовывать невидимый символ разделителя GS в понятную для операционной системы последовательность клавиш или заменять его на печатный символ.
Способ А. Эмуляция Alt-кодов (подходит для большинства современных сканеров):
В руководстве по программированию вашего сканера найдите опцию эмуляции ввода управляющих символов через Alt-последовательности (может называться «Enable Alt-Mode», «Alt-Key Code Emulation» или «GS replacement with Alt+0029»). При сканировании марки прибор вместо отправки «голого» символа ASCII 29 сымитирует зажатие клавиши Alt и последовательный набор цифр 0, 0, 2, 9 на цифровой клавиатуре. Windows успешно обработает это нажатие, и «1С» получит разделитель в полном объеме.
Способ Б. Замена символа GS на печатный знак:
# или вертикальную черту |).Символ-разделитель GS1 (или аналогичное поле настройки префиксов/суффиксов разделителя) и введите туда этот же назначенный символ (например, #). Теперь «1С» будет знать, что вместо стандартного невидимого разделителя нужно ориентироваться на этот знак.---
Проанализируем ситуацию, при которой сканер при чтении марки групповой упаковки (блока сигарет) принудительно добавляет в строку физические круглые скобки. Как мы уже выяснили, это сбивает логику разбора в учетной системе.
Для исправления этого поведения выполните следующие действия:
---
Если оборудование настроено верно, но программа все равно сбоит при проверке МРЦ на этапе приемки документов, рассмотрим временные административные меры контроля и необходимость обновления программных компонентов.
Отключение избыточного контроля кодов маркировки в настройках интеграции:
В периоды массового изменения форматов маркировки (например, при переходе на новые ФФД или изменениях на стороне Честного Знака) разработчики 1С рекомендуют временно снижать строгость проверок, чтобы не блокировать торговые процессы на розничных точках.
Администрирование — Настройки интеграции с ИС МП.Контролировать статусы кодов маркировки;Выполнять проверку при розничной продаже.Обновление конфигурации и драйверов:
Проблема некорректной обработки МРЦ на стыке конфигурации «1С:Розница 2.3» и БСП (Библиотеки стандартных подсистем) активно решалась разработчиками в различных релизах программ. Если вы используете устаревшую версию программы, настоятельно рекомендуется:
Применяя указанные методики настройки оборудования и программного обеспечения, мы сможем гарантировать стабильную работу кассовой зоны без ошибок распознавания табачной маркировки.