Проблема некорректной передачи данных маркировки при работе с сильно модифицированными конфигурациями, такими как УТ 10.3, является комплексной. Когда чек печатается успешно, но не содержит признака маркировки, это сигнализирует о нарушении протокола обмена между 1С, драйвером ККТ и фискальным накопителем.
Первым делом необходимо проверить, через какой интерфейс 1С взаимодействует с оборудованием. В современных реалиях ФФД 1.2 старые методы обмена часто становятся неактуальными. Как показала практика, успешным решением является перевод работы с ККТ под интерфейс 3002. Этот интерфейс специально разработан для поддержки современных форматов фискальных данных и корректной передачи тега 1162 (код товара).
Рассмотрим подробнее, как формируется пакет данных. Одной из частых ошибок является наличие лишних символов (например, пробелов) в конце серийного номера маркировки. Фискальный накопитель очень чувствителен к данным: если при расшифровке строки передается, например, SerialNumber="iT3WO%;AB>8 ", наличие пробела в конце строки может привести к тому, что ФН отклонит валидацию, и признак маркировки не будет зафиксирован в чеке.
Проанализируем пример структуры, которая ожидается при передаче данных:
// Пример логики формирования данных маркировки
МаркаСтрока = ПолучитьКодМаркировки(); // Должна быть очищена от лишних пробелов
ДанныеМарки = Новый Структура;
ДанныеМарки.Вставить("GTIN", КодТовара);
ДанныеМарки.Вставить("SerialNumber", СерийныйНомер);
Необходимо убедиться, что версия используемого драйвера ККТ соответствует требованиям для работы с ФФД 1.2. Рекомендуется использовать актуальные версии драйверов (например, 10.8.0.0 и выше для Атол). Важно помнить, что Библиотека подключаемого оборудования (БПО) является связующим звеном. Если в вашей конфигурации используется устаревшая версия БПО, она может некорректно транслировать команды.
Выполним следующие рекомендации:
Часто возникает вопрос, нужно ли кодировать данные в Base64. В большинстве случаев это действие берет на себя либо сама обработка обслуживания, либо драйвер ККТ. Не пытайтесь выполнять кодирование «вручную» на уровне бизнес-логики, если драйвер уже ожидает подготовленные структурированные данные. Путаница с префиксами (например, 444D) часто связана с тем, как сканер штрих-кода интерпретирует символ GS (Group Separator). Если префиксы передаются некорректно, проверьте настройки сканера: он должен корректно передавать ASCII-символ 29.
Помните, что недостаточно просто обновить прошивку ККТ. Ваше устройство должно пройти процедуру перерегистрации на ФФД 1.2. В отчете о регистрации (или отчете об изменении параметров регистрации) обязательно должна значиться версия ФФД 1.2. Если касса работает в режиме 1.05 или 1.1, передача признака маркировки по новым стандартам будет невозможна, даже при идеальном программном коде.
Таким образом, для решения проблемы следует:
БПО и драйверы до актуальных версий.Если после выполнения всех шагов марка все еще не печатается, рекомендуем включить расширенное логирование в драйвере ККТ (файл dto.log) и проанализировать, какой именно XML-пакет был сформирован перед отправкой в ККТ. Часто ошибка кроется в одной опечатке или неверно переданном параметре MarkedGoodTypeCode.