При переходе на онлайн-кассы по требованиям 54-ФЗ многие пользователи и разработчики сталкиваются с ситуацией, когда рабочая конфигурация 1С:Управление торговлей 11.1 сильно кастомизирована, а переход на более свежие релизы (УТ 11.3, 11.4 или 11.5) требует значительных временных и финансовых затрат. Возникает вопрос: возможно ли запустить онлайн-кассу на старых версиях Библиотеки подключаемого оборудования (БПО) или внедрить обновленную БПО на платформе 1С:Предприятие 8.3.
Разберем детально технические ограничения связки УТ 11.1 и БПО, а также рассмотрим практические способы решения задачи подключения кассового аппарата.
Проанализируем архитектурные различия между старыми фискальными регистраторами и современными ККТ с передачей данных:
ФискальныйРегистратор, ККМОфлайн и АвтономнаяККМ. Механизм ККТСПередачейДанных в перечислении ТипыПодключаемогоОборудования появился только в УТ 11.3 и соответствующих версиях БПО. При подключении кассы как обычного фискального регистратора тест связи может проходить успешно, однако попытка пробить чек завершится ошибкой.НапечататьЧек, передача строк и закрытие чека). Современные драйверы ККТ требуют передачу единого пакета данных в формате XML через функцию СформироватьЧек (метод ProcessCheck).Рассмотрим вариант полноценного обновления подсистемы ПодключаемоеОборудование. Для этого перенесем из конфигурации УТ 11.3 или Розница 2.2 обновленную подсистему БПО.
МенеджерОборудованияКлиент, МенеджерОборудованияСервер, МенеджерОборудованияВызовСервераПереопределяемый, а также справочников подключаемого оборудования и драйверов.ККТСПередачейДанных в перечисление ТипыПодключаемогоОборудования.ЧекККМ, ПриходныйКассовыйОрдер, ЭквайринговаяОперация), чтобы они формировали XML-пакет чека с заполнением всех реквизитов ФФД перед отправкой в метод СформироватьЧек.Обратим внимание на режим совместимости конфигурации: если в УТ 11.1 установлен режим совместимости ниже 8.3.6, необходимо адаптировать асинхронные вызовы (например, конструкции ОповещениеОЗавершении и НачатьПодключениеОборудования) под синхронные аналоги, либо повысить режим совместимости до версии используемой платформы (например, 8.3.9).
Если конфигурация сильно переписана и внедрение новой БПО нецелесообразно, разберем способ прямого обращения к COM-объекту драйвера производителя кассы (например, ДТО от АТОЛ или драйвер Штрих-М).
Посмотрим на пример логики прямого взаимодействия с драйвером кассы при печати чека из документа:
Драйвер = Новый COMОбъект("AddIn.Fptr10");
Драйвер.Open();
// Инициализация фискального документа
Драйвер.setParam(1021, "Кассир Иванов И.И."); // Тег кассира
Драйвер.openDocument();
// Регистрация товарной позиции
Драйвер.setParam(1030, "Товар 1"); // Наименование
Драйвер.setParam(1079, 100.00); // Цена
Драйвер.setParam(1023, 1); // Количество
Драйвер.setParam(1214, 4); // Признак способа расчета (Полный расчет)
Драйвер.setParam(1212, 1); // Признак предмета расчета (Товар)
Драйвер.setParam(1199, 1); // Ставка НДС (20%)
Драйвер.registrationPosition();
// Закрытие чека с оплатой наличными
Драйвер.setParam(1031, 100.00); // Сумма наличными
Драйвер.closeDocument();
Такой подход позволяет полностью контролировать передачу всех обязательных тегов ФФД без вмешательства в типовые механизмы БПО.
Проанализируем еще два альтернативных способа интеграции: