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