При работе с контрольно-кассовой техникой (ККТ) АТОЛ в связке с 1С пользователи часто сталкиваются с парадоксальной ситуацией: клиент возвращает товар, оплаченный платежной картой, бухгалтер оформляет «Чек ККМ на возврат» с типом оплаты «Электронные», но система выдает ошибку «В ККТ нет денег для выплаты» — решается через модуль фискализации чеков на АТОЛ без доработки 1С. Казалось бы, при безналичном расчете физического движения купюр в денежном ящике не происходит, однако внутренние счетчики кассы блокируют операцию. Проанализируем причины этой проблемы и разберем по шагам все доступные способы решения.
Выясним причину такого поведения оборудования. В логике работы многих кассовых аппаратов (особенно со старыми прошивками на Платформе 2.5) существует единый регистр контроля наличности. Когда касса получает команду на «Возврат прихода», она первым делом проверяет, достаточно ли средств в ее внутреннем денежном счетчике. Если смена только открыта и в кассе 0 рублей, аппарат блокирует чек, не разделяя в этот момент тип оплаты (наличные или безналичные). С точки зрения ККТ, любая выплата — это уменьшение остатка. Рассмотрим подробнее, как обойти это ограничение в различных версиях драйверов и конфигураций 1С.
Для современных версий драйверов (10.4 и выше) решение зачастую кроется в изменении параметров конфигурации самого аппарата. Нам необходимо отключить контроль наличности в денежном ящике. Пройдем по шагам процесс настройки:
Проанализируем результат: после отключения этого параметра касса перестанет проверять физический остаток в регистре при формировании чеков возврата, что позволит проводить безналичные операции даже при нулевом балансе в начале смены.
Если вы используете более старое ПО (например, в связке с 1С:Управление торговлей 10.3), интерфейс настройки будет отличаться. Разберем, как отключить контроль через таблицы параметров:
В ситуациях, когда настройки драйвера не помогают (например, из-за ограничений старой прошивки кассы), можно использовать «костыль», который официально рекомендует техподдержка АТОЛ. Суть метода заключается в искусственном пополнении регистра кассы. Посмотрим, как это реализовать:
Если ваша конфигурация (например, «1С:Розница» или «Управление торговлей») поддерживает документ «Внесение денежных средств», создайте его на сумму, превышающую сумму возврата. После этого чек возврата будет пробит без ошибок. Важно помнить, что эта операция не является фискальной и не передается в налоговую (ОФД), она лишь меняет цифру во внутреннем счетчике кассы.
В конфигурациях типа «1С:Бухгалтерия», где нет стандартной кнопки внесения, а также если у вас настроен обмен с торговым оборудованием Атол Frontol через FTP, можно воспользоваться самим драйвером:
Часто проблема кроется в том, что 1С передает драйверу некорректную команду — поможет подключение онлайн-касс АТОЛ без обновления конфигурации. Например, при возврате «не день в день» (через документ «Возврат товаров от покупателя»), старые обработки обслуживания могут ошибочно инициировать выплату наличными даже для безналичного чека. Проанализируем алгоритм обновления:
Если мы хотим автоматизировать процесс внесения средств при возврате, рассмотрим пример кода, который можно добавить в процедуру печати чека. Посмотрим на логику взаимодействия с объектом драйвера:
// Пример упрощенной логики внесения средств через API драйвера АТОЛ 10
Результат = ОбъектДрайвера.УстановитьСвойство("Sum", СуммаВнесения);
Результат = ОбъектДрайвера.Внесение();
Если Результат <> 0 Тогда
ТекстОшибки = "";
ОбъектДрайвера.ПолучитьОшибку(ТекстОшибки);
Сообщить("Не удалось выполнить внесение: " + ТекстОшибки);
КонецЕсли;
В типовых конфигурациях на управляемых формах (УТ 11, БП 3.0) лучше использовать штатный механизм МенеджерОборудованияВызовСервера.ПодключитьОборудование() и вызывать методы фискализации через стандартные интерфейсы, предварительно проверив статус денежного ящика командой ЗапросДенежногоОстатка.
Иногда ошибка «Нет денег» возникает из-за копеечных расхождений при расчете НДС. Касса пытается округлить сумму возврата в большую сторону и не находит в регистре этих «лишних» копеек. В таком случае помогает только обновление прошивки ККТ до актуальной (Платформа 5.0), где математические алгоритмы приведены в соответствие с требованиями ФНС и исключают подобные блокировки.
Резюмируем: наиболее правильным и долгосрочным решением является переход на Платформу 5.0 и драйвер 10.х с отключением параметра 56 (Контроль наличности) — для этого подойдёт драйвер АТОЛ 10 для 1С 7.7. Если же обновление невозможно — используйте операцию внесения перед оформлением возврата.