GS-разделитель для ЮКасса и Ozon Seller: как заменить управляющий символ GS на \u001d в клавиатурном режиме

При работе с кодами маркировки в программах ЮКасса, Ozon Seller и других учетных системах часто возникает проблема: сканер считывает код DataMatrix, но программа не может корректно его обработать. Одна из частых причин — неправильная передача управляющего символа GS.

В кодах маркировки GS используется как служебный разделитель данных. Но в клавиатурном режиме сканера этот символ может не передаваться, теряться или восприниматься программой некорректно. Поэтому для некоторых программ требуется заменить стандартный символ GS, то есть Group Separator, на текстовую последовательность:

\u001d

Это особенно актуально для работы с маркировкой в ЮКасса и Ozon Seller, где корректная передача разделителей влияет на успешное распознавание кода.


Что такое GS-разделитель

GS, или Group Separator, — это управляющий символ с кодом ASCII 29. Он используется в стандарте GS1 для разделения переменных полей внутри кода маркировки.

Например, в одном коде DataMatrix могут содержаться:

  • GTIN товара;
  • серийный номер;
  • срок годности;
  • номер партии;
  • дополнительные данные.

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

Пример условной строки с GS-разделителем:

010460123456789017251231<GS>10ABC123

А для некоторых программ в клавиатурном режиме нужно, чтобы вместо невидимого символа передавалась текстовая комбинация:

010460123456789017251231\u001d10ABC123

Почему возникает проблема в клавиатурном режиме

Большинство сканеров штрихкодов могут работать в нескольких режимах. Самый распространенный — клавиатурный режим, или USB HID Keyboard. В этом режиме сканер работает как обычная клавиатура: считал код и «напечатал» его в активное поле ввода.

Но управляющие символы, такие как GS, не являются обычными печатными символами. Поэтому возможны разные ситуации:

  • символ GS вообще не передается в программу;
  • программа получает строку без разделителя;
  • код маркировки становится некорректным;
  • ЮКасса или Ozon Seller не могут правильно разобрать данные;
  • при приемке или продаже появляется ошибка распознавания маркировки.

Именно поэтому для корректной работы иногда требуется не передавать настоящий управляющий символ GS, а заменить его на понятную текстовую запись:

\u001d

Решение: замена GS на \u001d «на лету»

У меня есть готовое решение для этой задачи. Оно позволяет автоматически заменять управляющий символ GS на текстовую последовательность \u001d прямо во время сканирования.

Сканер не нужно сложно перепрошивать или каждый раз перенастраивать под разные программы. Достаточно перевести его в COM-режим, а дальнейшую обработку выполнить через программу LKS.exe.

Принцип работы простой:

  1. Сканер переводится в режим USB-COM или Virtual COM Port.
  2. Программа LKS.exe подключается к COM-порту сканера.
  3. При считывании кода программа анализирует входящую строку.
  4. Если в данных встречается символ GS, он автоматически заменяется на:
\u001d
  1. Уже преобразованная строка передается в нужное окно программы.

Таким образом, для ЮКасса, Ozon Seller или другой системы данные приходят уже в правильном виде.


Почему COM-режим удобнее клавиатурного

В клавиатурном режиме сканер сразу отправляет данные в активное поле, и повлиять на управляющие символы бывает сложно. В COM-режиме данные сначала поступают в программу-обработчик, и только потом передаются дальше.

Это дает несколько преимуществ:

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

Фактически LKS.exe выступает промежуточным обработчиком между сканером и рабочей программой.


Можно выбрать нужный режим работы

В программе LKS.exe можно выбрать, с какой настройкой работать в данный момент. Это удобно, если на одном рабочем месте используются разные программы или разные требования к формату кода.

Например, можно использовать режимы:

  • передавать GS как есть;
  • заменять GS на \u001d;
  • использовать другой вариант преобразования;
  • настроить отдельный профиль под ЮКасса;
  • настроить отдельный профиль под Ozon Seller.

Благодаря этому не нужно постоянно перенастраивать сам сканер. Достаточно выбрать нужный режим в программе.


Для кого подходит это решение

Решение будет полезно тем, кто работает с маркированной продукцией и сталкивается с ошибками при считывании кодов в:

  • ЮКасса;
  • Ozon Seller;
  • учетных системах;
  • программах приемки товара;
  • кассовом ПО;
  • складских программах;
  • системах работы с DataMatrix и GS1.

Особенно актуально это для товаров, где в коде маркировки используются переменные поля и разделитель GS.


Какие проблемы помогает решить

Использование LKS.exe с заменой GS на \u001d помогает устранить типичные ошибки:

  • код маркировки считывается, но программа его не принимает;
  • DataMatrix передается без разделителя;
  • ЮКасса не распознает маркировку;
  • Ozon Seller не обрабатывает код корректно;
  • в строке отсутствует нужный разделитель;
  • приходится вручную исправлять данные;
  • разные сканеры ведут себя по-разному.

После настройки сканер работает стабильно, а программа получает код в ожидаемом формате.


Как начать работу

Для настройки потребуется:

  1. Перевести сканер в COM-режим.
  2. Установить драйвер, если он требуется для вашей модели сканера.
  3. Запустить программу LKS.exe.
  4. Выбрать COM-порт сканера.
  5. Выбрать режим замены GS → \u001d.
  6. Проверить сканирование в ЮКасса, Ozon Seller или другой нужной программе.

Если все настроено правильно, программа будет получать строку уже с текстовой последовательностью \u001d вместо управляющего символа GS.


Пример результата

Исходная строка с управляющим символом GS:

010460123456789017251231<GS>10ABC123

После обработки через LKS.exe:

010460123456789017251231\u001d10ABC123

Именно такой вариант требуется в ряде случаев для корректной работы в клавиатурном режиме.

Проверить работу без установки LKS.exe можно тут


Обращайтесь за настройкой

Если у вас не работает считывание маркировки в ЮКасса, Ozon Seller или другой программе, возможно, проблема связана именно с передачей символа GS.

У меня есть готовое решение: сканер переводится в COM-режим, а программа LKS.exe заменяет символ GS на \u001d автоматически, прямо во время сканирования.

Можно подобрать режим работы под конкретную программу и быстро переключать настройки при необходимости.

Обратиться за решением и настройкой можно здесь:

https://ladimkkt.ru/index.php?a=add&category=13

Помогу настроить сканер, подобрать правильный режим и обеспечить корректную передачу кодов маркировки для ЮКасса, Ozon Seller и других систем.