Как исправить ошибку «В ККТ нет денег для выплаты» при возврате безналичной оплаты на кассах АТОЛ?

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

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

Почему возникает эта ошибка?

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

Решение 1: Настройка драйвера АТОЛ версии 10.х

Для современных версий драйверов (10.4 и выше) решение зачастую кроется в изменении параметров конфигурации самого аппарата. Нам необходимо отключить контроль наличности в денежном ящике. Пройдем по шагам процесс настройки:

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

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

Решение 2: Настройка для драйверов версий 8.х и 9.х

Если вы используете более старое ПО (например, в связке с 1С:Управление торговлей 10.3), интерфейс настройки будет отличаться. Разберем, как отключить контроль через таблицы параметров:

  1. В Тесте драйвера перейдем в раздел «Настройка свойств» -> «Параметры ККТ».
  2. Перейдем на закладку или в таблицу «Работа с денежным ящиком».
  3. Если прямой настройки нет, воспользуемся режимом прямого редактирования таблиц. Нам нужна Таблица 2, Ряд 1, Поле 115.
  4. Установим значение в 1 (разрешить операции без контроля наличности) или 0 (в зависимости от конкретной версии прошивки, следуйте подсказке в драйвере).
  5. Обязательно убедимся, что для вида оплаты «Электронные» (обычно это Тип оплаты 2) также стоит признак «Разрешить возврат».

Решение 3: Операция «Внесение» как временный обходной путь

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

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

В конфигурациях типа «1С:Бухгалтерия», где нет стандартной кнопки внесения, а также если у вас настроен обмен с торговым оборудованием Атол Frontol через FTP, можно воспользоваться самим драйвером:

  1. В Тесте драйвера перейдем в раздел «Чек».
  2. Выберем тип чека «Внесение».
  3. Укажем сумму и нажмем «Внести».
  4. После этого возвращаемся в 1С и пробиваем чек возврата.

Решение 4: Обновление драйвера и обработки обслуживания в 1С

Часто проблема кроется в том, что 1С передает драйверу некорректную команду — поможет подключение онлайн-касс АТОЛ без обновления конфигурации. Например, при возврате «не день в день» (через документ «Возврат товаров от покупателя»), старые обработки обслуживания могут ошибочно инициировать выплату наличными даже для безналичного чека. Проанализируем алгоритм обновления:

  1. Скачаем последнюю версию драйвера АТОЛ (рекомендуется ветка 10.х).
  2. В 1С перейдем в раздел «Администрирование» -> «Подключаемое оборудование».
  3. Обновим файл обработки обслуживания (поможет обработка обслуживания онлайн-касс АТОЛ и ШТРИХ-М) (например, для корректной передачи ставок налога используется обработка обслуживания для УТ 10.3 АТОЛ 10.10.8.х).
  4. Убедимся, что версия драйвера в системе совпадает с версией, установленной на компьютере. Обратите внимание, что для 32-битной 1С необходимо ставить 32-битную версию драйвера, даже если ОС 64-битная.

Программная реализация внесения (для разработчиков)

Если мы хотим автоматизировать процесс внесения средств при возврате, рассмотрим пример кода, который можно добавить в процедуру печати чека. Посмотрим на логику взаимодействия с объектом драйвера:


// Пример упрощенной логики внесения средств через API драйвера АТОЛ 10
Результат = ОбъектДрайвера.УстановитьСвойство("Sum", СуммаВнесения);
Результат = ОбъектДрайвера.Внесение();

Если Результат <> 0 Тогда
    ТекстОшибки = "";
    ОбъектДрайвера.ПолучитьОшибку(ТекстОшибки);
    Сообщить("Не удалось выполнить внесение: " + ТекстОшибки);
КонецЕсли;

В типовых конфигурациях на управляемых формах (УТ 11, БП 3.0) лучше использовать штатный механизм МенеджерОборудованияВызовСервера.ПодключитьОборудование() и вызывать методы фискализации через стандартные интерфейсы, предварительно проверив статус денежного ящика командой ЗапросДенежногоОстатка.

Важные замечания по НДС и округлениям

Иногда ошибка «Нет денег» возникает из-за копеечных расхождений при расчете НДС. Касса пытается округлить сумму возврата в большую сторону и не находит в регистре этих «лишних» копеек. В таком случае помогает только обновление прошивки ККТ до актуальной (Платформа 5.0), где математические алгоритмы приведены в соответствие с требованиями ФНС и исключают подобные блокировки.

Резюмируем: наиболее правильным и долгосрочным решением является переход на Платформу 5.0 и драйвер 10.х с отключением параметра 56 (Контроль наличности) — для этого подойдёт драйвер АТОЛ 10 для 1С 7.7. Если же обновление невозможно — используйте операцию внесения перед оформлением возврата.

← На главную