Будет ли работать самописная обработка 1С при замене Штрих-М-ФР-К на Ритейл-01Ф?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Торговля и дистрибуция
← На главную

При модернизации кассового узла и переходе со старых фискальных регистраторов с ЭКЛЗ (таких как ШТРИХ-М-ФР-К) на современную онлайн-технику с фискальным накопителем (например, Ритейл-01Ф) часто возникает вопрос: сможет ли прежняя внешняя обработка обслуживания пробивать чеки без переписывания исходного кода? Разберем подробно технические аспекты работы драйвера, архитектурные изменения и нюансы взаимодействия 1С с кассовой техникой по требованиям 54-ФЗ.

Архитектура драйвера и программная совместимость

Аппаратная линейка «Ритейл» разработана и функционирует на базе протоколов и решений компании «Штрих-М». Для управления обеими моделями используется общий драйвер («Штрих-М: Драйвер ККТ») и низкоуровневая COM-библиотека DrvFR.dll (программный идентификатор AddIn.DrvFR).

Рассмотрим фрагмент стандартной инициализации объекта драйвера и цикла печати чека, который часто встречается в самописных обработках:


Попытка
    ЗагрузитьВнешнююКомпоненту("DrvFR.dll");     
    ФР = Новый("AddIn.DrvFR");
Исключение
    Предупреждение(ОписаниеОшибки());        
    Возврат;
КонецПопытки;

// Регистрация товарных позиций
Для Каждого стр Из Объект.Товары Цикл
    ФР.Password          = Пароль;
    ФР.StringForPrinting = Строка(стр.Наименование);
    ФР.Price             = стр.Цена;
    ФР.Quantity          = стр.Количество;
    ФР.Department        = 1;        
    ФР.Tax1              = 1;            
    ФР.Tax2              = 0;
    ФР.Tax3              = 0;
    ФР.Tax4              = 0;            
    ФР.Sale();            
КонецЦикла;

С точки зрения вызова методов драйвер сохраняет базовую обратную совместимость. Метод Sale() физически присутствует в новых версиях драйвера и будет выполнен. Однако между старым фискальным регистратором и онлайн-ККТ есть существенные концептуальные различия, из-за которых обработка «вслепую» без минимальной адаптации может работать с ошибками или нарушать законодательство.

Ключевые отличия и подводные камни при переходе на онлайн-ККТ

Проанализируем основные факторы, влияющие на работоспособность кода:

  1. Управление кассовой сменой: В старых аппаратах с ЭКЛЗ смена нередко открывалась автоматически при первой фискальной операции. В онлайн-ККТ смена должна быть явно открыта (команда FNBeginOpenSession или OpenSession), а ее длительность строго ограничена 24 часами. Если смена превысит 24 часа, драйвер заблокирует вызов Sale() ошибкой переполнения смены.
  2. Обязательные фискальные теги (ФФД): Согласно 54-ФЗ и форматам фискальных данных (ФФД 1.05, 1.2), для каждой товарной позиции обязательно должны передаваться:

    - признак способа расчета (тег 1214, например, полный расчет);

    - признак предмета расчета (тег 1212, например, товар или услуга);

    - ставка НДС (тег 1199);

    - реквизиты кассира и его ИНН (теги 1021 и 1203).

    Если код вызывает только метод Sale() без предварительной инициализации этих свойств, аппарат либо подставит значения по умолчанию из таблиц кассы, либо вернет ошибку некорректных параметров. Для полноценной онлайн-фискализации производитель рекомендует использовать расширенный метод регистрации FNOperation().
  3. Таблицы налоговых ставок: В старом коде налог задавался через свойства Tax1...Tax4. В онлайн-кассах таблицы драйвера сопоставляют налоги напрямую со ставками 20%, 10%, 0% или «Без НДС». Если номера налогов в таблицах аппарата «Ритейл-01Ф» не совпадут со старыми секциями, чек будет пробит с неверной ставкой или операция завершится отказом.
  4. Маркировка товаров: Если учет включает маркированную продукцию (Честный ЗНАК, ФФД 1.2), метод Sale() в принципе не сможет передать криптографический код маркировки и проверить его статус. Для этого требуются специализированные команды протокола ФН.
  5. Разрядность клиента 1С: Библиотека DrvFR.dll является 32-разрядной (x86). При работе в 64-битном клиенте «1С:Предприятие» метод ЗагрузитьВнешнююКомпоненту("DrvFR.dll") вызовет системное исключение. Вызовы должны выполняться строго из 32-разрядного сеанса платформы.
  6. Канал передачи данных в ОФД: Старый «ШТРИХ-М-ФР-К» работал локально по COM-порту. Касса «Ритейл-01Ф» обязана отправлять чеки оператору фискальных данных. При подключении кассы через USB-интерфейс или COM-порт необходимо настроить службу сетевого обмена (OFD Connect / RNDIS / Ethernet), иначе фискальный накопитель заблокируется через 30 дней отсутствия связи.

Варианты решения задачи

Выясним, какие пути перехода доступны разработчику, и разберем каждый из них:

Вариант 1. Минимальная адаптация самописной обработки (оставить вызовы DrvFR)

Если бизнес-логика жестко завязана на нестандартную обработку и нет возможности переписать модуль с нуля, выполним следующие шаги:

  1. Обновим версию драйвера «Штрих-М» на рабочем месте до актуального релиза.
  2. В утилите «Тест драйвера ККТ» проверим и настроим таблицы кассы: запрограммируем реквизиты организации, систему налогообложения по умолчанию и сопоставление налоговых ставок (секции и налоги Tax1–Tax4).
  3. Добавим в код обработки проверку и явное открытие смены перед пробитием чека, а также заполнение ФИО и ИНН кассира.
  4. Настроим службу трансляции данных в ОФД для порта, к которому подключен «Ритейл-01Ф».

Такой подход позволит кассе пробивать базовые чеки, однако он ограничен при работе с маркировкой и сложными форматами расчетов (авансы, кредиты).

Вариант 2. Переход на БПО и сертифицированный драйвер ККТ с передачей данных

Рассмотрим наиболее надежный и перспективный вариант. Типовые конфигурации 1С (УТ 10.3 последних версий, УТ 11, Розница, ERP, БП) давно перешли с низкоуровневых команд драйвера на механизм БПО (Библиотека подключаемого оборудования).

Преимущества перехода:

  1. Обработка формирует стандартизированный XML-пакет чека с передачей всех обязательных реквизитов (ФФД 1.05 / 1.2), а драйвер «Штрих-М: ККТ с передачей данных» выполняет валидацию и отправку команд в кассу самостоятельно.
  2. Исключаются ошибки сопоставления налоговых ставок и признаков расчета.
  3. Штатно поддерживается продажа маркированного товара с проверкой кодов в системе маркировки.

Итог: Онлайн-ККТ «Ритейл-01Ф» полностью аппаратно и программно совместима с драйвером «Штрих-М». Базовые команды вроде Sale() сработают, но для корректного соблюдения законодательства 54-ФЗ потребуется актуализировать версию драйвера, настроить передачу чеков в ОФД и доработать передачу обязательных фискальных реквизитов либо перевести кассу на работу через типовые механизмы БПО.

← На главную