В процессе работы с розничными покупателями часто возникают ситуации, когда требуется оформить возврат товара спустя время после продажи. Основная сложность заключается в том, что Фискальный Регистратор (ККТ) ведет учет наличных средств в денежном ящике. Если вы планируете выплатить покупателю сумму возврата, а в кассе на текущий момент денег нет (например, за текущую смену еще не было продаж), ККТ заблокирует пробитие чека с ошибкой об отсутствии средств. Давайте разберем, как справиться с этой задачей в конфигурации 1С:Бухгалтерия 3.0.
Важно различать две стороны процесса: бухгалтерское отражение операции и работу с фискальным устройством. С точки зрения бухгалтерии, вы оформляете возврат через документ Возврат товаров от покупателя и выплачиваете деньги через Расходный кассовый ордер (РКО). Однако для ККТ этого недостаточно — устройство ожидает, что сумма наличных в нем соответствует или превышает сумму выдачи.
Самый простой и популярный метод, который не требует изменения конфигурации, — это использование утилиты от производителя вашего фискального регистратора (например, Тест драйвера АТОЛ). Этот подход позволяет внести деньги в кассу как «разменные» или «внесение наличных».
1С:Бухгалтерии, чтобы освободить порт подключения к ККТ.ККТ.Внесение/Выплата).Внесение. ККТ распечатает чек о внесении денежных средств.1С.РКО в 1С и пробить чек на возврат прихода — ККТ увидит внесенную сумму и не выдаст ошибку.Если вы опытный пользователь или программист и хотите автоматизировать этот процесс непосредственно из интерфейса 1С, можно воспользоваться встроенным МенеджерОборудованияКлиент. Для выполнения операции внесения/выплаты денежных средств используется процедура НачатьИнкассациюНаФискальномУстройстве.
Рассмотрим пример кода, который позволяет реализовать внесение или изъятие средств:
// Для внесения денег (ввод суммы в ККТ)
ПараметрыОперации = Новый Структура("ТипИнкассации, Сумма", 1, СуммаДляВнесения);
ОповещениеПриЗавершении = Новый ОписаниеОповещения("КомандаВыполнитьЗавершение", ЭтотОбъект);
МенеджерОборудованияКлиент.НачатьИнкассациюНаФискальномУстройстве(ОповещениеПриЗавершении, УникальныйИдентификатор, ПараметрыОперации, ИдентификаторУстройства);
// Для изъятия денег (инкассация)
ПараметрыОперации = Новый Структура("ТипИнкассации, Сумма", 0, СуммаДляИзъятия);
// ... дальнейший вызов аналогичен
Параметр ТипИнкассации определяет действие: 1 — это внесение (пополнение кассы), 0 — это изъятие. Данный метод можно интегрировать в собственную внешнюю обработку или в доработанный документ РКО.
Если вам необходимо оформить это движение между кассами организации, используйте схему движения денежных средств через счета учета. Рекомендуется следующий вариант проводок:
Дт 50.02 (Операционная касса) - Кт 57.03 (Продажи по платежным картам - или иной транзитный счет)
Важно помнить, что 1С:Бухгалтерия строго следит за счетами учета кассы. При формировании кассовой книги могут возникать предупреждения, если операции проводятся не по 50.01 (Касса организации). В таких случаях часто приходится либо игнорировать системные сообщения, если отчетность формируется корректно, либо использовать внешние отчеты, настроенные под специфику вашего учета операционной кассы.
Разделяйте ответственность: Бухгалтерский учет (проводки в 1С) и фискальная операция (запись в память ККТ) — это две разные задачи. Оформляйте РКО в 1С для подтверждения выдачи денег сотруднику, а операцию внесения в ККТ проводите для обеспечения технической возможности пробить чек на возврат.
Будьте внимательны к ФФД: При пробитии чеков всегда проверяйте текущие требования законодательства к форматам фискальных документов (ФФД). Если возникли проблемы с печатью чека, всегда проверяйте статус смены и наличие ошибок в логах драйвера ККТ.
Резюме: Прямой кнопки «Внести деньги в ККТ» в типовом функционале 1С:Бухгалтерии 3.0 не существует. Использование внешних утилит производителя ККТ остается самым надежным и быстрым способом обхода блокировки кассового аппарата при возвратах.