Переход на ФФД 1.2 существенно изменил порядок работы с маркированным товаром. В отличие от версий 1.05 и 1.1, где передача данных была упрощенной, ФФД 1.2 требует обязательной онлайн-проверки кода маркировки (КМ) через фискальный накопитель. Рассмотрим пошагово, как реализовать этот процесс в среде 1С 7.7.
Первым делом необходимо правильно обработать считанный код маркировки. Если сканер передает данные с разделителями, их нужно привести к нужному формату. Важно помнить, что символ FNC1 в начале кода не является его частью и его не нужно передавать в ККТ.
Для каждой марки необходимо выполнить процедуру предварительной проверки. Одной из частых проблем является ошибка «Неразрешенные реквизиты» при повторных вызовах. Решается она принудительной очисткой свойства TLVDataHEX перед каждым вызовом метода проверки.
// Пример подготовки и проверки марки
КМ = СтрЗаменить(ДанныеСканнера, "<0x1D>", Симв(29));
FR.BarCode = КМ;
FR.ItemStatus = 1; // 1 - реализация, 3 - возврат
FR.CheckItemMode = 0; // Полная проверка
FR.TLVDataHEX = ""; // ОБЯЗАТЕЛЬНО для предотвращения ошибки параметров
FR.FNCheckItemBarcode();
После успешной проверки (статус 15 означает положительный результат) необходимо зафиксировать выбор в ФН. После этого можно приступать к формированию самого чека. Важно правильно заполнить признаки способа и предмета расчета.
Для ФФД 1.2 обязательными стали теги 1212 (признак предмета расчета) и 2108 (мера количества). Для штучного товара без акциза признак предмета расчета обычно равен 31, а признак способа расчета — 4.
// Принятие кода в ККТ
FR.FNAcceptMarkingCode();
// Формирование позиции
FR.StringForPrinting = "Наименование товара";
FR.Quantity = 1;
FR.Price = Цена;
FR.PaymentTypeSign = 4; // Полный расчет
FR.PaymentItemSign = 31; // Маркированный безакцизный товар
FR.MeasureUnit = 0; // Штучный товар
FR.FNOperation();
// Привязка марки к позиции чека
FR.BarCode = КМ;
FR.FNSendItemBarcode();
Чтобы в бумажном чеке корректно отображались признаки маркировки (буква [М] и статус проверки), необходимо настроить внутренние параметры фискального регистратора через таблицу 17 (в драйвере Штрих-М):
ResultCode.KMServerCheckingStatus. Если код проверки не прошел, выводите соответствующее сообщение кассиру, чтобы он мог принять решение об исключении товара из чека до его закрытия методом FNCloseCheckEx.Соблюдение этого алгоритма позволит вам успешно интегрировать работу с маркировкой в конфигурацию на 1С 7.7, обеспечив корректную передачу данных в систему «Честный ЗНАК» через ОФД.