При автоматизации розничной и оптовой торговли на базе 1С:Управление торговлей 11 (или аналогичных конфигураций на управляемых формах, таких как 1С:Комплексная автоматизация) специалисты часто сталкиваются со следующей проблемой. При печати фискального чека на ККТ «Штрих-М» по эквайринговой операции, созданной на основании Заказа клиента, чек неожиданно закрывается на всю сумму заказа, а не на фактическую сумму безналичного платежа. Примечательно, что до переноса платформы с RDP-сервера на локальный компьютер касса могла работать абсолютно корректно.
В этой статье мы подробно разберем, почему возникает такое поведение системы, проанализируем взаимосвязь версий форматов фискальных данных (ФФД 1.0 и 1.05), драйверов и настроек ККТ, а также предоставим пошаговый алгоритм решения проблемы.
---
Для начала проанализируем физику процесса взаимодействия учетной системы «1С:Предприятие 8» и кассового аппарата «Штрих-М». Изменение поведения ККТ при переносе платформы с терминального сервера на локальный компьютер обусловлено двумя ключевыми факторами:
ShtrihMFR_KKT.dll), которая работала по логике старого формата ФФД 1.0. При установке платформы локально 1С развернула новую компоненту из своего макета (например, SMDrvFR1CLib20.dll или ShtrihMFR_KKT2.dll), которая принудительно задействует протоколы ФФД 1.05.Если сама касса «Штрих-М» или ее драйвер настроены некорректно, ККТ не понимает полученный тег постоплаты (кредита) и автоматически закрывает всю оставшуюся сумму чека по типу оплаты по умолчанию — безналичными. В итоге на бумажном чеке мы видим полную сумму заказа, закрытую «электронными».
---
Чтобы убедиться, что 1С формирует xml-пакет правильно, мы можем заглянуть в код формирования чека. В модулях интеграции ККТ формируется XML-структура, содержащая блоки товарных позиций и оплат. Обратим внимание на пример структуры XML-пакета, который 1С отправляет на кассу:
// Пример структуры XML для чека частичной оплаты по ФФД 1.05
<Receipt>
<Positions>
<FiscalString Name="Товар 1" Quantity="1" Price="10000" Sum="10000" Tax="None" PaymentMethod="4" />
</Positions>
<Payments Cash="0" ElectronicPayment="4000" PrePayment="0" PostPayment="6000" Barter="0" />
</Receipt>
В данном примере товар стоит 10 000 рублей. Покупатель платит картой 4 000 рублей (параметр ElectronicPayment), а оставшиеся 6 000 рублей уходят в кредит/постоплату (параметр PostPayment или Credit). Если касса пробивает чек на 10 000 рублей безналичными, значит, ККТ проигнорировала разделение платежей из-за неверной внутренней конфигурации таблиц.
---
Для исправления работы кассы необходимо выполнить комплексную настройку оборудования. Пройдем по шагам все этапы локальной настройки рабочего места.
Старые версии прошивок «Штрих-М» имели серьезные ограничения при обработке тегов ФФД 1.05. Часто они некорректно обрабатывали типы оплат, отличные от «Наличные» и «Безналичные».
Это самый важный шаг. В кассовых аппаратах «Штрих-М» за распределение типов оплат отвечает внутренняя таблица параметров. Если драйвер 1С посылает тип оплаты «Постоплата» (тег 1216) или «Зачет аванса» (тег 1215), касса должна сопоставить их с внутренними типами оплат.
Выполним настройку через «Тест драйвера ККТ»:
Также необходимо проверить Таблицу № 17 «Региональные настройки», поле 17 (Формат ФФД). Значение 2 указывает на поддержку ФФД 1.05. Если там стоит значение 0, касса работает в режиме ФФД 1.0, который физически не поддерживает передачу кредитных обязательств, сбрасывая все суммы в одну транзакцию.
При переходе на локальный компьютер 1С могла использовать устаревший или некорректный драйвер из локальной папки пользователя. Выполним актуализацию подключения:
%APPDATA%\1C\1Cv8\... актуальными версиями.---
Если обновить прошивку кассы сиюминутно не представляется возможным (например, касса находится на удаленной торговой точке, или нет возможности вызвать специалиста ЦТО), можно временно переключить логику отправки чеков в самой 1С в режим эмуляции ФФД 1.0.
Для этого в настройках подключаемого оборудования в 1С найдите поле «Версия ФФД» (или аналогичную настройку в параметрах ККТ) и принудительно выберите значение «1.0» вместо «1.05». В этом случае компонента 1С перестанет отправлять в XML-пакете теги PostPayment (кредит) и будет транслировать на кассу только сумму реальной безналичной оплаты, что позволит избежать некорректных чеков до момента полноценного апгрейда ККТ.
Рассмотренные шаги гарантируют корректное распределение сумм оплат на кассах семейства «Штрих-М» при интеграции с современными конфигурациями на платформе 1С:Предприятие 8.3.