Как формируется кассовый чек на возврат прихода в 1С:Розница и драйвере ККТ?

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

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

Законодательные требования и понятие возврата прихода

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

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

Техническая реализация в драйвере ККТ и БПО

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

Проанализируем базовые значения признака расчета (OperationType или PaymentType):

  1. 1 — Приход (обычная продажа товара или оказание услуги).
  2. 2 — Возврат прихода (возврат денег покупателю за ранее проданный товар).
  3. 3 — Расход (выплата средств, например, при скупке сырья или металлолома).
  4. 4 — Возврат расхода (возврат средств, ранее выплаченных по расходу).

Таким образом, для формирования чека на возврат прихода в процедуру открытия или формирования чека передается значение типа расчета 2.

Особенности старых редакций (Розница 2.0)

В устаревших конфигурациях (таких как ранние версии 1С:Розница 2.0) цепочка возврата не день в день исторически строилась через документы Возврат товаров от покупателя и последующий Расходный кассовый ордер без обращения к процедурам фискализации ККТ. Чтобы привести учет в соответствие с современными нормами, в коде документов или модулей интеграции с кассой необходимо вызывать процедуры печати фискального чека с признаком Возврат прихода.

Посмотрим на пример структуры вызова функции фискализации чека через БПО:


// Подготовка параметров фискального документа
ПараметрыОперации = Новый Структура;
ПараметрыОперации.Вставить("ТипРасчета", 2); // 2 - Возврат прихода

// Формирование и печать фискального чека
Результат = МенеджерОборудованияКлиент.СформироватьЧек(
    ИдентификаторУстройства,
    ПараметрыОперации,
    ТаблицаТоваров,
    ТаблицаОплат
);

Если взаимодействие с торговым оборудованием осуществляется через прямой COM-вызов драйвера производителя, логика остается аналогичной: перед регистрацией строк вызывается метод открытия чека, куда передается соответствующий целочисленный идентификатор типа чека возврата.

← На главную