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

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

С введением требований 54-ФЗ и форматов фискальных данных (ФФД 1.05 и 1.2) процесс розничных и оптовых расчетов существенно усложнился. Одной из наиболее частых проблем, с которой сталкиваются пользователи и разработчики в программах 1С (в частности, в «1С:Комплексная автоматизация» редакций 1.1 и 2.4/2.5), является отсутствие номенклатуры в фискальном чеке при оформлении частичной оплаты. Например, когда общая сумма отгрузки составляет 10 000 рублей, а покупатель вносит только 5 000 рублей, программа часто сворачивает чек до одной строки «Аванс» без расшифровки товаров.

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

1. Законодательная логика: Разница между авансом, предоплатой и кредитом

Прежде чем переходить к настройкам в программе, давайте разберем требования ФНС. От того, какой признак способа расчета (ПСР) передается в кассу, зависит поведение чека:

  1. Аванс (ПСР «АВАНС»): Применяется в случаях, когда точный перечень товаров или услуг на момент получения денег еще не определен (например, покупка подарочного сертификата или внесение круглой суммы на баланс договора). В этом случае в чеке номенклатура не выводится, пишется общая сумма платежа и признак «Аванс».
  2. Предоплата (ПСР «ПРЕДОПЛАТА» или «ПРЕДОПЛАТА 100%»): Применяется, когда конкретный товар уже известен и зафиксирован в заказе, но сам товар клиенту еще не отгружен. В таком чеке номенклатура обязательна.
  3. Частичный расчет и кредит (ПСР «ЧАСТИЧНЫЙ РАСЧЕТ И КРЕДИТ»): Применяется, если товар передается покупателю непосредственно в момент оплаты, но оплачивается частично. В чеке выводится вся номенклатура на полную стоимость (например, на 10 000 руб.), при этом сумма оплаты распределяется по двум строкам: фактически внесенные средства (наличные/безналичные — 5 000 руб.) и сумма долга (строка «Кредит» / «Постоплата» — 5 000 руб.).
  4. Оплата кредита (ПСР «ОПЛАТА КРЕДИТА»): Оформляется вторым чеком, когда клиент приносит оставшиеся деньги. В этом чеке номенклатура может не детализироваться (в зависимости от настроек выводится признак предмета расчета «Платеж»).

2. Настройка и решение проблемы в «1С:Комплексная автоматизация 1.1»

В старых конфигурациях на обычных формах (таких как «КА 1.1» и «УПП 1.3») алгоритм печати чеков из документа ПриходныйКассовыйОрдер (ПКО) имеет свои особенности. Рассмотрим по шагам, как добиться вывода номенклатуры.

Шаг 1. Обновление конфигурации. Если ваша база не обновлялась долгое время, в ней физически отсутствует нужный функционал. Возможность выбора типа оплаты в ПКО и корректная передача кредитной части на кассу появилась только начиная с релиза 1.1.87.2 (выпущенного в июле 2017 года). Убедитесь, что релиз вашей конфигурации актуален.

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

Шаг 3. Проверка связи документов. Программа 1С не сможет определить номенклатурный состав, если ПКО оформлен «сам по себе». В документе ПКО обязательно должен быть выбран документ-расчетов (основание) — например, РеализацияТоваровУслуг или СчетНаОплату. Если связь утеряна или не заполнена, система автоматически классифицирует платеж как нецелевой «Аванс» и скроет номенклатуру.

Шаг 4. Контроль ставок НДС. Код обработки печати чека в «КА 1.1» сопоставляет общую сумму платежа со ставками НДС в документе реализации. Если в одной накладной находятся товары с разными ставками НДС (например, 20% и 10%), а оплата вносится частично одной суммой без разбивки по позициям, алгоритм 1С не может самостоятельно пропорционально распределить копейки НДС. В такой ситуации программа «сбрасывает» печать товарных позиций и бьет чек как обычный «Аванс». Для решения этой проблемы требуется либо разделять документы отгрузки по ставкам НДС, либо дорабатывать распределение НДС в коде конфигурации.

3. Почему на эмуляторе номенклатура выводится, а на кассе нет?

Проанализируем техническую ситуацию: при тестировании на встроенном в 1С «Эмуляторе ККТ» чек формируется корректно и содержит всю номенклатуру, но при выводе на реальный фискальный регистратор (например, АТОЛ или ШТРИХ-М) список товаров пропадает.

Причина кроется в цепочке взаимодействия «Платформа 1С -> Драйвер ККТ -> Прошивка кассы»:

4. Как настроить частичную оплату в «1С:Комплексная автоматизация 2.4 / 2.5»

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

Рассмотрим две основные схемы работы:

Схема «Предоплата — Отгрузка»:

  1. Клиент делает заказ и вносит частичную предоплату. Оформляется документ ПоступлениеБезналичныхДС или ПКО на основании ЗаказКлиента.
  2. При пробитии чека из платежного документа формируется чек с признаком способа расчета «Предоплата». В чеке указывается номенклатура из заказа пропорционально сумме полученных денег.
  3. При фактической передаче товара оформляется РеализацияТоваровУслуг. При печати чека из реализации 1С автоматически подставляет ПСР «Полный расчет». В нем выводится вся номенклатура, а ранее внесенная предоплата отражается в строке «Зачет аванса» (или «Предоплатой»).

Схема «Отгрузка — Постоплата (Кредит)»:

  1. Оформляется РеализацияТоваровУслуг (например, на 10 000 руб.), при этом клиент прямо на месте оплачивает 5 000 руб., а остаток обязуется вернуть позже.
  2. В чеке, пробиваемом непосредственно из реализации, 1С установит признак «Частичный расчет и кредит». В кассу отправится вся номенклатура на сумму 10 000 руб., способ оплаты наличными/безналичными составит 5 000 руб., а оставшиеся 5 000 руб. пройдут по типу оплаты «Кредит» (постоплата).
  3. При окончательном расчете создается ПКО на оставшиеся 5 000 руб. с признаком «Оплата кредита».

5. Альтернативные способы реализации (для нетиповых или старых баз)

Если ваша база «КА 1.1» сильно доработана и обновить ее до актуального релиза не представляется возможным, рассмотрим альтернативные варианты решения задачи:

Вариант А. Пропорциональное уменьшение количества товаров в чеке.
Этот способ заключается в программном пересчете количества номенклатуры в XML-пакете, отправляемом на ККТ. Если клиент платит ровно половину суммы, внешняя обработка кассы делит количество каждого товара на 2 (например, вместо 1 шт. передается 0.5 шт.), а признак способа расчета устанавливается как «Полный расчет».
Важно помнить: у данного способа есть существенные юридические риски. Если вы продаете неделимый товар (например, одну услугу, одну единицу мебели или одну бутылку воды), передача в чек дробного количества (0.5 шт.) может вызвать логичные вопросы со стороны проверяющих органов ФНС.

Вариант Б. Использование внешних обработок обслуживания ККТ.
Для обхода ограничений типового кода 1С можно использовать кастомные интеграционные обработки (например, специализированные решения с профильных порталов). Такие обработки перехватывают табличную часть документа расчетов перед отправкой на печать и сами формируют корректную XML-структуру для драйвера ККТ. Они автоматически разбивают оплату, выделяют НДС для каждой позиции и корректно регистрируют строки «Кредит» / «Постоплата» на фискальном накопителе.

Посмотрим на пример упрощенного алгоритма формирования структуры XML для передачи в драйвер ККТ при частичной оплате:


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

// Заполнение позиций номенклатуры по полной стоимости
Для Каждого СтрокаТовара Из ТаблицаТоваров Цикл
    Позиция = Новый Структура;
    Позиция.Вставить("Наименование", СтрокаТовара.Номенклатура.Наименование);
    Позиция.Вставить("Количество", СтрокаТовара.Количество);
    Позиция.Вставить("Цена", СтрокаТовара.Цена);
    Позиция.Вставить("Сумма", СтрокаТовара.Сумма); // Полная стоимость позиции
    Позиция.Вставить("СтавкаНДС", СтрокаТовара.СтавкаНДС);
    // Добавление позиции в пакет для ККТ...
КонецЦикла;

Таким образом, для успешного вывода номенклатуры при частичной оплате необходимо обеспечить три условия: актуальный релиз программы, поддерживающий ПСР «Частичный расчет и кредит», правильно заполненный документ-основание в ПКО для считывания товарного состава, и современный драйвер ККТ с поддержкой протоколов ФФД 1.05/1.2.

← На главную