При переходе на работу с маркированными товарами возникает необходимость доработки учетных систем, в том числе и на платформе 1С 7.7, для корректной передачи кода товара (тег 1162) в онлайн-кассу. Если доработка старой платформы нецелесообразна, для перехода на современные конфигурации с встроенной поддержкой маркированных товаров доступны решения из раздела переноса данных из 1С 7.7. Рассмотрим на примере ККТ «Штрих-М», как реализовать эту задачу, какие существуют нюансы с прошивками, лицензиями и какие настройки нужно выполнить в самой кассе.
Для отправки кода маркировки (КТН) из 1С в ККТ «Штрих-М» существует несколько программных методов. Выбор зависит от версии прошивки и драйвера, но современные версии поддерживают несколько подходов для обратной совместимости. Для интеграции оборудования и упрощения написания кода можно использовать готовые функции для подключения онлайн-касс «Штрих-М» к 1С 7.7.
Важный момент: перед отправкой данных о маркировке для конкретной товарной позиции необходимо вызвать метод FNOperation(). Этот метод как бы «открывает» текущую позицию в чеке для добавления к ней дополнительных фискальных данных, таких как код маркировки.
Этот метод предполагает, что ваша программа на 1С 7.7 самостоятельно разбирает полный код маркировки, считанный со сканера, на составные части: GTIN и серийный номер. Затем эти части передаются в драйвер ККТ через специальные свойства.
Посмотрим на пример кода. Предположим, что в переменной КТН у нас хранится полный код маркировки.
// ... код добавления товарной позиции в чек (наименование, цена, количество) ...
// Открываем операцию для добавления фискальных данных
Рез = ФискальныйРегистратор.FNOperation();
// Проверяем, что для товара есть код маркировки
Если ПустоеЗначение(КТН) = 0 Тогда
// Разбираем код маркировки на части (пример для DataMatrix)
GTIN = Сред(КТН, 3, 14);
SerialNumber = Сред(КТН, 19, 13);
// Передаем части кода в свойства драйвера
// 17485 - это шестнадцатеричное значение "444D" (код DataMatrix), преобразованное в десятичное
ФискальныйРегистратор.MarkingType = 17485;
ФискальныйРегистратор.GTIN = GTIN;
ФискальныйРегистратор.SerialNumber = SerialNumber;
// Отправляем тег маркировки в ККТ
Рез = ФискальныйРегистратор.FNSendItemCodeData();
КонецЕсли;
// ... код закрытия чека ...
Этот способ является наиболее распространенным и работает на большинстве актуальных прошивок.
Этот метод более сложен для реализации, так как требует от программы на 1С самостоятельно сформировать всю TLV-структуру (Tag-Length-Value) для тега 1162 в виде HEX-строки. Он дает максимальный контроль, но применяется реже.
// ... код добавления товарной позиции в чек ...
// В данном примере используется готовая HEX-строка для демонстрации.
// В реальной задаче ее нужно формировать динамически.
ФискальныйРегистратор.TLVDataHex = "8A041500444d000002C0EED8583F696F2B714341426D382020";
ФискальныйРегистратор.FNSendTLVOperation();
// ... код закрытия чека ...
Один из главных вопросов при работе со «Штрихами» — нужно ли обновлять прошивку и покупать лицензию. Проанализируем ситуацию.
Передача тега 1162 в ОФД: На большинстве прошивок, выпущенных после 2018 года, можно успешно передавать тег 1162 в ОФД без покупки каких-либо лицензий. Главное, чтобы кассовая программа (ваша конфигурация 1С) правильно формировала и отправляла данные одним из вышеописанных способов.
Лицензия «Базовая маркировка»: Эта лицензия в основном нужна для активации дополнительного функционала, встроенного в саму прошивку ККТ. В первую очередь, это:
Вывод: для отладки и даже для рабочей эксплуатации, если ваша программа сама разбирает код маркировки, покупка лицензии для отправки тега в ОФД не является строго обязательной. Она нужна для полного соответствия печатной формы чека требованиям закона средствами самой кассы.
Корректное отображение признака маркированного товара на чеке — важное требование. Рассмотрим, как этого добиться.
При наличии лицензии и свежей прошивки касса может печатать символ [М] автоматически. Для этого нужно включить соответствующую настройку в таблицах ККТ (об этом ниже). Однако, по опыту многих пользователей, «Штрих-М» часто печатает этот символ отдельной строкой под наименованием товара, а не в одной строке с ним. Это снижает ценность лицензии, если ваша цель — добиться печати «как у всех».
Если лицензии нет, можно напечатать символ [М] из программы. Но здесь есть критически важный нюанс.
"[М] " к наименованию товара.
// Так делать нельзя!
НаименованиеТовара = "[М] " + СписокТоваров.Наименование;
ФискальныйРегистратор.StringForPrinting = НаименованиеТовара;
При таком подходе в ОФД уйдет искаженное наименование товара (тег 1030), что является нарушением. В фискальных данных будет записано «[М] Молоко», а не просто «Молоко».
[М] отдельной нефискальной строкой перед или после товарной позиции.
// Печатаем нефискальную строку с символом
ФискальныйРегистратор.PrintString("[М]");
// Печатаем фискальную строку с товаром
ФискальныйРегистратор.StringForPrinting = СписокТоваров.Наименование;
// ... и остальные данные о товаре ...
ФискальныйРегистратор.Sale();
Этот способ позволяет визуально отобразить признак маркировки на чеке, не искажая фискальные данные, и достичь результата, очень похожего на тот, что дает платная лицензия.
Тонкая настройка печатной формы чека и работы с тегами выполняется через таблицы в утилите «Тест драйвера ФР». Ключевой является Таблица 17 «ФФД и ОФД».
Чтобы активировать автоматическую печать информации о маркировке, выполните следующие шаги:
Как это работает:
[М].Для более полной настройки печати других обязательных реквизитов (например, для ФФД 1.2) рекомендуется также проверить и установить следующие значения в Таблице 17:
Поле 10 -> 1Поле 12 -> 32Поле 17 -> 2Поле 39 -> 1После изменения значений не забудьте нажать кнопку «Записать».
Таким образом, для решения задачи по работе с маркировкой на ККТ «Штрих-М» и 1С 7.7 необходим комплексный подход: доработка кода в 1С для передачи тега 1162, обновление прошивки ККТ до актуальной версии и внимательная настройка таблиц через тест драйвера. При розничной продаже маркированной продукции также пригодится готовый механизм для реализации разрешительного режима Честного Знака в 1С 7.7.