Как при предоплате в 1С:УТ 11 печатать короткий чек без списка всех товаров

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

При работе в 1С:Управление торговлей 11 пользователи часто сталкиваются с проблемой: при получении предоплаты по заказу, в котором содержатся десятки или сотни позиций, онлайн-касса печатает огромный чек. Это не только приводит к нерациональному расходу чековой ленты, но и замедляет процесс обслуживания клиентов. В этой статье мы разберем, как оптимизировать печать чеков при предоплате и можно ли законно печатать «короткий» чек одной строкой.

Разберем причину: почему 1С выводит все товары?

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

  1. Предоплата частичная или 100%: согласно правилам, если на момент оплаты перечень товаров известен и зафиксирован в документе-основании (например, в Заказе клиента), в чеке обязательно должны быть указаны наименования всех позиций, их количество и цена. 1С видит состав заказа и «разворачивает» его в чеке.
  2. Аванс: этот признак используется, когда точный перечень товаров еще не определен (например, клиент просто вносит деньги на баланс). В этом случае в чеке печатается одна строка «Аванс» и общая сумма.

Рассмотрим подробнее способы, которые позволяют добиться сокращения чека в 1С:УТ 11.

Решение 1: Переход на расчеты по договорам

Самый эффективный и штатный способ сократить чек — изменить объект расчетов. Если в качестве объекта расчетов выступает не Заказ клиента, а Договор, система не привязывает платеж к конкретному списку товаров в момент печати чека.

Посмотрим на алгоритм действий:

  1. Откроем карточку договора с контрагентом.
  2. На вкладке «Расчеты» установим переключатель «Детализация расчетов» в положение «По договорам».
  3. При создании документа оплаты (Приходный кассовый ордер или Эквайринговая операция) в поле «Объект расчетов» выберем именно этот договор.

В этом случае при пробитии чека 1С сформирует одну строку с обобщенным наименованием (например, «Оплата по договору №...»), так как состав товаров не «подтягивается» из конкретного заказа. Это позволяет значительно сэкономить ленту.

Решение 2: Настройка учетной политики (для новых версий УТ 11)

В современных релизах 1С:Управление торговлей 11.4 и выше реализованы дополнительные настройки управления детализацией чеков. Проанализируем, как ими воспользоваться:

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

Решение 3: Изменение признака способа расчета вручную

Если вы делаете Приходный кассовый ордер на основании Заказа клиента, 1С по умолчанию устанавливает признак «Предоплата». Вы можете попробовать вручную изменить этот признак на «Аванс» непосредственно в форме подготовки чека (если это позволяет релиз и настройки драйвера).

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

Решение 4: Техническая доработка через расширение

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

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


// Пример логики в расширении (общий модуль МенеджерОборудованияВызовСервера)
&Вместо("СформироватьДанныеЧека")
Процедура И_СформироватьДанныеЧека(ПараметрыЧека, ДанныеЧека)
    // Если сумма большая и это предоплата, заменим таблицу товаров одной строкой
    Если ПараметрыЧека.ПризнакСпособаРасчета = Предоплата Тогда
        НоваяТаблицаТоваров = Новый ТаблицаЗначений;
        // ... инициализация колонок (Наименование, Количество, Цена, Сумма, СтавкаНДС)
        НоваяСтрока = НоваяТаблицаТоваров.Добавить();
        НоваяСтрока.Наименование = "Предоплата по заказу №" + ПараметрыЧека.НомерОснования;
        НоваяСтрока.Количество = 1;
        НоваяСтрока.Цена = ПараметрыЧека.СуммаДокумента;
        НоваяСтрока.Сумма = ПараметрыЧека.СуммаДокумента;
        // Подменяем данные перед отправкой на кассу
        ДанныеЧека.Товары = НоваяТаблицаТоваров;
    КонецЕсли;
КонецПроцедуры

Внимание: подобные изменения требуют осторожности. При использовании маркируемых товаров (система «Честный Знак») такая подмена может привести к нарушению правил передачи кодов маркировки в ОФД, если закон требует их указания уже на этапе предоплаты.

Юридические риски и рекомендации

Выясним, насколько законно использование «Аванса» вместо «Предоплаты». С точки зрения налоговой инспекции:

Однако на практике, для заказов с огромным количеством позиций, многие компании используют авансовую схему, чтобы не печатать «портянки» по 2 метра длиной. Главное условие — при окончательном расчете и передаче товара пробить второй чек со всеми позициями и зачетом ранее внесенного аванса.

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

← На главную