Сканер штрихкодов в текстовое поле с символом GS и не только.
Недавно передо мной встала задача: обеспечить корректное списание маркированных товаров через браузер в "Мой склад" и в системе «Робокасса» да и в целом наладить корректную отправку символа GS в текстовую строку. Основная проблема заключалась в обработке специальных символов‑разделителей GS (Group Separator), которые критически важны для валидной передачи данных в учётные системы.
Суть проблемы
При ручном вводе или стандартном сканировании:
- символы GS не отображаются или интерпретируются неверно;
- нарушается структура кода маркировки;
- система не может распознать товар, возникают ошибки списания.
Решение
Я разработал небольшую программу, которая:
- Подключается к сканеру через COM‑порт (последовательный интерфейс).
- Корректно считывает все символы, включая невидимый GS (\x1D в HEX).
- Формирует строку в нужном формате для передачи в «Робокасса» и Мой склад.
- Вставляет его туда где стоит курсор или имитирует нажатие F8(Мой склад).
Как это работает
- Подключите сканер к компьютеру via COM‑порт.
- Запустите программу (достаточно двойного клика).
- Отсканируйте код маркировки.
- Программа:захватит весь поток данных;выделит символ GS;проверит целостность кода;отправит корректную строку в систему.
Ключевое преимущество: не нужно следить за раскладкой клавиатуры или вручную редактировать данные — всё происходит автоматически.
Технический нюанс
Символ GS имеет код $\text{0x1D}$ в шестнадцатеричной системе. Моя программа явно обрабатывает этот байт, сохраняя его в выходной строке. Это гарантирует, что учётная система получит данные в формате, соответствующем требованиям «Честного ЗНАКА» и API «Робокассы».
Результат
Теперь:
- списание марок происходит без ошибок;
- экономия времени — нет ручного ввода;
- снижение риска блокировок из‑за некорректных данных.
Пример работы
Проверить корректность сканирования можно на тестовой странице:https://ladimkkt.ru/gs.html
Там же доступен демо‑режим, чтобы убедиться, что ваш сканер и программа передают GS‑символы правильно.
Итог: простое решение избавило от рутинных операций по настройке сканера и повысило точность учёта маркированных товаров.