Как правильно сформировать и отправить тег 1162 для маркировки парфюмерии?

Программист Торговля и дистрибуция
← На главную

При интеграции торгового оборудования с системой маркировки «Честный Знак» разработчики часто сталкиваются с техническими нюансами формирования фискальных тегов. Особенно много вопросов возникает при работе по старым протоколам (ФФД 1.05 и 1.1) с реквизитом «Код товара» (тег 1162).

В этой статье мы подробно разберем, как правильно сформировать структуру тега 1162 для парфюмерии, выясним реальную длину серийного номера духов, определимся с выбором правильного префикса товарной группы и посмотрим, как современные технологии ФФД 1.2 упростили этот процесс.

---

Разбор структуры тега 1162 для парфюмерии

Для начала проанализируем структуру кода маркировки парфюмерной продукции. В отличие от табачной продукции, где длина серийного номера (Serial) составляет 7 символов, в парфюмерии серийный номер длиннее и содержит 13 символов. GTIN по-прежнему состоит из 14 цифровых символов.

При формировании тега 1162 общая структура передаваемых данных должна иметь длину 21 байт:

  1. Префикс товарной группы — 2 байта.
  2. GTIN в бинарном формате — 6 байт.
  3. Серийный номер (Serial) в ASCII-формате — 13 байт (1 символ = 1 байт).

Рассмотрим подробнее каждый элемент этой цепочки и выясним, как правильно преобразовать исходные данные.

---

Выбор префикса: Специфический или универсальный?

Согласно официальным разъяснениям службы технической поддержки ЦРПТ (Честный Знак), для различных товарных групп были зарезервированы свои уникальные шестнадцатеричные коды:

Однако на практике использование специализированного кода группы 20 42 для парфюмерии часто приводит к ошибкам логического контроля на стороне кассового аппарата (ККТ) или оператора фискальных данных (ОФД).

ФНС РФ унифицировала требования к оформлению фискальных документов. Для любых товарных групп, маркируемых двумерными кодами формата GS1 Data Matrix (включая духи, обувь, одежду), утвержден единый универсальный префикс — 44 4D (что в переводе из HEX в ASCII соответствует латинским буквам «MD»Marked Document).

Рекомендация: Чтобы избежать ошибок драйвера ККТ и гарантированно передать данные в ОФД, используйте универсальный префикс 44 4D вместо 20 42.

---

Алгоритм преобразования GTIN и Serial в 1С

Выясним, как программно подготовить данные для отправки в драйвер ККТ. Нам необходимо выполнить два преобразования:

  1. Преобразовать текстовый GTIN (14 символов) в число, а затем представить его в виде 6-байтовой бинарной последовательности (Big-Endian).
  2. Преобразовать строку серийного номера (13 символов) в массив ASCII-байтов.

Проанализируем пример функции на языке 1С, которая выполняет конвертацию GTIN в HEX-строку (6 байт):


Функция ПолучитьБинарныйGTIN(Знач ИсходныйGTIN) Экспорт
    // Убедимся, что GTIN содержит 14 символов
    ИсходныйGTIN = СокрЛП(ИсходныйGTIN);
    Пока СтрДлина(ИсходныйGTIN) < 14 Цикл
        ИсходныйGTIN = "0" + ИсходныйGTIN;
    КонецЦикла;
    
    // Преобразуем строковое число в числовой тип данных
    ЧислоGTIN = Число(ИсходныйGTIN);
    
    // Переводим число в 6-байтовое представление HEX
    РезультатHEX = "";
    Для Шаг = 1 По 6 Цикл
        Остаток = ЧислоGTIN % 256;
        РезультатHEX = ПолучитьСимволHEX(Остаток) + РезультатHEX;
        ЧислоGTIN = Цел(ЧислоGTIN / 256);
    КонецЦикла;
    
    Возврат РезультатHEX; // Возвращает 12 HEX-символов (6 байт)
КонецФункции

Серийный номер преобразуется посимвольно в их ASCII-коды. Итоговая строка для отправки через драйвер (например, АТОЛ ДТО 8/9/10 или ШТРИХ-М) собирается следующим образом:

Результат = "444D" + БинарныйGTIN_HEX + СерийныйНомер_HEX;

---

Современное решение: Переход на ФФД 1.2

Описанный выше алгоритм ручной сборки тега 1162 постепенно уходит в прошлое. Если вы работаете с маркированным товаром сегодня, розничная точка обязана использовать формат фискальных документов ФФД 1.2 и фискальный накопитель нового образца ФН-М.

Внедрение ФФД 1.2 кардинально изменило технологию работы для программистов 1С:

Рассмотрим, как выглядит современный алгоритм работы при продаже парфюмерии:

  1. Сканер штрихкодов считывает полный код Data Matrix (включая криптохвост — символы проверки AI 91 и AI 92). Крайне важно, чтобы сканер был настроен на передачу управляющего символа GS (Group Separator, код 0x1D).
  2. Программа 1С передает полную считанную строку марки целиком в драйвер кассы (например, АТОЛ ДТО 10). Никакой модификации или усечения строки производить не нужно.
  3. Драйвер ККТ и фискальный накопитель самостоятельно разбирают код маркировки, проверяют его валидность через онлайн-запрос в систему «Честный Знак», выводят на печать статус проверки (символы [M+], [M] или [M-]) и записывают корректные фискальные признаки в архив ФН.

Таким образом, если перед вами стоит задача автоматизации продаж парфюмерии, оптимальным решением будет обновление конфигурации 1С и драйверов ККТ до актуальных версий с поддержкой ФФД 1.2. Это избавит вас от необходимости поддерживать сложный низкоуровневый код конвертации данных.

← На главную