Как оформить возврат от розничного покупателя «не день в день» в 1С:Управление торговлей 10.3 при использовании онлайн-кассы

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

При работе в конфигурации «1С:Управление торговлей, редакция 10.3» (УТ 10.3) с подключенными онлайн-кассами (по 54-ФЗ) пользователи часто сталкиваются с методологической и технической сложностью: как правильно оформить возврат товара от розничного покупателя, если покупка была совершена в другую кассовую смену (так называемый возврат «не день в день»)?

В типовом интерфейсе рабочего места кассира (РМК) стандартная операция возврата рассчитана только на текущую смену. Попытка сделать возврат за прошлые дни вызывает у кассиров ступор, так как программа не позволяет выбрать чек ККМ из закрытой смены. В этой статье мы подробно разберем, почему так происходит, как выглядит стандартный (типовой) механизм возврата без изменения конфигурации, как решить проблему нехватки денег в кассе и какими способами можно доработать систему для удобства пользователей.

---

Почему в типовом РМК УТ 10.3 нельзя сделать возврат за прошлые смены?

Для начала проанализируем внутреннюю архитектуру учета розничных продаж в УТ 10.3. Интерфейс кассира (РМК) ориентирован на высокую скорость обслуживания и жестко привязан к понятию текущей кассовой смены. Работа в РМК строится вокруг документов ЧекККМ.

При закрытии кассовой смены запускается обработка «Закрытие кассовой смены», которая выполняет следующие действия:

  1. Сворачивает все продажи за день и создает один сводный документ ОтчетОРозничныхПродажах. Этот документ списывает товары со склада и фиксирует розничную выручку в оперативной кассе.
  2. По умолчанию (в зависимости от настроек) удаляет или архивирует чеки ККМ за день. Это сделано для того, чтобы не загромождать базу данных и исключить повторное проведение документов.

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

---

Способ №1. Стандартный порядок оформления возврата «не день в день» (без доработок)

Рассмотрим официальную методологию, заложенную разработчиками фирмы «1С» и соответствующую требованиям ФНС и Центрального Банка РФ. Если мы не хотим вносить изменения в конфигурацию, кассиру (или старшему кассиру/администратору) придется на время оформления возврата выйти из интерфейса РМК в стандартный интерфейс программы.

Разберем по шагам всю цепочку действий.

Шаг 1. Оформление возврата товара на склад

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

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

Шаг 2. Оформление выдачи денежных средств

Способ выдачи денег зависит от того, как покупатель оплачивал покупку — наличными или банковской картой.

Вариант А. Покупатель возвращает товар, оплаченный наличными:

  1. На основании созданного и проведенного документа ВозвратТоваровОтПокупателя введем подчиненный документ РасходныйКассовыйОрдер (РКО).
  2. В созданном РКО автоматически установится вид операции «Возврат денежных средств покупателю». Все основные реквизиты (сумма, контрагент, договор) заполнятся автоматически.
  3. В поле «Касса» должна быть указана касса, к которой подключено печатающее устройство (фискальный регистратор).

Вариант Б. Покупатель возвращает товар, оплаченный платежной картой (эквайринг):

По закону мы не имеем права выдавать наличные за товар, оплаченный безналичным путем. Деньги должны быть возвращены на карту.

  1. На основании документа ВозвратТоваровОтПокупателя введем документ ОплатаОтПокупателяПлатежнойКартой.
  2. В документе автоматически установится вид операции «Возврат денежных средств покупателю».
  3. Заполним реквизиты эквайрингового терминала и проведем документ.

Шаг 3. Печать фискального чека на онлайн-кассе

После проведения платежного документа (РКО или Оплаты картой) нам необходимо выдать покупателю фискальный чек с признаком расчета «Возврат прихода».

  1. Откроем проведенный документ (РКО или Оплату платежной картой).
  2. В нижней части формы или на панели инструментов найдем и нажмем кнопку «Чек» (или «Пробить чек»).
  3. Программа отправит команду на фискальный регистратор, и ККТ распечатает чек с признаком «Возврат прихода».

---

Решение проблемы с нехваткой денег в кассе ККМ

Выясним причину частой проблемы: при попытке пробить чек «Возврат прихода» фискальный регистратор выдает ошибку «Ошибка ККМ: Недостаточно денег в кассе». Это происходит потому, что в начале дня или после инкассации в денежном ящике аппарата физически нет нужной суммы наличных для выдачи.

Проанализируем правильный алгоритм пополнения операционной кассы в УТ 10.3:

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

---

Способ №2. Доработка типового интерфейса кассира (РМК)

Описанный выше Способ №1 является абсолютно легальным и правильным с точки зрения методологии, однако он крайне неудобен для потоковой розничной торговли. Кассиру приходится выходить из РМК, искать документы в общих списках, вручную создавать возвраты и РКО. Это увеличивает время обслуживания и повышает риск возникновения ошибок.

Если бизнес-процессы требуют, чтобы кассир выполнял все операции исключительно внутри РМК, систему необходимо доработать. Рассмотрим основные пути кастомизации.

1. Изменение логики архивации чеков ККМ

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

В коде модуля РМК необходимо доработать механизм выбора чека:

2. Программное автоматическое создание цепочки документов

Самый лучший вариант автоматизации — сделать так, чтобы кассир видел простой интерфейс, а вся сложная «кухня» документов создавалась системой автоматически в фоновом режиме. Схема работы программного кода при нажатии кнопки «Выполнить возврат» в доработанном РМК выглядит так:


// Примерная схема программного создания документов при возврате не день в день
Процедура ВыполнитьВозвратНеДеньВДень(ИсходныйЧекККМ, СуммаВозврата)
    
    // 1. Создаем документ Возврат товаров от покупателя
    ВозвратДок = Документы.ВозвратТоваровОтПокупателя.СоздатьДокумент();
    ВозвратДок.Дата = ТекущаяДата();
    ВозвратДок.Организация = ИсходныйЧекККМ.Организация;
    ВозвратДок.Склад = ИсходныйЧекККМ.Склад;
    ВозвратДок.Контрагент = Справочники.Контрагенты.РозничныйПокупатель;
    ВозвратДок.ДоговорКонтрагента = ВозвратДок.Контрагент.ОсновнойДоговорКонтрагента;
    
    // Заполняем табличную часть товарами из исходного чека
    Для Каждого СтрокаТовара Из ИсходныйЧекККМ.Товары Цикл
        НоваяСтрока = ВозвратДок.Товары.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТовара);
    КонецЦикла;
    
    Попытка
        ВозвратДок.Записать(РежимЗаписиДокумента.Проведение);
    Исключение
        Предупреждение("Не удалось провести документ возврата: " + ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    
    // 2. Если оплата была наличными, создаем РКО
    Если ИсходныйЧекККМ.ВидОплаты = Перечисления.ВидыОплаты.Наличные Тогда
        РКО = Документы.РасходныйКассовыйОрдер.СоздатьДокумент();
        РКО.Дата = ТекущаяДата();
        РКО.ВидОперации = Перечисления.ВидыОперацийРКО.ВозвратДенежныхСредствПокупателю;
        РКО.Организация = ВозвратДок.Организация;
        РКО.Касса = ИсходныйЧекККМ.КассаККМ.ОсновнаяКассаОрганизации; // Касса отправитель
        РКО.ДокументОснование = ВозвратДок.Ссылка;
        РКО.СуммаДокумента = СуммаВозврата;
        
        Попытка
            РКО.Записать(РежимЗаписиДокумента.Проведение);
            // Вызываем процедуру печати чека на ККМ из модуля работы с торговым оборудованием
            ТорговоеОборудованиеПроведение.ПробитьЧекПоРКО(РКО.Ссылка);
        Исключение
            Предупреждение("Ошибка проведения РКО или печати чека: " + ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;

КонецПроцедуры

Используя такую доработку, кассиру достаточно найти старый чек в РМК и нажать одну кнопку. Система сама создаст ВозвратТоваровОтПокупателя, подчиненный РасходныйКассовыйОрдер (или операцию по платежной карте), проведет их и автоматически отправит на кассовый аппарат команду печати чека «Возврат прихода».

---

Сравнение подходов: какой метод выбрать?

Проанализируем плюсы и минусы обоих подходов в виде таблицы:

Критерий сравнения Способ №1. Стандартный (типовой) Способ №2. Доработка РМК
Затраты на внедрение 0 руб. (функционал доступен «из коробки»). Требуются услуги программиста 1С для доработки кода.
Сложность работы кассира Высокая. Кассиру нужно знать структуру документов, уметь переключать интерфейсы. Низкая. Все действия происходят в одно нажатие кнопки прямо в РМК.
Риск ошибок пользователя Высокий. Кассир может забыть привязать документы, ошибиться в суммах или пробить не тот чек. Минимальный. Человеческий фактор исключен благодаря автоматическому заполнению документов.
Обновление конфигурации Конфигурация остается полностью типовой, легко обновляется. При обновлении программы необходимо контролировать доработки РМК.

Таким образом, если в вашей торговой точке возвраты «не день в день» происходят редко (1-2 раза в неделю), оптимально использовать стандартный способ №1. Достаточно один раз обучить старшего кассира или администратора правильной последовательности создания документов. Если же у вас интенсивный поток розничных покупателей и частые возвраты, настоятельно рекомендуется выполнить доработку РМК (Способ №2) или приобрести готовое внешнее решение (обработку рабочего места кассира), чтобы сберечь время сотрудников и минимизировать ошибки учета.

← На главную