Как исправить ошибку «В ККТ нет денег для выплаты» при возврате по безналу в 1С

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

При работе с торговыми конфигурациями 1С, такими как 1С:Управление торговлей или 1С:Розница, пользователи часто сталкиваются с неприятной ситуацией: при попытке оформить возврат за товар, который ранее был оплачен платежной картой (безналичный расчет), фискальный регистратор блокирует операцию. На экране появляется системное сообщение: «При печати чека произошла ошибка. Чек не напечатан на фискальном устройстве. Дополнительное описание: При выполнении операции произошла ошибка: В ККТ нет денег для выплаты».

На первый взгляд эта ошибка кажется абсурдной, ведь при безналичном расчете физические купюры из денежного ящика кассы не выдаются — деньги возвращаются на банковскую карту покупателя через эквайринговый терминал. В этой статье мы подробно разберем, почему возникает данная проблема на онлайн-кассах АТОЛ, проанализируем внутренние механизмы работы ККТ и предоставим пошаговые инструкции по ее устранению.

Выясняем причину: почему онлайн-касса блокирует безналичный возврат?

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

Если в настройках ККТ активна функция контроля наличности, то перед пробитием любого чека возврата устройство проверяет, достаточно ли средств в этом виртуальном ящике. Если сумма возврата (даже безналичного) превышает остаток наличных в кассе, срабатывает внутренняя защита, и драйвер возвращает ошибку отсутствия денег для выплаты.

Особенно остро эта проблема проявляется в следующих ситуациях:

  1. Автоматическая инкассация (автовыемка) при закрытии смены. При снятии Z-отчета ККТ полностью обнуляет свой внутренний счетчик наличных. Если на следующий день первым же чеком кассир пытается провести возврат по безналу (до того, как в кассу поступила наличная выручка от новых продаж), баланс кассы равен нулю, и операция блокируется.
  2. Рассинхронизация версий драйверов. Если в операционной системе Windows установлен драйвер ККТ одной версии (например, ДТО 10), а интеграционная компонента внутри платформы 1С:Предприятие 8 использует устаревшую версию, то при отправке команды возврата 1С может некорректно передать тип оплаты. Касса «думает», что оформляется возврат наличными, и выдает ошибку.

Способ 1. Отключение контроля наличности в параметрах ККТ АТОЛ (Рекомендуемый метод)

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

Шаг 1. Освобождение порта кассы. Полностью закройте программу 1С на рабочем месте кассира. Если этого не сделать, 1С будет удерживать COM-порт (или USB-соединение) кассы, и внешняя утилита настройки не сможет подключиться к устройству.

Шаг 2. Запуск утилиты. Откройте стандартную программу «Тест драйвера ККТ» (обычно она находится в меню «Пуск» в папке АТОЛ).

Шаг 3. Подключение к кассе. В правом верхнем углу окна утилиты установите флаг Включено. В нижней строке состояния должна появиться информация о вашей модели ККТ (например, АТОЛ 22ПТК или АТОЛ FPrint-22ПТК) и ее серийном номере. Это означает, что связь успешно установлена.

Шаг 4. Переход в свойства. В правой колонке кнопок нажмите на кнопку Свойства. В открывшемся окне нажмите на кнопку Параметры ККТ.

Шаг 5. Изменение настроек учета наличности. В древовидном меню параметров найдите раздел Основные (в некоторых версиях прошивок он может называться Оплата или Правила работы). Найдите параметр Контроль учета наличности (или Учет наличности). Снимите с него галочку (переведите в состояние «Выключено»).

Шаг 6. Сохранение изменений. Нажмите кнопку Записать или Сохранить в нижней части окна свойств. Дождитесь, пока кассовый аппарат издаст короткий звуковой сигнал, подтверждающий успешную запись настроек в энергонезависимую память платы ККТ.

После выполнения этих действий закройте «Тест драйвера ККТ», запустите 1С и повторите попытку проведения возврата по безналичному расчету. Ошибка больше не появится.


Способ 2. Обходной путь через виртуальное «Внесение» денежных средств

Бывают ситуации, когда у пользователя или системного администратора нет возможности оперативно изменить параметры ККТ (например, доступ к настройкам драйвера запаролен обслуживающим ЦТО, либо касса подключена в режиме удаленного терминального доступа к серверу). В этом случае мы можем применить обходной маневр — временно пополнить виртуальный баланс кассы.

Разберем, как обойти ограничение с помощью нефискальных операций:

  1. Выясните точную сумму чека возврата, который заблокировала система.
  2. В интерфейсе кассира 1С (или напрямую через «Тест драйвера ККТ») выполните операцию «Внесение денег». Введите сумму, которая равна или немного превышает сумму планируемого возврата. Помните: операция внесения денег не является фискальной, она не передается в ФНС (ОФД) и не влияет на расчет налоговой базы. Это исключительно внутреннее перемещение денежных средств в рамках кассовой смены.
  3. Повторно проведите в 1С документ возврата по безналичному расчету. Теперь ККТ увидит, что на балансе «ящика» есть средства, и без проблем напечатает чек возврата.
  4. После успешной печати чека обязательно проведите операцию «Выемка денег» на ту же сумму, которую вы вносили на шаге 2. Это необходимо для того, чтобы фактический баланс наличных денег в кассе совпадал с данными учетной системы 1С к моменту закрытия смены.

Способ 3. Синхронизация версий драйверов и обновление интеграционных библиотек 1С

Если отключение контроля наличности не помогло, проанализируем техническую сторону взаимодействия 1С с драйвером ККТ. В старых релизах конфигураций 1С (включая ветку УТ 11.3.4) существовала серьезная проблема совместимости с новыми версиями драйверов АТОЛ при переходе на форматы фискальных данных ФФД 1.05 и ФФД 1.2.

При формировании XML-пакета для отправки на кассу 1С могла некорректно сопоставлять типы оплат. В результате безналичный платеж отправлялся на кассу с кодом наличного платежа. Выясним, как это исправить:

Во-первых, выполните обновление интеграционной компоненты драйвера непосредственно в базе данных 1С. Для этого перейдите в меню НСИ и администрирование -> РМК и оборудование -> Подключаемое оборудование. Найдите вашу кассу, откройте карточку настройки и нажмите кнопку Установить драйвер или Обновить драйвер. Версия драйвера, интегрированного в 1С, должна строго соответствовать версии драйвера, установленного в операционной системе Windows.

Во-вторых, обратите внимание на то, как программно передаются типы оплат в ККТ. Ниже представлен концептуальный пример кода, иллюстрирующий, как в современных библиотеках интеграции 1С формируется таблица оплат, разделяющая типы расчетов:


// Пример формирования структуры оплат для фискального чека возврата
ТаблицаОплат = Новый ТаблицаЗначений;
ТаблицаОплат.Колонки.Добавить("ТипОплаты", Новый ОписаниеТипов("Число"));
ТаблицаОплат.Колонки.Добавить("Сумма",     Новый ОписаниеТипов("Число"));

// Заполняем строку для безналичного расчета
НоваяСтрока = ТаблицаОплат.Добавить();
// Значение "1" в протоколах АТОЛ обычно соответствует электронным (безналичным) средствам платежа
НоваяСтрока.ТипОплаты = 1; 
НоваяСтрока.Сумма = СуммаВозвратаПокупателю;

// Передаем подготовленную таблицу в модуль фискализации ККТ
ПараметрыЧека = Новый Структура;
ПараметрыЧека.Вставить("ТаблицаОплат", ТаблицаОплат);

Если в вашей системе используется устаревшая обработка обслуживания кассы, она может игнорировать разделение типов оплат, из-за чего ККТ воспринимает безналичный возврат как выплату наличных. В таком случае поможет либо обновление конфигурации 1С до актуального релиза, либо привлечение программиста для доработки модуля интеграции ККТ под современные стандарты ФФД.

← На главную