Как должен распознаваться символ gs в notepad
Перейти к содержимому

Как должен распознаваться символ gs в notepad

  • автор:

Работа с тегом 1163 (Маркировка ФФД 1.2)

Передача тега 1163 через Тест Драйвера — функция для тестирования инженерами и разработчиками. Тест Драйвера не предполагает за собой ежедневное использование, поэтому жутко неудобен. Для работы с маркировкой лучше использовать обычные кассовые программы.

Здесь описано что делать после того как подготовились к работе , завели позицию через Тест Драйвера ФР и теперь требуется передать тег 1163 с помощью его же, а потом закрыть чек .

Если установлен Тест Драйвера версии 5.17 и выше, то сканировать код можно сразу в окно во вкладке КТ2, если сканер в клавиатурном режиме и передает символ GS .

Для печати [M], [M+] или [M-], которые на самом деле печатать необязательно, убедитесь, что включена печать тегов в Таблице 17 Поле 25

1 — печатать

И выключено форматирование позиций в Таблице 1 Поле 25:

0 — выключено. Печать позиции в 3 строчки. Все теги печатаются, в том числе [M] (по умолчанию на старой версии прошивки)

1 — включено. Настраивается в таблице 9

2 — печать позиции в 2 строчки ценой непечати некоторых тегов, в том числе [M] (по умолчанию на актуальной версии прошивки) (печатается при наличии подписки на 4 квартал 2022 года и прошивке версии с.3 28.12.22 и выше)

3 — печать позиции в 1 строчку ценой непечати всего, чего можно и нельзя, в том числе [M]

Ниже описание на примере Тестового ОФД. Тестовый ОФД бракует все Коды Маркировки как выбывшие или несуществующие, поэтому в каждом бумажном чеке написано КМ?

Если связь с интернетом есть, то будет печататься [М-], так как данный тестовый ОФД сигнализирует о том, что все коды выбыли.

Если связи с интернетом нет, то будет печататься [М], так как аппарат не может ни подтвердить ни опровергнуть что код плохой

Как должен распознаваться символ gs в notepad

Здравствуйте! Задача вроде бы простая.
Нужно прочитать QR-код с товара и распечатать его с помощью label form.
Некоторые коды читались правильно. Но вдруг столкнулся с проблемой.

Код, который должен выглядеть так (считано в Notepad++):
010460244372004821Y8hbmd%rO1J91EE0792g+m83r7Oxl4Ih2inj0WC5N6a9t1Wwl3/qCLPSc=

при сканировании в textbox приходит таким (считано в фоксе):
010460244372004821Y8hbmd%rO1JCLEAR ALL

Кто-нибудь сталкивался? И как этого избежать?
Я понимаю, что там есть служебный символ, приводящий к такому результату.

——————
Алло, это прачечная? Да, это прачечная. Здравствуйте.

Исправлено 3 раз(а). Последнее : Victoriacom, 17.08.21 13:34

17.08.21 13:14:09

RDP подключение не используется ?

——————
Тяжело согнать курсором муху с монитора .
Victoriacom
17.08.21 13:35:11

Нет. А при чем здесь RDP?

——————
Алло, это прачечная? Да, это прачечная. Здравствуйте.
JekaIvanov
17.08.21 19:08:18

Дело в том, что в штрих-коде идут специальные символы-разделители, которые разными устройствами обрабатываются по разному (у меня даже отрицательный ASCII-код приходил), я решил это так — на форме считывания обрабатываю событие нажатия на клавишу и если получаю символы с кодами ниже 32, то просто их игнорирую — получается единая строка, которую уже можно разобрать

18.08.21 06:01:35
Victoriacom
Нет. А при чем здесь RDP?

В Вашем случае похоже не при чем, раз в блокнот нормально считывается .
Имелось ввиду это :
social.technet.microsoft.com
forum.foxclub.ru

А если попробовать считывать в Character (binary) или Memo (binary) ?

——————
Тяжело согнать курсором муху с монитора .
18.08.21 06:14:53

JekaIvanov
Дело в том, что в штрих-коде идут специальные символы-разделители, которые разными устройствами обрабатываются по разному (у меня даже отрицательный ASCII-код приходил), я решил это так — на форме считывания обрабатываю событие нажатия на клавишу и если получаю символы с кодами ниже 32, то просто их игнорирую — получается единая строка, которую уже можно разобрать

Хорошая идея для считывания, но ему надо получать строку, содержащую спецсимволы/разделители

——————
Тяжело согнать курсором муху с монитора .
18.08.21 10:08:50
Может, в VFP срабатывает на какой-нибудь ON KEY LABEL?
JekaIvanov
18.08.21 10:15:37

а зачем? там все поля фиксированы — разобрал, сохранил, где надо — собрал. Мы так с ними работаем. Можно сохранять отдельно пару GTIN+SN, а можно весь штрих код. Опять же по наличию/отсутствию полного ШК можно запустить разные алгоритмы дальнейшей обработки (у меня медицинская система — прямые приходы идут без криптохвоста и надо подтверждать получение, считывая весь ШК, а если не считался — ручное подтверждение) — через регистратор выбытия или через честный знак.

JekaIvanov
18.08.21 10:26:59
Равиль

JekaIvanov
Дело в том, что в штрих-коде идут специальные символы-разделители, которые разными устройствами обрабатываются по разному (у меня даже отрицательный ASCII-код приходил), я решил это так — на форме считывания обрабатываю событие нажатия на клавишу и если получаю символы с кодами ниже 32, то просто их игнорирую — получается единая строка, которую уже можно разобрать

Хорошая идея для считывания, но ему надо получать строку, содержащую спецсимволы/разделители

а зачем? там все поля фиксированы — разобрал, сохранил, где надо — собрал. Мы так с ними работаем. Можно сохранять отдельно пару GTIN+SN, а можно весь штрих код. Опять же по наличию/отсутствию полного ШК можно запустить разные алгоритмы дальнейшей обработки (у меня медицинская система — прямые приходы идут без криптохвоста и надо подтверждать получение, считывая весь ШК, а если не считался — ручное подтверждение) — через регистратор выбытия или через честный знак.
Символ-разделитель = код 29. Но разные считыватели по разному возвращают. Бывает, что этот разделитель отсутствует. А конфигурировать их задача не из простых. Особенно, когда модели разные

Victoriacom
18.08.21 14:48:01

JekaIvanov
Дело в том, что в штрих-коде идут специальные символы-разделители, которые разными устройствами обрабатываются по разному (у меня даже отрицательный ASCII-код приходил), я решил это так — на форме считывания обрабатываю событие нажатия на клавишу и если получаю символы с кодами ниже 32, то просто их игнорирую — получается единая строка, которую уже можно разобрать

Чтобы обработать спецсимволы, их нужно сначала получить. А на первом же спецсимволе получаемая строка обрывается.
Попробовал несколько разных сканеров и только для mindeo 6600 hd нашел нужную таблицу настроек. Сканер при этом передает чистую строку.
Потом я вставляю спецсимволы сам (два разделителя GS1 chr(29) и начальный символ FNC1 chr(232)) и передаю строку в утилиту Zint.exe для получения картинки png. Всё бы ок, но честный знак (честныйзнак.рф), собака, говорит, что код некорректный.
Мобильная проверка честного знака тоже не распознает такой код. Но вот что интересно: если сформировать строку до первого GS, то мобильник находит такой товар в базе честного знака.
Но это же не дело. Правила формирования Datamatrix кода гласят:
(fnc1). (gs). (gs).
Такой код должен распознаваться всеми. Что не так, — пока ломаю голову.

——————
Алло, это прачечная? Да, это прачечная. Здравствуйте.

Исправлено 2 раз(а). Последнее : Victoriacom, 18.08.21 14:56

18.08.21 21:38:24

Victoriacom
Здравствуйте! Задача вроде бы простая.
Нужно прочитать QR-код с товара и распечатать его с помощью label form.
Некоторые коды читались правильно. Но вдруг столкнулся с проблемой.

Код, который должен выглядеть так (считано в Notepad++):
010460244372004821Y8hbmd%rO1J91EE0792g+m83r7Oxl4Ih2inj0WC5N6a9t1Wwl3/qCLPSc=

при сканировании в textbox приходит таким (считано в фоксе):
010460244372004821Y8hbmd%rO1JCLEAR ALL

Кто-нибудь сталкивался? И как этого избежать?
Я понимаю, что там есть служебный символ, приводящий к такому результату.

в какой-то программе (Нотепад++) изображение такое-то. А почему не приложить сам файл с этими байтами, считанный в нотепад, и в текстобокс.
. Ведь эти два изображальщика — это просто изображальщики (в соотв с кодовой таблицей изображения, и шрифтом)
Где сами байты?

() Например, байтовое изображение любой строки, в фоксе, можно посмотреть примерно так:
? 0h + строка && видим побайтовое содержимое строки
или
=STRTOFILE(строка, имя_файла) && файл посылаем ответчику, он сам увидит его побайтовое содержимое

Доб. Кстати, если прием симолов ведется в ТекстБокс, то все поступающие символы есть возможность перехватить (?) (событие KeyPress), и там с ними разбирайтесь как хочется. NODEFAULT не даст сделать нежелательное.

В текстбоксе есть и другие события. Если речь идет о считывателе, который расчитан (как в старые былые) на включение в разрыв кабеля клавиатуры.

Исправлено 2 раз(а). Последнее : of63, 18.08.21 23:07

GS1 DataMatrix

Для маркировки товаров используется штриховой код GS1 DataMatrix. Он позволяет кодировать идентификационные ключи системы GS1, а также любую дополнительную информацию о товаре (вес, срок годности, номер серии, номер партии, дата изготовления).

С введением обязательной маркировки — формировать, печатать и проверять коды GS1 DataMatrix необходимо уметь практически в каждой организации.

Как правильно сформировать GS1 DataMatrix:

  1. ASCII 232 (FNC1).
  2. (01) Код продукта (GTIN).
  3. (21) Серийный номер.
  4. Разделитель групп данных ASCII 29 (GS).
  5. (91) Ключ проверки, предоставляемый оператором системы в составе кода проверки;
  6. Разделитель групп данных ASCII 29 (GS).
  7. Электронную подпись, предоставляемую оператором системы в составе кода проверки, 88 символов (цифры, строчные и прописные буквы латинского алфавита, а также специальные символы) — криптохвост.

*При формировании используется таблица символов Base64

В соответствии с требованиями GS1 DataMatrix Guideline, в начало получаемой строки кода необходимо добавлять признак символики – ASCII232 (так называемый FNC1).

FNC1 — специальный символ, который указывает, что закодированная последовательность является штрихкодом GS1. В случае отсутствия этого символа технические средства не распознают код правильно и не смогут его корректно обработать.

В конце полей переменной длины необходимо использовать специальные символы GS1 — разделители. Они нужны для того чтобы идентифицировать отдельные блоки штрихкода. В качестве разделителей допустимо использовать символ ASCII 29 (GS).

Обращаем ваше внимание, что использовать FNC1 в качестве разделителя — настоятельно не рекомендуется, так как теряется порядок учета полей.

Визуально в подписи DataMatrix кода такие разделители не отображаются.

Важно. Приложение Честный Знак может распознавать различные виды DataMatrix. Даже QR-коды. Тот факт, что код распознался и информация о товаре отобразилась, не является показателем, что DataMatrix сформирован правильно и имеет структуру GS1 DataMatrix.

Оператор ЦРПТ выпустили пояснение, как правильно генерировать коды. Из-за большого числа кодов с ошибками они признали коды без FNC1 валидными, но, все-таки, рекомендуют генерировать GS1 DataMatrix.

К сожалению, достаточно большой процент DataMatrix кодов от субъектов приходит с ошибками.

Когда Коды Маркировки заказаны и сгенерированы. Их можно забрать через API в текстовом виде, в ТХТ как файл с текстом.

Если открыть файл в notepad++(блокнот), можно увидеть строки такого вида. Серым цветом выделены скрытые символы разделители ASCII 29 в виде . В последующем эти символы при печати должны быть преобразованы в разделители строк формата GS1 DataMatrix

Аналогично если забираете в ТХТ формате, то никогда, ни при каких обстоятельствах, не следует открывать и сохранять его в excel. В excel есть функция автосохранения. В момент сохранения excel может самым непредсказуемым образом видоизменить ваши коды. Рекомендуем использовать notepad++(блокнот) для просмотра кодов.

При преобразовании перед печатью полученные Коды Маркировки могут приобрести следующий вид:

Третий код — невалидный (у него отсутствуют разделители GS).

Несмотря на то, что при подготовке файла к печати или генерации GS1 DataMatrix, для работы с системой через личный кабинет или API используется оригинальный Код Маркировки содержащий скрытые символы разделители ASCII 29 в виде

Генерация (преобразование) кода маркировки в Средство Идентификации

В постановлении правительства РФ 860 указан ГОСТ, согласно которому необходимо формировать DataMatrix. Так же в ППР 860 указано обязательное использование идентификаторов применения. Обратите внимание, что в стандарте DataMatrix нет понятия «идентификаторы применения». Они есть только в стандарте GS1 DataMatrix. Основное различие: в GS1 DataMatrix первый символ должен быть FNC1. Символ GS не должен стоять на первом месте в DataMatrix, только FNC1.

FNC1 нельзя просто взять и добавить в строку как GS. Его должна добавлять программа, генерирующая DataMatrix.

Предлагаем разработчикам программного обеспечения ознакомится с собранными ссылками по тематике формирования GS1 DataMatrix и использовать данный опыт для доработки учетных систем:

Основные ошибки, которые допускаются при формировании GS1 DataMatrix:

  1. в начале не вставлен FNC1 (1 специальный символ);
  2. вместо спецсимвола FNC1 в начале вставлен текст «FNC1» (4 символа);
  3. вместо спецсимвола FNC1 в начале вставлен GS;
  4. не вставлены разделители групп данных GS после полей переменной длины (например, после серийного номера);
  5. разделители групп данных вставлены не туда, где они должны быть (например, после поля (01) GTIN, которое имеет фиксированную длину и не требует в конце разделителя);
  6. вместо спецсимвола GS вставлен текст «GS»;
  7. используются программы или алгоритмы для печати, которые непоправимо искажают информацию (например, удаляют из кода символы, которые они считают лишними. Зачастую это арифметические символы, скобки и т.п.).

Для проверки работоспособности двумерного сканера с Личным кабинетом ГИС «Электронный знак» можно воспользоваться следующей формой:

Появились рекомендации по кодированию и преобразованию кода маркировки

Для маркировки товаров, которые участвуют в системе цифровой маркировки и отслеживания товаров, используется двумерный код формата GS1 DataMatrix, который описан в стандарте ГОСТ «Р ИСО/МЭК 16022-2008». Формат GS1 DataMatrix разработан и поддерживается ассоциацией GS1 (международной организацией по вопросам стандартизации учета и штрихового кодирования). Национальный оператор маркировки напомнил, что согласно стандарту, первой позицией кода этого формата является обязательный символ FNC1.

Код маркировки и его признак

  • В первой позиции GS1 кода должен стоять специальный символ FNC1 (Function 1 Symbol Character). Данный символ представляет собой 232 элемент в кодировке ASCII (ASCII 232). Наличие символа FNC1 в стартовой позиции позволяет отличить код формата GS1 DataMatrix от других кодов стандарта DataMatrix.
  • Также в формировании кода маркировки участвуют разделители полей GS (символы ASCII 29) – например, для отделения ключа проверки и криптоподписи.

Пример кода с выделенными спецсимволами FNC1 и GS

Код маркировки GS1 DataMatrix состоит из нескольких частей, отделенных друг от друга разделителями полей (символами ASCII 29). Каждая часть начинается с идентификатора применения (полный список возможных идентификаторов применения ).

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

  • (01) GTIN – код, присвоенный товару (комбинация из 14 цифр);
  • (21) уникальный серийный номер товара (13 символов, куда входят латинские буквы и цифры), присвоенный оператором информационной системы маркировки или одним из участников оборота;
  • (91) проверочный ключ (4 символа, генерируется оператором системы маркировки);
  • (92) проверочный код (комбинация из 88 символов — букв, цифр, специальных знаков).

Пример кода маркировки для рендеринга в штриховой код DataMatrix: + 01 + GTIN (14 знаков) + 21 + серийный номер (13 знаков) + + 91 + ключ проверки (4 знака) + + 92 + криптоподпись (88 знаков)

Как проверить формат кода

Для проверки кода формата GS1 DataMatrix можно использовать различные приложения и программы, позволяющие проверить код DataMatrix (для Android и для iOs).

Есть также специальные сканеры, поддерживающие вывод идентификаторов типов символов, которые согласно стандарту ISO/IEC 15424 при считывании кода формата GS1 DataMatrix отображают первые три буквы как «]d2». Для обычного DataMatrix первые три символа будут отображаться как «]d1».

Идентификаторы типов символов для DataMatrix согласно стандарту ISO/IEC 15424

Валидный или не валидный код

Как сообщает оператор маркировки, если код DataMatrix сформирован участником маркировки без лидирующего признака FNC1, то данный код также является валидным. Но в то же время, при получении получателем товаров с такими кодами или при продаже на кассе (выводе из оборота) могут возникать технические проблемы с чтением кода без спецсимвола. При считывании кодов маркировки техника и программы, настроенные на проверку правильности кода, могут выдавать ошибки из-за отсутствия обязательного символа FNC1. Поэтому, несмотря на то что код маркировки без спецсимвола является корректным, все же рекомендуется формировать коды DataMatrix по алгоритму, соответствующему спецификации GS1 DataMatrix.

Мы подобрали актуальные программные продукты для адаптации оборудования и учетных систем на платформе 1С к очередной волне маркировки.

Дмитрий Кучма Обозреватель
Комментарии

  • Дата
  • Дата
  • Рейтинг всех уровней
  • Рейтинг 1-го уровня
  • Древо развёрнутое
  • Древо свернутое

Свернуть все
1. IssakN 45 13.03.20 10:04 Сейчас в теме

Небольшая выдержка из «Правила присвоения номеров GTIN в здравоохранении Пользовательская группа GS1 Global Healthcare»:
«При вступлении в Национальную организацию GS1 компании получают Префикс предприятия GS1 и полную документацию по присвоению номеров GTIN своей продукции. Четыре метода создания GTIN подробно описаны на сайте: http://www.gs1.org/productssolutions/idkeys .
Особым образом организованная структура GTIN обеспечивает уникальность номеров GTIN, однако их следует рассматривать как ничего незначащие цифры, то есть они всегда должны регистрироваться и обрабатываться целиком: по отдельности части номера не несут никакой информации и не подлежат какой-либо классификации.»

«Префикс предприятия GS1
Префикс предприятия GS1 состоит из Префикса GS1 и Номера предприятия, которые присваивает
Национальная организация GS1. Как правило, он включает от 6 до 10 знаков в зависимости от по-
требности компании в расширении.
Первые две или три цифры номера — N1, N2, N3 — составляют Префикс GS1, который присваивается
Международным офисом GS1 каждой Национальной организации. Это не означает, что предмет
торговли производится или распространяется в стране, которой назначен этот Префикс.
Ссылочный номер предмета торговли
Ссылочный номер предмета торговли — это часть Глобального номера предмета торговли (GTIN),
присваиваемая владельцем Префикса предприятия GS1 или U.P.C. для формирования уникального
номера GTIN. Это незначимое число, то есть по отдельности его знаки не несут никакой информа-
ции и не подлежат какой-либо классификации. Самым простым способом присвоения ссылочного
номера является последовательный, например, 000, 001, 002, 003 и т.д.
Контрольная цифра
Контрольная цифра — это последний знак номера. Эта цифра вычисляется на основании других
цифр строки элементов GTIN.»
*В маркировке ЛП в РФ используется GTIN-14.

Как я понимаю это европейский пример формирования и использования GTIN.
И что интересно что зашивается в него производитель. Таким образом аспирин одного производителя будет иметь отличный GTIN от аспирина другого производителя. Возникает интересный вопрос по такому же принципу будет реализовано это в Честном знаке или же они будут иметь одинаковые GTIN?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *