Как оформить частичный возврат товара в 1С:УТ 11.5, если оплата была картой?

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

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

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

Основная причина кроется не в прихоти разработчиков 1С, а в технологических особенностях работы банковских протоколов. Разберем по шагам два сценария возврата:

  1. Сторнирование (Отмена операции): Если возврат происходит «день в день» (до закрытия кассовой смены), 1С отправляет банку команду на отмену транзакции. Большинство банковских терминалов поддерживают сторнирование только на полную сумму. Частичная отмена заблокированной на счету суммы технически невозможна для многих протоколов эквайринга, особенно если используется оплата по QR на терминалах PAX D230 или других специфичных устройствах.
  2. Возврат прихода: Этот механизм включается после закрытия смены. Здесь деньги перечисляются как новая финансовая операция, и ограничений на сумму (в пределах чека) нет.

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


Для Каждого СтрокаТЧ Из ТаблицаТоваров Цикл
    Если СтрокаТЧ.ЧекККМ = ЧекККМ
        И (ОплаченКартой
            ИЛИ (СтрокаТЧ.НоменклатураНабора = НоменклатураНабора
            И СтрокаТЧ.ХарактеристикаНабора = ХарактеристикаНабора)) Тогда
        СтрокаТЧ.Выбран = ТекущиеДанные.Выбран;
    КонецЕсли;
    Если НЕ СтрокаТЧ.ЧекККМ = ЧекККМ Тогда
        СтрокаТЧ.Выбран = Ложь;
    КонецЕсли;
    Если СтрокаТЧ.Выбран Тогда
        ПодобраноПозиций = ПодобраноПозиций + 1;
        Всего = Всего + СтрокаТЧ.Сумма;
    КонецЕсли;            
КонецЦикла;

Как мы видим, условие ОплаченКартой является триггером, который заставляет систему «подтягивать» весь перечень товаров без возможности индивидуального подбора строк пользователем.

Рассмотрим стандартное решение: Схема «Полный возврат + Новая продажа»

Это официальная рекомендация методистов 1С для работы с интегрированными терминалами. Если покупатель хочет вернуть один товар из трех:

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

Этот метод гарантирует отсутствие расхождений, когда в конце дня выполняется автоматическая сверка итогов при закрытии смены на банковском терминале. Он обеспечивает полное соответствие данных в 1С, данных в ОФД и фактического движения денежных средств по банку.

Проанализируем обходные пути без изменения кода

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

Вариант для программистов: Доработка конфигурации

Если бизнес-процессы требуют возможности частичного возврата именно через интерфейс РМК «день в день», потребуется расширение или модификация формы ОформлениеВозвратаДеньВДень. Также можно применить готовое расширение: частичная отмена по эквайрингу для УТ 11.5. Рассмотрим основные направления доработки:

Подведем итог: ограничение частичного возврата при оплате картой в 1С:УТ 11.5 — это защитный механизм от ошибок эквайринга. Самым безопасным и правильным с точки зрения учета методом остается полное сторнирование операции с последующим оформлением новой продажи.

← На главную