Как я настраивал сканер для работы в OrangeData и победил символ GS

Когда у тебя рядом сканер, клиент, маркировка и система OrangeData, кажется, что все должно работать просто: навел, пикнул, передал, заработало. Но в реальности, как обычно, начинается маленькая IT-драма с элементами технокомедии.

Меня попросили настроить сканер так, чтобы он корректно передавал символ GS при работе с маркированным товаром. Задача на первый взгляд выглядела простой: сканер должен считывать код, а система — правильно принимать данные. Но, как это часто бывает, “простая задача” быстро превращается в расследование с участием технической поддержки.

Что такое OrangeData

OrangeData — это облачный сервис, который помогает работать с онлайн-кассами, фискализацией и передачей данных в соответствии с требованиями законодательства. Если говорить совсем по-человечески, это одна из тех систем, которые должны быть не заметны в работе: все должно считываться, передаваться и фиксироваться без лишних ручных движений. Особенно когда речь идет о маркированных товарах, где важна каждая деталь — даже такой скромный символ, как GS.

Где возникла проблема

Нужно было добиться, чтобы сканер корректно передавал служебный символ GS. Именно он часто используется в кодах маркировки, чтобы разделять части строки и помогать системе правильно распознавать структуру данных. Казалось бы, дело техники. Но стандартные способы передачи не подошли.

Мы пробовали вариант с GS=F8, но этого оказалось недостаточно. Символ либо передавался не так, как нужно, либо вообще не воспринимался системой корректно. В такие моменты особенно хочется, чтобы техника умела читать мысли. Но, увы, даже у сканеров свои характеры.

Что сказала техническая поддержка

После обращения в техническую поддержку и уточнения, что именно ожидает строка с маркировкой, выяснился ключевой момент: передавать нужно не “условный GS”, а конкретный управляющий символ \u001d.

Вот здесь и стала понятна вся логика. Система ждала именно этот символ-разделитель, а не его визуальный суррогат и не попытку уговорить его прийти в другом формате. Кроме того, в настройках нужно было выбирать тип товара ТМ — без этого корректной обработки маркировки не получалось.

Как я решил задачу

После этого я переписал свою программу lks.exe для клиента и добавил в нее функцию, которая автоматически вставляет нужную комбинацию “на лету” через COM-порт сканера.

То есть теперь программа сама подставляет \u001d в нужный момент, а сканер передает данные уже в правильном виде. В итоге система OrangeData получает именно ту строку, которую ожидает, а маркированный товар проходит обработку без сюрпризов, танцев с бубном и философских размышлений о смысле символа GS.

Что получилось в итоге

В результате настройка сканера для OrangeData была успешно завершена. Теперь:

  • символ GS передается корректно;
  • маркировка читается без ошибок;
  • тип товара выбирается как ТМ;
  • данные проходят через COM-порт без ручных доработок;
  • клиенту не нужно каждый раз вспоминать, где у него заканчивается маркировка и начинается терпение.

Вывод

Настройка сканера для работы с OrangeData — это не просто “подключить устройство и нажать кнопку”. Иногда приходится разбираться, какой именно символ нужен системе, как его передавать и почему стандартные решения внезапно решают пойти в отпуск.

В моем случае победа была за точной настройкой: \u001d, правильный тип товара и доработка lks.exe, которая автоматически добавила нужную логику через COM-порт. И если раньше сканер был просто сканером, то теперь он стал полноценным участником процесса маркировки — без лишней драмы, но с характером.

Если Вы столкнулись с аналогичной или подобной ситуацией обращайтесь! Будет интересно помочь.