При интеграции торгового оборудования с системой маркировки «Честный Знак» разработчики часто сталкиваются с техническими нюансами формирования фискальных тегов. Особенно много вопросов возникает при работе по старым протоколам (ФФД 1.05 и 1.1) с реквизитом «Код товара» (тег 1162).
В этой статье мы подробно разберем, как правильно сформировать структуру тега 1162 для парфюмерии, выясним реальную длину серийного номера духов, определимся с выбором правильного префикса товарной группы и посмотрим, как современные технологии ФФД 1.2 упростили этот процесс.
---
Для начала проанализируем структуру кода маркировки парфюмерной продукции. В отличие от табачной продукции, где длина серийного номера (Serial) составляет 7 символов, в парфюмерии серийный номер длиннее и содержит 13 символов. GTIN по-прежнему состоит из 14 цифровых символов.
При формировании тега 1162 общая структура передаваемых данных должна иметь длину 21 байт:
Рассмотрим подробнее каждый элемент этой цепочки и выясним, как правильно преобразовать исходные данные.
---
Согласно официальным разъяснениям службы технической поддержки ЦРПТ (Честный Знак), для различных товарных групп были зарезервированы свои уникальные шестнадцатеричные коды:
00 05 — Табачная продукция;15 20 — Обувные товары;20 42 — Духи и туалетная вода;22 11 — Шины и покрышки;14 11, 14 14, 14 13, 13 92 — Одежда и белье.Однако на практике использование специализированного кода группы 20 42 для парфюмерии часто приводит к ошибкам логического контроля на стороне кассового аппарата (ККТ) или оператора фискальных данных (ОФД).
ФНС РФ унифицировала требования к оформлению фискальных документов. Для любых товарных групп, маркируемых двумерными кодами формата GS1 Data Matrix (включая духи, обувь, одежду), утвержден единый универсальный префикс — 44 4D (что в переводе из HEX в ASCII соответствует латинским буквам «MD» — Marked Document).
Рекомендация: Чтобы избежать ошибок драйвера ККТ и гарантированно передать данные в ОФД, используйте универсальный префикс 44 4D вместо 20 42.
---
Выясним, как программно подготовить данные для отправки в драйвер ККТ. Нам необходимо выполнить два преобразования:
Проанализируем пример функции на языке 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;
---
Описанный выше алгоритм ручной сборки тега 1162 постепенно уходит в прошлое. Если вы работаете с маркированным товаром сегодня, розничная точка обязана использовать формат фискальных документов ФФД 1.2 и фискальный накопитель нового образца ФН-М.
Внедрение ФФД 1.2 кардинально изменило технологию работы для программистов 1С:
Рассмотрим, как выглядит современный алгоритм работы при продаже парфюмерии:
0x1D).[M+], [M] или [M-]) и записывают корректные фискальные признаки в архив ФН.Таким образом, если перед вами стоит задача автоматизации продаж парфюмерии, оптимальным решением будет обновление конфигурации 1С и драйверов ККТ до актуальных версий с поддержкой ФФД 1.2. Это избавит вас от необходимости поддерживать сложный низкоуровневый код конвертации данных.