В июле 2019 года фирма 1С опубликовала новый стандарт «Требования к разработке драйверов подключаемого оборудования (версия 3)». Этот новый стандарт используется производителями ККТ при выпуске новых драйверов. Если потребуется обновить драйвера ККТ, вам также потребуется обновить конфигурацию 1С, чтобы конфигурация тоже поддерживала новый стандарт.
При обновлении конфигурации 1С могут возникнуть дополнительные сложности, например:
- Необходимость обновить платформу 1С.
- После обновления платформы 1С может потребоваться апгрейд лицензий до уровня КОРП.
- Использование web-клиента (типовые конфигурации не поддерживают новый стандарт для web-клиента из-за особенностей платформы, обещают исправить в 8.18).
- Распределенная информационная база с большим количеством узлов, где любое обновление – большая задача, и т.п.
Есть вариант использования новых драйверов (версии 3.1 и выше) в конфигурациях, поддерживающих старый формат драйверов (версии 2.1 – 2.5). Но не напрямую, а через «посредника»: программу «Модуль ККТ».
Для старых платформ (7.7, 8.0, 8.1, 8.2) есть драйвер «Клиент ККТ», выполненный по технологии COM. То есть конфигурации, работающие на старых платформах, могут использовать современные драйвера КТТ, выполненные по технологии NativeAPI.
Принцип работы:
- Новые драйвера (версии 3.х) подключаются к «Серверу ККТ».
- В 1С используются драйвер «Клиент ККТ» (версии 2.1 – 2.5).
- Сервер ККТ, получив команду от 1С в старом формате, преобразует её в новый формат и отправляет в драйвер ККТ.
- Получив ответ от драйвера, сервер ККТ преобразует его в старый формат и отправляет в 1С.
Фактически всё сводиться к модификации XML-пакетов: в новом формате поменялись названия элементов и атрибутов. Эту модификацию сервер ККТ выполняет «на лету», для 1С это остаётся незаметным.
Ограничения:
- Невозможно выполнить команду «СформироватьЧекКоррекции», т.к. XML-пакеты в старой и новой версии принципиально разные.
- Для использования маркировки в 1С необходимо использовать формат 2.5 (ревизия интерфейса 2005), т.к. в более старых форматах нет нужного XML-атрибута.
Пример преобразования XML-пакета при выполнении команды «СформироватьЧек». От 1С получен XML-пакет а формате 2.5:
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters PaymentType="1" TaxVariant="0" CashierName="ххххх" CustomerEmail="" CustomerPhone="" AddressSettle="ххххх" PlaceSettle="ххххх">
<AgentData />
<PurveyorData />
</Parameters>
<Positions>
<FiscalString Name="Туфли женские" Quantity="1" PriceWithDiscount="7190" SumWithDiscount="7190" DiscountSum="1800" Department="1" Tax="20" SignMethodCalculation="4" TaxSum="1198.33">
<AgentData />
<PurveyorData />
<GoodCodeData StampType="1520" GTIN="02900001199444" SerialNumber="3(BB<kqCIuCvO" MarkingCode="WE0CozWKae44KEFBPGtxQ0l1Q3ZP" />
</FiscalString>
</Positions>
<Payments Cash="7190" ElectronicPayment="0" Credit="0" AdvancePayment="0" CashProvision="0" />
</CheckPackage>
Сервер ККТ преобразовал в новый XML-пакет в формате 3.3:
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters TaxationSystem="0" CashierName="ххххх" OperationType="1" SaleLocation="ххххх" SaleAddress="ххххх" CustomerEmail="" CustomerPhone="">
<AgentData />
<VendorData />
</Parameters>
<Positions>
<FiscalString VATRate="20" Name="Туфли женские" VATAmount="1198.33" Quantity="1" Department="1" DiscountAmount="1800" AmountWithDiscount="7190" PriceWithDiscount="7190" PaymentMethod="4">
<AgentData />
<VendorData />
<GoodCodeData MarkingCode="WE0CozWKae44KEFBPGtxQ0l1Q3ZP" />
</FiscalString>
</Positions>
<Payments Cash="7190" PostPayment="0" Barter="0" PrePayment="0" ElectronicPayment="0" />
</CheckPackage>
Здесь PaymentType заменен на OperationType, TaxVariant – на TaxationSystem, AddressSettle – на SaleAddress и т.д.
Еще одна полезная возможность «Модуля ККТ» - работа с одним ККТ с нескольких рабочих мест.