Как правильно оформить возврат вчерашнего товара по чеку в 1С:Управление торговлей 10.3?

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

Оформление возвратов в розничной торговле — одна из наиболее частых задач, вызывающих вопросы как у начинающих разработчиков, так и у практикующих бухгалтеров. Ситуация усложняется тем, что логика работы программы существенно меняется в зависимости от того, возвращается ли товар в день покупки (до закрытия кассовой смены) или в последующие дни (после формирования Z-отчета). В рамках данной статьи мы детально проанализируем, как устроен этот механизм в типовом решении 1С:Управление торговлей 10.3, разберем требования законодательства по 54-ФЗ и рассмотрим способ тестирования кассовых операций на домашнем компьютере разработчика без подключения реального торгового оборудования.

Разница между возвратом «день в день» и в последующие смены

Для того чтобы понять логику программы, сначала разберем два принципиально отличающихся сценария работы розничной точки.

Сценарий 1. Возврат товара в день покупки (до закрытия кассовой смены)

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

  1. Кассир создает новый документ ЧекККМ с видом операции «Чек на возврат».
  2. Этот документ вводится строго на основании оригинального чека продажи.
  3. При проведении чека на возврат денежные средства выдаются непосредственно из денежного ящика ККМ, а товар возвращается на склад розничной точки.
  4. При закрытии смены и формировании документа ОтчетОРозничныхПродажах данные по продажам и возвратам «день в день» схлопываются, фиксируя только чистую выручку за смену.

Сценарий 2. Возврат товара в последующие смены (вчерашний товар и старше)

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

Пошаговый алгоритм оформления возврата вчерашнего товара

Рассмотрим детально, как реализован процесс возврата товара, приобретенного в предыдущие смены, в типовой конфигурации 1С:Управление торговлей 10.3:

Шаг 1. Создание документа «Возврат товаров от покупателя»

Этот документ является первичным для отражения факта возврата ТМЦ на склад предприятия. Мы оформляем его следующим образом:

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

Шаг 2. Выдача денежных средств и пробитие фискального чека

Согласно требованиям Федерального закона № 54-ФЗ, при возврате денег покупателю фирма обязана выдать фискальный чек с признаком расчета «Возврат прихода». В 1С:УТ 10.3 физический чек ККМ для вчерашнего возврата пробивается не из документа возврата товара, а из платежного документа, фиксирующего выдачу денег.

В зависимости от способа первоначальной оплаты, мы выбираем один из двух вариантов:

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

Проанализируем программный код создания документа РасходныйКассовыйОрдер на основании документа возврата товаров. Ниже приведен пример того, как это происходит на уровне платформы:


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

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

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

Часто у разработчиков и бухгалтеров возникает опасение: если мы делаем РасходныйКассовыйОрдер и одновременно пробиваем фискальный чек возврата, не произойдет ли задвоение расходов в учете? Давайте разберем этот момент.

В системе 1С четко разделены понятия операционной кассы ККМ (денежного ящика ККТ) и кассы организации (кассы предприятия).

Как тестировать кассовые операции на домашнем компьютере разработчика

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

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

Разберем по шагам процесс подключения эмулятора ККТ в 1С:УТ 10.3:

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

После этого при нажатии кнопки «Чек» в документах оплаты или возврата система не будет выдавать ошибок связи с портами. Вместо этого на экран компьютера будет выведено интерактивное текстовое окно «Эмулятор ККТ», отображающее полную структуру будущего фискального документа:

Это позволяет разработчику полностью контролировать корректность заполнения реквизитов фискального чека перед его отправкой на реальное устройство на рабочем месте кассира.

← На главную