Почему в чеке ККМ из ПКО не те товары, что в реализации, при расчетах "по договору" в УТ 11.5?

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

При работе в "1С:Управление торговлей 11.5" пользователи часто сталкиваются с ситуацией, когда при создании документа Приходный кассовый ордер (ПКО) на основании Реализации товаров и услуг и последующем пробитии чека, номенклатурный состав в чеке не соответствует товарам из этой конкретной реализации. Вместо них в чек попадают товары из предыдущих неоплаченных отгрузок этому же клиенту, которые можно отследить, сформировав реестр платежей и просроченных оплат. Давайте подробно разберемся, почему так происходит и как это исправить, не меняя ключевые настройки взаиморасчетов.

Анализ проблемы: почему система подставляет "старые" товары?

Корень проблемы кроется в настройках детализации расчетов с клиентом, которые задаются в соглашении или договоре. Если установлен вариант "Расчеты по договорам", система воспринимает все операции в рамках одного договора как единый поток взаиморасчетов. Чтобы наглядно увидеть текущую структуру долгов и прибыли, рекомендуется регулярно проводить анализ продаж и взаиморасчетов по контрагентам.

Когда вы создаете ПКО и принимаете оплату, программа не знает, что эти деньги предназначены для конкретной новой накладной. Вместо этого она действует по принципу ФИФО (FIFO — First In, First Out). Система видит общую задолженность клиента по договору и направляет поступившую оплату на погашение самых ранних неоплаченных отгрузок. Чтобы детально разобраться, как программа распределила суммы, можно использовать отчет по анализу продаж и оплат по объектам расчётов. Соответственно, именно из этих старых отгрузок и формируется товарный состав для фискального чека.

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

Если изменить детализацию расчетов на "Расчеты по накладным", проблема исчезнет. Но что делать, если менять условия договора нельзя? Рассмотрим несколько способов решения с помощью доработки конфигурации.

Решение 1: Переопределение параметров чека перед печатью (Рекомендуемый способ)

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

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

Разберем по шагам, как это реализовать:

  1. Создание расширения. Чтобы изменения не слетели при обновлении.
  2. Определение точки вмешательства. Обычно логика находится в общем модуле УправлениеФискальнымОборудованием.
  3. Написание кода в расширении. Используя аннотации &Вместо или &После, мы вмешиваемся в работу процедуры:
    • Проверяем, что документ-основание — это нужная нам Реализация товаров и услуг.
    • Очищаем таблицу ПараметрыЧека.Товары, заполненную системой по ФИФО.
    • Заполняем её данными напрямую из табличной части реализации (номенклатура, цена, ставка НДС).

Преимущества: сохранение целостности учета и безопасность (мы не меняем логику проведения самих документов).

Решение 2: Печать чека напрямую из документа реализации

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

Решение 3: Доработка логики заполнения ПКО (Менее предпочтительный)

Этот способ заключается в добавлении в ПКО новой табличной части "ТоварыДляЧека", которая заполняется при создании на основании реализации. Однако это усложняет типовой объект и может вызвать трудности при обновлениях.

Временное ручное решение: Корректировка долга

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

Последовательность действий:

  1. Перед созданием ПКО создается Корректировка долга.
  2. В ней производится зачет аванса на конкретную реализацию.
  3. После этого создается ПКО и пробивается чек — система увидит, что старые долги урегулированы, и возьмет товары из нужной реализации.

Этот метод трудоемок и подходит только для разовых исправлений ситуации.

← На главную