Удаление/добавление непечатаемых (управляющих) символов из сканируемых данных

Что такое непечатаемые символы?

 Непечатаемые символы (управляющие символы, control characters) — это служебные байты в диапазоне 0x00–0x1F и 0x7F, которые не имеют визуального отображения, но передают команды оборудованию или ПО. В штрих-кодах наиболее часто встречаются:
  • STX (0x02) — Start of Text (начало текста)
  • ETX (0x03) — End of Text (конец текста)
  • CR (0x0D) и LF (0x0A) — возврат каретки и перевод строки
  • Tab (0x09) — горизонтальная табуляция
  • NUL (0x00) — нулевой байт (часто используется в Data Matrix для padding)
Почему это важно?

Многие производители включают управляющие символы в состав штрих-кода для структурирования данных (например, разделение полей в кодировании GS1) или для аппаратной синхронизации. Однако при сканировании в стандартные текстовые поля (блокнот, Excel, формы ввода 1С, WMS-системы) эти символы могут вызывать:
  • Визуальные артефакты: пустые квадратики, «кракозябры» или разрывы строк там, где их быть не должно
  • Сбои валидации: система учёта отказывается принимать штрих-код, считая его «испорченным»
  • Некорректную сортировку: данные с CR/LF разбиваются на несколько строк в таблицах
  • Проблемы с поиском: скопированный из системы штрих-код не находится в базе из-за «невидимого» символа в начале или конце
Путь к настройке: Настройки Android → Настройки сканера → Формат этикетки → Remove non-printable characters (Удалить непечатаемые символы)

Режимы работы и рекомендации:

 Включено (Checked):
  • Все управляющие символы (0x00–0x1F, кроме стандартных CR/LF если не указано иное) фильтруются на уровне драйвера сканера
  • Данные поступают в приложение «чистыми», содержат только печатаемые ASCII-символы (0x20–0x7E)
  • Рекомендуется: при работе с 1С, Excel, простыми текстовыми полями ввода, если целевая система не поддерживает управляющие символы
Выключено (Unchecked):
  • Сканер передаёт данные «как есть», включая все служебные байты
  • Рекомендуется: при интеграции с промышленным оборудованием, PLC-контроллерами, или когда штрих-код содержит структурированные данные GS1 (разделители полей), которые должны обрабатываться ПО на уровне приложения
Типичные сценарии использования:

Сценарий 1 — «Лишние символы в 1С» Пользователь жалуется, что после сканирования в поле артикула появляется «квадратик» или курсор перескакивает на новую строку. Включение Remove non-printable characters решает проблему без доработки конфигурации 1С.
Сценарий 2 — «Не работает разделение полей» В коде GS1-128 закодированы несколько полей (артикул + серийный номер), разделённых символом GS (Group Separator, 0x1D). Если включено удаление непечатаемых символов, разделитель исчезнет, и данные слипнутся в одну строку. В этом случае настройку следует отключить, а обработку разделителей возложить на ПО.