Почему онлайн-касса печатает одну сумму, а в ОФД уходит другая при работе в 1С:УТ 10.3?

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

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

Анализ ситуации: механизм формирования чека при частичной оплате

Проанализируем механику взаимодействия 1С с кассовым аппаратом. Согласно требованиям ФФД (формата фискальных данных) версии 1.05 и выше, чек — это не просто «сумма к оплате», а сложная структура, состоящая из товарных позиций и способов их оплаты. Выясним причину расхождения сумм, разделив понятия «Стоимость товаров» и «Виды оплат».

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

Однако сумма, которую покупатель вносит в кассу «живыми» деньгами, может быть меньше. Рассмотрим, как касса распределяет эти 700 рублей в чеке:

  1. Товарная часть: Наименование товара — 1 шт. на сумму 700 руб.
  2. Платежная часть:
    • Наличными: 100 руб.
    • Предварительная оплата (Аванс/Зачет аванса): 600 руб. (если они были получены ранее по безналу).

В итоге в строке «ИТОГО» на бумажном чеке кассир видит 700 рублей, так как это общая стоимость переданных товаров. Но в ОФД в колонке «Сумма» часто отображается только фискальный признак платежа — то есть фактически поступившие в данный момент денежные средства (100 рублей наличными).

Разберем по шагам: влияние признака способа расчета

Посмотрим на пример того, как выбор Признака способа расчета в 1С влияет на итоговый результат. В конфигурации УТ 10.3 при печати чека из ПКО доступно несколько вариантов:

В рассматриваемой ситуации кассир добилась «нужного» (по её мнению) результата, выставив признак «Оплата кредита». Проанализируем ситуацию: в этом режиме касса считает, что товар на 700 рублей уже был отгружен ранее другим чеком с признаком «Передача в кредит», а сейчас происходит только гашение долга на 100 рублей. В таком чеке товарные позиции могут вообще не печататься или печататься информационно, а фискализируется только сумма 100 рублей. Это методологически неверно, если отгрузка происходит именно сейчас.

Проблема устаревших обработок обслуживания

Выясним техническую причину, почему 1С может некорректно передавать данные в драйвер Атол. В 1С:УТ 10.3 часто используются внешние обработки обслуживания (ТорговоеОборудование). Рассмотрим важный технический момент:

Если конфигурация обновлена до последних релизов, поддерживающих ФФД 1.05/1.2, а обработка обслуживания осталась старой (или используется старая версия компоненты fptr10.dll), происходит некорректное заполнение таблицы оплат. Старая компонента может не знать о таких тегах, как «Встречное предоставление» или «Сумма по предчеку».

В этом случае при попытке распечатать чек на 700 рублей с оплатой 100 рублей, драйвер может выдать ошибку «Сумма оплат меньше суммы чека», так как 1С не «объяснила» кассе, откуда взялись остальные 600 рублей. Программисту необходимо проверить код в процедурах формирования чека, например:


// Пример упрощенной логики заполнения оплат в драйвере
// Если сумма документа больше суммы платежа, остаток должен уходить в "Зачет аванса"
СуммаДокумента = 700;
СуммаНаличных  = 100;
СуммаАванса    = СуммаДокумента - СуммаНаличных;

// Передача в драйвер (объект ДрайверККТ)
ДрайверККТ.Summ1 = СуммаНаличных; // Оплата наличными
ДрайверККТ.Summ4 = СуммаАванса;   // Оплата предварительная (зачет аванса)

Как проверить, что уходит в ОФД на самом деле?

Рассмотрим порядок действий для проверки корректности данных без выезда на торговую точку:

  1. Зайдите в личный кабинет ОФД.
  2. Откройте конкретный чек и переключитесь в режим «Теги» или «JSON».
  3. Найдите Тег 1031 (Сумма наличными) и Тег 1215 (Сумма по предчеку / зачет аванса).
  4. Проверьте Тег 1020 (Общая сумма чека).

Если Тег 1020 равен 700, а Тег 1031 равен 100 — касса сработала абсолютно правильно. Расхождение в интерфейсе ОФД объясняется тем, что система отображает в списке транзакций только Сумму выручки (реальный приход денег), а не Оборот по товарам.

Инструкция по исправлению ситуации

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

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

Таким образом, «чудеса» с суммами — это стандартная работа кассы в рамках законодательства о ККТ, где разделяются товарный поток и денежный поток. Главное — следить за актуальностью программного обеспечения 1С и правильно выбирать признаки расчета в документах.

← На главную