При работе с маркированным товаром в программе 1С:Розница 2.3 (особенно в подсистеме Честный Знак для легкой промышленности) пользователи часто сталкиваются с ситуацией, когда при сканировании кода DataMatrix в рабочем месте кассира (РМК) номенклатура определяется правильно, но индикатор марки остается красного цвета. Это означает, что система не смогла верифицировать марку как корректную. Разберем подробно причины этого поведения и способы решения проблемы на примере сканера PORT HC-40.
Для начала проанализируем, что происходит «под капотом» 1С в момент сканирования. Код маркировки (DataMatrix) — это не обычная текстовая строка, а структурированный набор данных формата GS1. Он содержит идентификатор применения (AI), GTIN, серийный номер и «криптохвост» (код проверки). Эти блоки данных разделяются специальным непечатным символом GS (Group Separator, ASCII 29).
Если 1С подтягивает товар, но марка горит красным, это сигнализирует о том, что программа получила данные, но их структура нарушена. Основные причины:
Выясним причину, почему сканер может передавать данные неверно. В бюджетных моделях, таких как PORT HC-40, поддержка передачи спецсимволов FNC1 и GS часто отключена по умолчанию. Рассмотрим порядок действий для исправления:
Воспользуемся полной сервисной инструкцией от производителя. В комплекте обычно идет краткий гид, но для работы с маркировкой нужны специфические коды. Проанализируем настройки:
Важный момент: Если в 1С:Бухгалтерия марка подбирается, а в 1С:Розница нет — это не всегда означает ошибку в программе. 1С:Розница предъявляет более строгие требования к формату считанной марки в РМК для обеспечения законодательной чистоты чека.
Посмотрим на ситуацию со стороны драйверов. Режим эмуляции клавиатуры (HID) крайне зависим от текущей раскладки Windows. Если в момент сканирования включена русская раскладка, спецсимволы могут быть интерпретированы неверно.
Разберем алгоритм перевода сканера в наиболее стабильный режим:
В этом режиме данные попадают напрямую в 1С, минуя буфер клавиатуры, что гарантирует сохранность всех символов разделителей.
Проанализируем настройки драйвера внутри 1С. Часто марка остается красной, потому что система не понимает, где заканчивается код. 1С ожидает символ CR (Enter) или LF в конце строки.
Перейдем в настройки драйвера 1С:Сканеры штрихкода (NativeApi):
13 (CR) или 10 (LF).Рассмотрим пример настройки для режима клавиатуры. Попробуем установить суффикс CR+LF (комбинация 13 и 10). Это часто помогает, если марка считывается, но не подтверждается нажатием «виртуального» ввода. Если проблемы со сканированием начались после обновления программы, можно воспользоваться инструментами для восстановления корректной работы драйвера 1С:Сканеры штрихкода.
Выясним, нет ли расхождений в данных самого товара. Код маркировки содержит GTIN (14 цифр). 1С сопоставляет этот GTIN со штрихкодом, указанным в карточке номенклатуры.
Рассмотрим типичную ошибку: в карточке товара штрихкод записан как 4601234567890 (13 знаков), а в марке он записан с ведущим нулем 04601234567890.
Проанализируем настройки вида номенклатуры:
Если технические настройки сканера не помогают, программисту следует посмотреть, какой именно текст приходит в процедуру обработки внешнего события. Рассмотрим фрагмент логики, на который стоит обратить внимание (метакод):
// В обработчике внешнего события сканера
ДанныеШтрихкода = СчитатьШтрихкод(ПараметрыСобытия);
// Проверьте длину строки ДанныеШтрихкода.
// Если она меньше 31 символа (для упрощенных марок)
// или содержит некорректные символы вместо GS (ASCII 29),
// 1С не сможет разобрать структуру марки.
Используйте стандартную обработку "Тест устройства" в настройках оборудования 1С. При сканировании марки в поле «Результат» вы должны увидеть не просто цифры и буквы, а управляющие символы (часто отображаются как стрелочки или значки #29). В случае, если сканер не передает эти спецсимволы, можно использовать расширение для программного добавления символов GS в считанный код маркировки.
Как показала практика, для модели PORT HC-40 решение заключается в обращении к технической поддержке производителя или поиске расширенного мануала. Необходимо считать специальный программный код, который активирует корректный режим передачи данных для 1С. В комплекте поставки этого кода обычно нет. После считывания сервисного штрихкода сканер начинает правильно передавать структуру GS1, и марка в 1С:Розница мгновенно становится зеленой.
Важное напоминание: Всегда проверяйте сканер на сайте Честного Знака в разделе "Проверка сканера". Если сайт говорит, что сканер настроен неверно, 1С:Розница тем более не сможет обработать такой код.