Как исправить ошибку «В ККМ нет денег» при возврате безнала день в день в 1С:Управление торговлей?

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

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

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

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

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

По умолчанию во многих прошивках ККТ включена опция контроля наличности в денежном ящике. Кассовый аппарат воспринимает любую операцию с признаком расчета «Возврат прихода» как расходную транзакцию. При выполнении расхода ККТ автоматически пытается уменьшить текущий виртуальный счетчик наличных денег в своей памяти.

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

Рассмотрим по шагам несколько эффективных способов решения этой проблемы: от фундаментальной настройки оборудования до оперативных обходных путей для кассира.

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

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

Выполним настройку по шагам:

  1. Полностью закройте программу 1С:Управление торговлей на компьютере. Это необходимо для того, чтобы освободить порт подключения (COM-порт или USB), иначе драйвер не сможет связаться с кассой.
  2. Запустите стандартную утилиту «Тест драйвера ККТ» (рекомендуется использовать актуальную версию АТОЛ ДТО 10.х).
  3. В правом верхнем углу окна утилиты установите флаг «Включено» для установки связи с фискальным регистратором.
  4. Перейдите в раздел «Свойства», затем нажмите на кнопку «Параметры ККТ».
  5. В открывшемся дереве настроек найдите ветку «1. Основные».
  6. Найдите параметр под названием «Учет наличности» (в современных версиях прошивок на Платформе 5.0 данный параметр имеет № 56).
  7. Снимите флажок с этого параметра или переведите его значение в состояние 0 — Отключен.
  8. Сохраните изменения, нажав кнопку «ОК» или «Записать параметры», закройте тест драйвера и запустите 1С.

После проведения данной настройки касса перестанет блокировать операции возврата по картам и СБП даже при нулевом балансе в денежном ящике.

Способ 2. Отключение автоматической инкассации при закрытии смены

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

При закрытии смены (снятии Z-отчета) касса может автоматически проводить инкассацию, полностью списывая виртуальный остаток наличных. Чтобы накопленные наличные деньги переходили на следующую смену и выступали «страховкой» для проведения возвратов, эту опцию можно отключить:

  1. Откройте утилиту «Тест драйвера ККТ» и перейдите в «Параметры ККТ».
  2. Найдите параметр «Производить инкассацию» (обычно это параметр № 4).
  3. Снимите с него галочку и сохраните настройки.

Важное примечание: данный метод будет бесполезен для магазинов и шоурумов, которые работают исключительно по безналичному расчету и не принимают физические купюры.

Способ 3. Временный обходной путь для кассира (без изменения настроек кассы)

Что делать, если у кассира нет прав администратора для запуска теста драйвера ККТ, а оформить возврат клиенту нужно прямо сейчас? Проблему нехватки виртуальных денег можно обойти вручную непосредственно из интерфейса 1С.

Разберем последовательность действий совместной работы кассира:

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

Способ 4. Обновление конфигурации 1С и драйверов ККТ

Если мы проанализируем код интеграционных библиотек 1С, то увидим, что в старых релизах параметры электронных способов оплаты передавались кассе некорректно. В современных версиях 1С:Управление торговлей 11.4 и выше разработчики исправили этот недостаток.

Программный код современных обработок обслуживания ККТ при формировании чека возврата передает явную команду драйверу, которая выглядит следующим образом:


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

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

← На главную