Почему при пробитии чека в УПП 1.3 сумма оплаты двоится или отображается неверно?

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

При работе с кассовым оборудованием в конфигурации УПП 1.3 пользователи часто сталкиваются с ситуацией, когда при частичной оплате в чеке печатается полная сумма сделки (кредит + нал) вместо фактически внесенной суммы. Давайте разберемся, почему 1С так себя ведет и как исправить эту проблему.

Разбор механизма формирования чека

Основная причина заключается в том, как 1С интерпретирует требования 54-ФЗ и ФФД 1.05. Система анализирует состояние взаиморасчетов по контрагенту. Если документ Приходный кассовый ордер (ПКО) привязан к реализации, 1С видит общую задолженность. Когда вы пытаетесь пробить чек, конфигурация может автоматически подставлять сумму всей сделки, разделяя её на наличные и постоплату (кредит).

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

Пошаговое решение проблемы

  1. Проанализируйте документы-основания: Убедитесь, что Приходный кассовый ордер создан на основании корректного документа реализации. Проверьте, не является ли общая сумма документа слишком большой для текущей операции.
  2. Проверка вида оплаты: Рассмотрите настройки обработки обслуживания ККТ. Часто именно в коде внешней обработки (в модуле формирования пакета для драйвера АТОЛ) прописано автоматическое заполнение суммы кредита исходя из остатка долга по контрагенту.
  3. Использование корректировки долга: Если в системе «висят» старые реализации, которые не были закрыты, 1С будет привязывать их к новому платежу. Разберитесь с взаиморасчетами, используя документ Корректировка долга, чтобы система видела актуальное состояние дебиторской задолженности.

Технические нюансы для программиста

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

При формировании XML-пакета для кассы, который передается через драйвер ДТО 9.12, важно правильно заполнить теги:


// Примерный алгоритм проверки суммы в обработке обслуживания:
СуммаНаличными = Объект.СуммаДокумента;
СуммаКредит = 0; // Должна соответствовать фактической оплате
Если ЭтоПостоплата Тогда
    СуммаКредит = СуммаНаличными;
    СуммаНаличными = 0;
КонецЕсли;
// Убедитесь, что метод передачи параметров в драйвер не подставляет ОстатокДолга

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

Рекомендации по ФФД 1.05

Разберем основные признаки способа расчета, которые должны передаваться в чек:

Если в чеке отображается 2000 вместо 1000, значит, в фискальном документе сумма сделки (кредит) ошибочно дублирует текущую оплату. Вам нужно добиться того, чтобы 1С передавала в ККТ только ту сумму, которая была фактически внесена в кассу в момент печати чека. Проанализируйте, какие параметры передаются в метод СформироватьЧек вашей обработки. Если в параметрах передается СуммаСделки вместо СуммаПлатежа, это и есть причина ошибки.

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

← На главную