Как пробить нулевой чек или оформить 100% скидку в 1С:Розница?

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

В процессе розничной торговли нередко возникают ситуации, когда покупателю передается товар или оказывается услуга без взимания платы. Это может быть бесплатный упаковочный пакет, подарок по маркетинговой акции, замена бракованной SIM-карты у сотового оператора или бесплатная сервисная услуга. При попытке оформить такую операцию через рабочее место кассира (РМК) пользователи сталкиваются с жестким ограничением: система не дает провести документ и распечатать чек на фискальном регистраторе с нулевой суммой или со скидкой 100%.

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

Причины блокировки нулевых продаж на программном и аппаратном уровне

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

  1. Проверки в конфигурации 1С. В метаданных табличной части документа ЧекККМ и сопутствующих регистров реквизиты Цена и Сумма имеют строгий контроль заполнения. При попытке провести документ со значением «0» срабатывает типовой отказ записи. Кроме того, в коде экранных форм интерфейса кассира заложена проверка: общая сумма к оплате обязана быть строго больше нуля, иначе переход к окну закрытия чека и вызов фискализации блокируются.
  2. Ограничения в фискальных регистраторах. Большинство кассовых аппаратов (например, линейки ШТРИХ-М, АТОЛ/FPrint) по умолчанию запрещают продажу по нулевой цене. В таблицах параметров ККМ существует специальный флаг блокировки нулевых цен, который предотвращает случайные ошибки кассиров.
  3. Требования законодательства к расчетам. С точки зрения закона (в частности, 54-ФЗ), фискализация требуется исключительно в момент совершения расчетов (передача денег, безналичных средств, зачет аванса или встречное предоставление). Безвозмездная передача товара расчетом не является, поэтому кассовый аппарат в такой ситуации использовать не требуется.

Способ 1. Использование минимальной цены и округления чека

Рассмотрим самый простой обходной путь без изменения типовой конфигурации. Этот метод идеально подходит для ситуаций, когда нулевой товар (например, пакет) выдается вместе с основной покупкой.

  1. Установим в справочнике номенклатуры для подарочного товара или пакета минимальную цену, равную 0.01 руб. (1 копейка).
  2. Настроим в правилах маркетинга округление суммы чека в пользу покупателя до целого рубля.
  3. Посмотрим на результат: если клиент покупает товар стоимостью 100 рублей и берет пакет за 1 копейку, общая сумма к оплате составляет 100.01 рублей. За счет автоматического механизма округления итоговая сумма к оплате сбрасывается обратно до 100 рублей. В результате пакет списывается со склада, чек успешно фискализируется, а покупатель не переплачивает.

Способ 2. Настройка параметров фискального регистратора

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

  1. Запустим утилиту «Тест драйвера ККТ» (для аппаратов ШТРИХ или АТОЛ).
  2. Перейдем в раздел настройки таблиц оборудования. Для касс семейства «ШТРИХ» найдем таблицу параметров работы кассира и снимем признак «Запрет продажи по нулевой цене».
  3. Для аппаратов FPrint проверим настройки драйвера: в свойствах службы печати убедимся, что драйвер позволяет закрывать чек при итоговой нулевой сумме.

Способ 3. Корректировка алгоритмов формы «ЧекККМ» в 1С

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


// В модуле формы документа ЧекККМ при обработке команды пробития:
Если Оплата.Количество() = 0 Тогда
    // Изменяем алгоритм проверки нулевой суммы,
    // чтобы передать управление на фискализацию при 100% скидке
    ПриИзмененииСуммыОплаты();
КонецЕсли;

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

Способ 4. Оформление через встречное предоставление или списание

Если обойтись без сомнительных доработок кода, проанализируем правильные регламентные способы отражения таких операций:

  1. Списание на собственные или маркетинговые нужды. Для выдачи бесплатных сим-карт, раздачи рекламных образцов или упаковки правильнее не использовать документ ЧекККМ. Фактическое выбытие позиций со склада оформляется документом Списание товаров или Внутреннее потребление товаров с отнесением затрат на соответствующую статью расходов компании.
  2. Печать нефискального документа. Если клиенту необходимо выдать бумажный документ, подтверждающий оказание бесплатной услуги, выведем на печать обычный Товарный чек через принтер документов без отправки фискальных команд в кассовый накопитель.
  3. Оплата встречным предоставлением. При использовании программ лояльности, где накопленные баллы дают скидку 100%, позиция закрывается признаком оплаты «Встречное предоставление», что является корректным форматом с точки зрения фискальных требований.
← На главную