Почему при оплате безналом в 1С:Розница чек пробивается наличными и как это исправить

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

Проблема, когда при выборе безналичного расчета в режиме Рабочего места кассира (РМК) система «проскакивает» обращение к терминалу эквайринга и моментально закрывает чек как наличный, является одной из самых коварных. Она носит «плавающий» характер, что затрудняет диагностику. В этой статье мы подробно разберем, почему 1С может игнорировать подключенный терминал и как заставить систему работать корректно.

Анализируем настройки способов оплаты

Первым делом нам необходимо проверить, как настроены способы оплаты в самой информационной базе. Разберем ситуацию: если в системе создано несколько элементов справочника ВидыОплаты с типом «Платежная карта», 1С может запутаться.

Проанализируем цепочку настроек:

  1. Перейдем в раздел НСИ — Эквайринговые терминалы.
  2. Убедимся, что для каждого используемого терминала четко указана соответствующая касса ККМ и организация.
  3. Проверим справочник ЭквайринговыеТерминалы. Если там не указано конкретное оборудование (драйвер), 1С воспримет оплату картой как «ручной эквайринг» (когда терминал не интегрирован). В этом случае программа просто фиксирует факт оплаты, не посылая сигнал на устройство, и пробивает чек.

Важный момент: если в РМК кассир выбирает оплату, которая не привязана к физическому терминалу в настройках 1С, система логично решит, что терминал автономный, и закроет чек по типу оплаты «Безналичные» без активации устройства. Но из-за ошибок в сопоставлении в драйвер ККТ может уйти команда на закрытие чека по первому доступному индексу (часто это наличные).

Проблема кэширования настроек пользователя

В 1С:Розница настройки торгового оборудования и интерфейса РМК часто сохраняются в локальном кэше. Если произошел скачок напряжения или некорректное завершение сеанса, 1С может «потерять» связь между рабочим местом и драйвером эквайринга.

Рассмотрим алгоритм очистки и перенастройки:

  1. Полностью очистим кэш пользователя 1С (папки в %AppData%\Local\1C\1Cv8 и %AppData%\Roaming\1C\1Cv8).
  2. Зайдем в настройки подключаемого оборудования и заново перевыберем эквайринговый терминал для данного рабочего места.
  3. Проверим параметры НастройкиРМК. Убедимся, что в списке доступных видов оплат для этого интерфейса нет дублей.

Конфликт драйверов и версий БПО

Ситуация, описанная в теме (использование драйвера Атол 10.4), указывает на возможную несовместимость версий. Библиотека подключаемого оборудования (БПО), интегрированная в вашу 1С:Розница, должна поддерживать функции конкретной версии драйвера ККТ.

Выясним причину через лог-файлы. Драйвер АТОЛ 10-й серии ведет подробный лог (обычно находится в %AppData%\Roaming\Atol\drivers10\logs). Нам нужно найти момент пробития «неправильного» чека и посмотреть, какая команда пришла от 1С. Если в логе зафиксирована команда CashPayment вместо NonCashPayment, значит, проблема внутри кода 1С или БПО.

Разберем пример кода, который отвечает за передачу типов оплаты в драйвер (условно):


// Пример логики формирования оплаты в БПО
ОбъектДрайвера.ТипОплаты = 1; // 0 - наличные, 1 - электронные
Если ЭквайрингПодключен Тогда
    Результат = ЭквайринговыйТерминал.Оплатить(СуммаЧека);
    Если Не Результат Тогда
        Возврат; // Остановка печати чека
    КонецЕсли;
КонецЕсли;

Если ЭквайрингПодключен возвращает Ложь из-за ошибки инициализации COM-объекта банковской библиотеки (например, для Русского Стандарта или Сбера), 1С может пропустить блок активации терминала и перейти сразу к фискализации чека. При этом, если в коде нет жесткой проверки, чек уйдет на ККТ с типом оплаты по умолчанию.

Настройка тайм-аутов и прав доступа

Иногда терминал просто не успевает ответить 1С. Посмотрим на параметры подключения эквайринга. В настройках оборудования в 1С есть поле «Тайм-аут» (в секундах). Для современных терминалов рекомендуется устанавливать значение не менее 60–120 секунд. Если терминал «заснул», а 1С ждет ответ всего 30 секунд, система может разорвать соединение и, в зависимости от логики обработки ошибок в вашем релизе, предложить закрыть чек наличными.

Также проанализируем права доступа Windows. Программное обеспечение банка (например, RS-Pos или Sberbank) должно иметь права на запись в свою рабочую директорию. Если прав недостаточно, драйвер банка может «молча» падать, а 1С будет интерпретировать это как отсутствие необходимости в интеграции.

Влияние ФФД 1.2 и версии прошивки ККТ

С переходом на ФФД 1.2 изменились требования к передаче данных о маркированных товарах и типах оплат. Рассмотрим ситуацию с аппаратом Атол 22Ф. Если прошивка аппарата старая, а драйвер 10.4 пытается отправить команду в формате нового ФФД, касса может некорректно сопоставить типы платежей. В ФФД 1.05 оплата называлась «Электронными», в ФФД 1.2 — «Безналичными». Несоответствие этих индексов в таблице оплат ККТ приводит к тому, что платеж «падает» на первый индекс — Наличные.

Рекомендуется:

Человеческий фактор и горячие клавиши в РМК

Не стоит исключать и простейшую причину. В настройках Профиля РМК часто назначены горячие клавиши. Например, клавиша Enter или Пробел может быть назначена на действие «Оплата без сдачи» (что подразумевает наличные). Если кассир привык быстро нажимать клавиши, он может случайно инициировать быстрый наличный расчет до того, как выберет «Платежную карту».

Проанализируем настройки:

  1. Зайдем в Администрирование — Продажи — Настройки РМК.
  2. Откроем используемый профиль и перейдем на закладку Горячие клавиши.
  3. Проверим, не дублируются ли клавиши для «Оплаты картой» и «Быстрой оплаты наличными».

Методика диагностики при «плавающей» ошибке

Чтобы окончательно выяснить причину, когда ошибка повторится, выполните следующие шаги:

  1. Сверьте время: посмотрите точное время пробития чека в 1С.
  2. Изучите лог банка: если запроса к банку в это время не было — проблема в 1С (она не инициировала вызов).
  3. Изучите лог драйвера ККТ: посмотрите, какой PaymentType пришел в XML-пакете от 1С на фискализацию.

Если вы видите, что 1С отправляет Type="1" (наличные), хотя кассир утверждает, что выбирал карту — значит, проблема в сопоставлении видов оплат в справочниках или в ошибке кэша. Если же 1С отправляет Type="2", а касса печатает «Наличные» — проблема в прошивке или таблицах типов оплат в самой ККТ.

Резюмируем: для стабильной работы связки 1С:Розница + АТОЛ + Эквайринг критически важно соблюдать единство версий (БПО + Драйвер + Прошивка) и исключать дублирование настроек в справочниках видов оплат.

← На главную