Как настроить сканер штрихкодов в 1С для работы с маркировкой
Содержание
Сканер исправно бьёт обычные штрихкоды, а код маркировки в 1С либо не читается, либо программа ругается Некорректный код маркировки и не даёт продать товар. Причина почти всегда одна — сканер теряет невидимый разделитель внутри Data Matrix. Настройка сканера в 1С для маркировки сводится к тому, чтобы этот символ дошёл до программы целым.
Ниже — как понять, что именно ломается, чем 2D-сканер для маркировки отличается от обычного, как настроить оборудование сервисными кодами и проверить результат прямо в 1С, не открывая Блокнот.
Механика одинакова для «1С:Бухгалтерии 8», «Управления торговлей 11.5» и «Розницы». Отличается лишь путь к рабочему месту Подключаемое оборудование — по тексту отмечаю, где смотреть.
Что читает сканер в коде маркировки
Код маркировки — это двумерный символ Data Matrix, а не привычный линейный штрихкод EAN-13. Внутри он устроен сложнее.
Полный код состоит из четырёх частей, склеенных техническими разделителями:
- 🏷️ GTIN — код товара (14 цифр);
- 🔑 серийный номер — уникальный для каждой единицы;
- 🛡️ ключ проверки и код проверки (криптохвост от Честного ЗНАКа).
Между этими группами стоит служебный символ-разделитель. Именно из-за него всё и ломается.
Символ GS, ASCII 29 и FNC1 — в чём разница
Три названия — по сути один и тот же разделитель, но с разных сторон:
| Термин | Что это | Где встречается |
|---|---|---|
| FNC1 | функциональный символ стандарта GS1 | в самом коде Data Matrix |
| GS (Group Separator) | как FNC1 передаётся в поток данных | на выходе сканера |
| ASCII 29 (0x1D) | числовой код этого символа | в программе и утилитах |
FNC1 «зашит» в картинку Data Matrix. Когда сканер расшифровывает код, он должен превратить FNC1 в символ GS с кодом ASCII 29 (шестнадцатеричное 1D) и передать его в 1С. 1С по этому разделителю понимает, где заканчивается GTIN и начинается криптохвост.
Если разделитель потерялся, 1С видит одну сплошную строку цифр и букв. Проверка кода в Честном ЗНАКе не проходит, продажа блокируется.
Почему разделитель не видно на экране
Символ GS — непечатаемый. В Блокноте, в поле ввода 1С или в браузере он выглядит как пустое место, квадратик ▯ или вообще ничем. Поэтому на глаз проверить наличие разделителя нельзя — и Блокнот для теста не годится (об этом ниже).
Почему сканер не передаёт символ GS
Самая частая поломка: сканер читает Data Matrix, что-то передаёт в 1С, но без разделителя. Вот откуда это берётся.
Режим HID «съедает» скрытый символ
Большинство сканеров по умолчанию работают в режиме HID (эмуляция клавиатуры) — сканер притворяется клавиатурой и «печатает» код в активное поле.
Проблема в том, что клавиатура не умеет нажать «символ GS» — такой клавиши физически нет. В режиме HID сканер либо выбрасывает разделитель, либо заменяет его на что-то своё. Код приходит в 1С битым.
Дешёвые и старые сканеры искажают Data Matrix
Бюджетные 2D-сканеры и старые прошивки часто:
- ❌ не поддерживают GS1-режим вовсе;
- ❌ передают разделитель как обычный пробел или
]; - ❌ читают Data Matrix, но обрезают криптохвост.
Такой сканер годится для приёмки по накладной, но не для продажи маркированного товара на кассе.
Как битый код проявляется в 1С
Симптомы, по которым видно, что разделитель теряется:
- при сканировании поле кода заполняется, но проверка выдаёт
Некорректный код маркировки; - документ
Отчёт о розничных продажахили чек не проводится; - в форме подбора код подсвечивается красным со статусом
Не найден в ИС МП; - касса на разрешительном режиме отказывает в продаже.
Какой сканер нужен для маркировки
Прежде чем настраивать, убедитесь, что оборудование в принципе подходит.
Минимальные требования:
- 📷 2D-сканер (имиджер) — линейный 1D коды Data Matrix не читает физически;
- 🔤 поддержка режима передачи GS / GS1 в прошивке;
- 🔌 возможность переключения в режим COM-порта (эмуляция RS-232) или корректная передача GS в HID.
Ходовые модели, которые уверенно работают с маркировкой из коробки: Honeywell серий 1450g/1470g, Zebra DS2208/DS4608, АТОЛ SB2108/2109, Mercury/Mertech 2310. Ориентир по цене проводного 2D-сканера — примерно от 4 000 до 12 000 ₽.
Если у вас уже есть сканер — не спешите его менять. Сначала проверьте, умеет ли он передавать GS после настройки.
Настройка сканера сервисными кодами
Сканер настраивается не через программу, а считыванием служебных штрихкодов из инструкции производителя. Логика у всех примерно одна.
Вариант 1. Оставить HID, но включить передачу GS
Для многих современных сканеров достаточно считать один служебный код из раздела «GS1 / Data Matrix» инструкции. После этого сканер в режиме клавиатуры начинает отдавать GS корректно.
Порядок:
- Найдите в инструкции штрихкод
Restore Factory Defaults— считайте его. - Найдите раздел про Data Matrix — убедитесь, что чтение включено.
- Считайте код
Enable GS1 Formatting(может называтьсяTransmit FNC1 as GS,AIM ID,Function Code). - Проверьте результат прямо в 1С (см. ниже).
Вариант 2. Перевести сканер в режим COM-порта
Если в HID разделитель упорно теряется — надёжнее переключить сканер в режим виртуального COM-порта (эмуляция RS-232). В этом режиме сканер отдаёт «сырой» поток байтов, включая ASCII 29, и ничего не режет.
- Считайте служебный код
USB COM/USB Virtual COM Port. - Установите драйвер виртуального COM-порта от производителя сканера (если Windows не подхватила сам).
- Посмотрите номер порта в
Диспетчере устройств→Порты (COM и LPT). - Этот же порт укажите в настройках 1С.
После смены режима на COM сканер перестаёт «печатать» в Блокнот — это нормально. Теперь его данные принимает только программа через драйвер, а не эмуляция клавиатуры.
Настройка сканера в 1С: подключаемое оборудование
Теперь связываем сканер с программой. Путь зависит от конфигурации:
- 1С:Бухгалтерия —
Администрирование→Подключаемое оборудование; - 1С:УТ / Розница —
НСИ и администрирование→Подключаемое оборудование(илиРМК).
Шаги одинаковые:
- Включите флажок
Использовать подключаемое оборудование. - Откройте список, нажмите
Создать. - Тип оборудования —
Сканеры штрихкода. - Драйвер —
1С:Сканеры штрихкода (NativeApi). - Нажмите
Настроитьи укажите режим подключения.
Что указать в драйвере оборудования
Ключевые параметры, от которых зависит чтение маркировки:
| Параметр | Для HID | Для COM |
|---|---|---|
| Тип подключения | Клавиатура | COM-порт |
| Номер порта | — | из Диспетчера устройств |
| Скорость | — | 9600 или 115200 (как в сканере) |
| Обработка GS | Включить | Включить |
После настройки нажмите Тест устройства и поднесите сканер к любому коду маркировки. В окне теста должен появиться код, а в нём — разделитель.
В свежих релизах платформы (8.3.2x) драйвер NativeApi сам распознаёт GS в потоке. Если у вас старый внешний драйвер Сканеры штрихкода (ScanOPOS) — обновите его, старые версии часто режут разделитель.
Как проверить, что символ GS передаётся
Главное правило: Блокнот для проверки не подходит. Он не показывает непечатаемые символы — вы увидите слитную строку и решите, что всё сломано, хотя GS на месте (или наоборот).
Рабочие способы проверки:
Способ 1. Прямо в 1С
Откройте Тест устройства в подключаемом оборудовании и отсканируйте код. Если 1С показывает статус Код корректен или подсвечивает поля GTIN и серийного номера раздельно — разделитель дошёл.
Способ 2. Проверка кода при подборе
Создайте документ [Заказ клиента](https://1s-83.com/1s-buhgalteriya/zakaz-klienta-v-1s.html) / Чек и отсканируйте код в поле подбора маркированной продукции. 1С сама обратится в ИС МП. Ответ В обороте означает, что код прочитан целиком.
Способ 3. Онлайн-валидатор Data Matrix
Специальные сервисы проверки кодов Data Matrix (например, инструменты внутри личного кабинета Честного ЗНАКа или сторонние GS1-валидаторы) показывают разделители явно — в виде <GS> или \x1D. Если разделитель в отчёте есть — сканер настроен верно.
Типичные ошибки и как их лечить
Enable Data Matrix. Если модель линейная — нужен 2D-имиджер.Message Length) или лимит символов в прошивке.Если не помогло: альтернативы
Когда сканер настроить не удаётся, есть обходные пути:
- 🔄 Другой сканер. Одолжите заведомо рабочую модель (Honeywell 1470g, Zebra DS2208) и проверьте на ней — так вы поймёте, дело в оборудовании или в 1С.
- 📱 ТСД или датаколлектор. Терминал сбора данных с собственной обработкой Data Matrix передаёт коды пакетом и не теряет GS.
- 🧑💻 Внешняя обработка проверки кодов. Для массовой приёмки существуют обработки, которые парсят коды из файла и сами вставляют разделитель.
- ☎️ Поддержка производителя сканера. У большинства вендоров есть готовый лист служебных кодов «Настройка под маркировку / Честный ЗНАК» — запросите его по модели.
Не пытайтесь «дорисовать» разделитель вручную в коде — Честный ЗНАК проверяет криптоподпись, и подделанный код система отклонит.
Частые вопросы
Подойдёт ли обычный сканер штрихкодов для маркировки?
Что такое символ GS и почему из-за него не работает код?
Некорректный код маркировки.Как включить передачу GS на сканере?
Enable GS1, Transmit FNC1 as GS). Если не помогает — переведите сканер в режим USB COM-порта.Почему нельзя проверять код в Блокноте?
В каком режиме подключать сканер — клавиатуры или COM-порта?
Настройка сканера одинакова в Бухгалтерии и УТ?
Подключаемое оборудование.Источники
- Честный ЗНАК — государственная система маркировки (честныйзнак.рф)
- Стандарт GS1 для кодов Data Matrix (gs1ru.org)