Почему при оплате картой на основании заказа чек Штрих-М бьется на всю сумму заказа и как это исправить?

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

При автоматизации розничной и оптовой торговли на базе 1С:Управление торговлей 11 (или аналогичных конфигураций на управляемых формах, таких как 1С:Комплексная автоматизация) специалисты часто сталкиваются со следующей проблемой. При печати фискального чека на ККТ «Штрих-М» по эквайринговой операции, созданной на основании Заказа клиента, чек неожиданно закрывается на всю сумму заказа, а не на фактическую сумму безналичного платежа. Примечательно, что до переноса платформы с RDP-сервера на локальный компьютер касса могла работать абсолютно корректно.

В этой статье мы подробно разберем, почему возникает такое поведение системы, проанализируем взаимосвязь версий форматов фискальных данных (ФФД 1.0 и 1.05), драйверов и настроек ККТ, а также предоставим пошаговый алгоритм решения проблемы.

---

Выясняем причину: почему изменилось поведение ККТ при переходе с RDP на локальный ПК

Для начала проанализируем физику процесса взаимодействия учетной системы «1С:Предприятие 8» и кассового аппарата «Штрих-М». Изменение поведения ККТ при переносе платформы с терминального сервера на локальный компьютер обусловлено двумя ключевыми факторами:

  1. Различие версий интеграционных компонент драйвера. На RDP-сервере в системе могла быть зарегистрирована устаревшая внешняя компонента (например, ShtrihMFR_KKT.dll), которая работала по логике старого формата ФФД 1.0. При установке платформы локально 1С развернула новую компоненту из своего макета (например, SMDrvFR1CLib20.dll или ShtrihMFR_KKT2.dll), которая принудительно задействует протоколы ФФД 1.05.
  2. Логика распределения оплат в ФФД 1.05. В устаревшем формате ФФД 1.0 при частичной предоплате заказа 1С отправляла на кассу только сумму самого платежа (часто одной строкой, без разбивки по товарным позициям). В формате ФФД 1.05 система обязана передать на кассу весь спецификационный состав заказа. При этом общая сумма товарных позиций распределяется по типам оплаты:
    • Сумма безналичными (электронными) — передается сумма текущего платежа по эквайрингу.
    • Сумма постоплатой (в кредит) — передается оставшаяся, еще не оплаченная часть стоимости заказа.

Если сама касса «Штрих-М» или ее драйвер настроены некорректно, ККТ не понимает полученный тег постоплаты (кредита) и автоматически закрывает всю оставшуюся сумму чека по типу оплаты по умолчанию — безналичными. В итоге на бумажном чеке мы видим полную сумму заказа, закрытую «электронными».

---

Анализируем XML-пакет, отправляемый в ККТ

Чтобы убедиться, что 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. Проверка и обновление прошивки ККТ

Старые версии прошивок «Штрих-М» имели серьезные ограничения при обработке тегов ФФД 1.05. Часто они некорректно обрабатывали типы оплат, отличные от «Наличные» и «Безналичные».

  1. Обратитесь в обслуживающий ЦТО или к сертифицированному специалисту для обновления прошивки процессора ККТ до актуальной версии (рекомендуются релизы прошивок от 2020 года и новее).
  2. Убедитесь, что ККТ переведена на формат ФФД 1.05 или ФФД 1.2. Проверить это можно через утилиту «Тест драйвера ККТ».

Шаг 2. Настройка типов оплаты в таблицах ККТ Штрих-М

Это самый важный шаг. В кассовых аппаратах «Штрих-М» за распределение типов оплат отвечает внутренняя таблица параметров. Если драйвер 1С посылает тип оплаты «Постоплата» (тег 1216) или «Зачет аванса» (тег 1215), касса должна сопоставить их с внутренними типами оплат.

Выполним настройку через «Тест драйвера ККТ»:

  1. Запустите утилиту «Тест драйвера ККТ» (версии 4.14 или 4.15).
  2. Установите связь с кассой и перейдите в раздел «Настройка свойств» -> «Таблицы».
  3. Найдите и откройте Таблицу № 5 «Наименования типов оплаты».
  4. Проанализируйте строки (ряды) таблицы. По умолчанию соответствие типов оплат в системе «Штрих-М» должно быть следующим:
    • Ряд 1 (Тип 1): НАЛИЧНЫМИ
    • Ряд 2 (Тип 2): БЕЗНАЛИЧНЫМИ (или КАРТОЙ / ПОЛУЧЕНО)
    • Ряд 14 (Тип 14): ПРЕДВАРИТЕЛЬНАЯ ОПЛАТА (АВАНС)
    • Ряд 15 (Тип 15): ПОСЛЕДУЮЩАЯ ОПЛАТА (КРЕДИТ)
    • Ряд 16 (Тип 16): ИНАЯ ФОРМА ОПЛАТЫ (ОБМЕН/СЕРТИФИКАТ)
  5. Если наименования в рядах 14 и 15 пусты или заменены другими значениями, запишите туда корректные наименования («ПРЕДОПЛАТА» и «ПОСТОПЛАТА» соответственно). Сохраните изменения в таблице.

Также необходимо проверить Таблицу № 17 «Региональные настройки», поле 17 (Формат ФФД). Значение 2 указывает на поддержку ФФД 1.05. Если там стоит значение 0, касса работает в режиме ФФД 1.0, который физически не поддерживает передачу кредитных обязательств, сбрасывая все суммы в одну транзакцию.

Шаг 3. Обновление интеграционной компоненты в 1С

При переходе на локальный компьютер 1С могла использовать устаревший или некорректный драйвер из локальной папки пользователя. Выполним актуализацию подключения:

  1. Откройте 1С в режиме предприятия и перейдите в раздел НСИ и администрирование -> РМК и оборудование -> Подключаемое оборудование.
  2. Выберите вашу ККТ Штрих-М и откройте карточку настройки.
  3. Обратите внимание на используемый драйвер оборудования. Если используется устаревшая обработка, нажмите кнопку «Сменить драйвер» и выберите актуальный двухкомпонентный драйвер «Штрих-М:ККТ с передачей данных в ОФД (ФФД 1.05)».
  4. Нажмите кнопку «Функции» -> «Установить драйвер» (или «Переустановить драйвер»). Это принудительно перезапишет dll-библиотеки в локальном каталоге %APPDATA%\1C\1Cv8\... актуальными версиями.

---

Альтернативное решение: временный возврат на ФФД 1.0 в 1С (при невозможности обновить кассу)

Если обновить прошивку кассы сиюминутно не представляется возможным (например, касса находится на удаленной торговой точке, или нет возможности вызвать специалиста ЦТО), можно временно переключить логику отправки чеков в самой 1С в режим эмуляции ФФД 1.0.

Для этого в настройках подключаемого оборудования в 1С найдите поле «Версия ФФД» (или аналогичную настройку в параметрах ККТ) и принудительно выберите значение «1.0» вместо «1.05». В этом случае компонента 1С перестанет отправлять в XML-пакете теги PostPayment (кредит) и будет транслировать на кассу только сумму реальной безналичной оплаты, что позволит избежать некорректных чеков до момента полноценного апгрейда ККТ.

Рассмотренные шаги гарантируют корректное распределение сумм оплат на кассах семейства «Штрих-М» при интеграции с современными конфигурациями на платформе 1С:Предприятие 8.3.

← На главную