Как выгружать номенклатуру в кассовый чек из ПКО в 1С:Комплексная автоматизация 1.1 по 54-ФЗ?

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

С вступлением в силу требований Федерального закона № 54-ФЗ оптовые и производственные организации столкнулись с задачей вывода подробной номенклатуры в кассовые чеки при расчетах с покупателями наличными деньгами. В типовой конфигурации «1С:Комплексная автоматизация 1.1» (а также в аналогичной по архитектуре «1С:Управление производственным предприятием 1.3») документ ПриходныйКассовыйОрдер исторически не содержит товарной табличной части, что вызывает резонный вопрос: каким образом номенклатурные позиции должны попадать на фискализацию при пробитии чека по кнопке «Чек».

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

1. Настройка торгового оборудования: Фискальный регистратор или ККТ с передачей данных

Первое, на что необходимо обратить внимание при подключении кассового аппарата (например, устройств Атол, Штрих-М и др.), — это правильный выбор типа оборудования в справочнике подключаемого оборудования. Проанализируем программный код документа ПКО:

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

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

  1. Открываем список торгового оборудования конфигурации.
  2. При создании нового экземпляра ККТ в перечислении видов оборудования обязательно выбираем «ККТ с передачей данных», а не «Фискальный регистратор».
  3. Указываем актуальный драйвер производителя кассы и проверяем связь с кассовым аппаратом.

Именно выбор типа «ККТ с передачей данных» активирует ветку алгоритма, которая готовит расширенный состав фискальных реквизитов, включая номенклатуру, ставку НДС и признаки способа расчета.

2. Откуда программа берет состав номенклатуры для чека

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

Посмотрим на порядок поиска источника позиций, реализованный разработчиками 1С:

  1. Программа обращается к реквизитам строк расшифровки платежа с видом операции ОплатаОтПокупателя.
  2. Если в строке заполнен реквизит ДокументРасчетовСКонтрагентом (например, РеализацияТоваровУслуг), программа берет состав номенклатуры, количество, цены и ставки НДС напрямую из табличной части этой реализации.
  3. Если документ расчетов не указан, но заполнена Сделка (например, ЗаказПокупателя), данные считываются из табличной части заказа. Если указаны и сделка, и документ расчетов, приоритет отдается документу расчетов.

Важное ограничение типового механизма: необходимым условием успешного чекопечатания в базовой реализации является совпадение общей суммы оплаты и ставки НДС в разрезе документа расчетов или сделки. Типовой механизм рассчитан на полную оплату документа «один к одному».

3. Проблема частичной оплаты: методология 54-ФЗ и доработка конфигурации

В оптовой торговле оплата накладных редко происходит сразу и целиком. При частичной оплате стандартный алгоритм КА 1.1 выдает ошибку о несовпадении сумм либо не может сопоставить строки накладной с суммой поступивших денежных средств. Рассмотрим два возможных пути решения этой задачи.

Вариант А: Использование признака «Оплата кредита» (без разбивки на товары)

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

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

Вариант Б: Алгоритм последовательного закрытия строк реализации

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

  1. Получаем сумму документа ПКО.
  2. Обходим строки документа РеализацияТоваровУслуг сверху вниз.
  3. Если текущий остаток неоплаченной суммы ПКО больше либо равен сумме строки накладной, строка включается в чек полностью. Из остатка суммы ПКО вычитается сумма строки.
  4. Если остаток суммы ПКО меньше стоимости следующей позиции накладной, эта позиция разбивается: рассчитывается допустимое количество или выделяется сумма частичной оплаты по данной строке на остаток средств, после чего цикл завершается.

// Пример алгоритма пропорционального/последовательного распределения суммы
ОстатокСуммыДляЧека = СуммаДокумента;
Для Каждого СтрокаТЧ Из ТаблицаТоваровРеализации Цикл
    Если ОстатокСуммыДляЧека <= 0 Тогда
        Прервать;
    КонецЕсли;

    СтрокаЧека = ДанныеЧека.Добавить();
    СтрокаЧека.Номенклатура = СтрокаТЧ.Номенклатура;
    СтрокаЧека.СтавкаНДС    = СтрокаТЧ.СтавкаНДС;

    Если СтрокаТЧ.Сумма <= ОстатокСуммыДляЧека Тогда
        СтрокаЧека.Количество = СтрокаТЧ.Количество;
        СтрокаЧека.Сумма      = СтрокаТЧ.Сумма;
        СтрокаЧека.Цена       = СтрокаТЧ.Цена;
        ОстатокСуммыДляЧека   = ОстатокСуммыДляЧека - СтрокаТЧ.Сумма;
    Иначе
        // Частичное покрытие текущей товарной позиции
        СтрокаЧека.Сумма      = ОстатокСуммыДляЧека;
        СтрокаЧека.Количество = 1; // Либо вычисляется доля количества
        СтрокаЧека.Цена       = ОстатокСуммыДляЧека;
        ОстатокСуммыДляЧека   = 0;
    КонецЕсли;
КонецЦикла;

4. Особенности расчетов наличными между юридическими лицами (B2B)

Оформляя расчеты с организациями и ИП через ПКО, необходимо строго учитывать законодательные ограничения:

  1. Лимит расчетов наличными: указанием ЦБ РФ установлен предел расчетов наличными деньгами в размере 100 000 рублей по одному договору. Разбивать одну сделку на несколько чеков в рамках одного договора нельзя — это влечет штрафные санкции.
  2. Теги покупателя: при расчетах между юридическими лицами в кассовом чеке обязательно должны быть переданы реквизиты покупателя: наименование организации или ИП (тег 1227) и ИНН (тег 1228). В типовой конфигурации КА 1.1 поддержка передачи этих тегов для старых обработок обслуживания ККТ отсутствует, поэтому требуется либо модернизация модуля взаимодействия с драйвером ККТ, либо интеграция современной «Библиотеки подключаемого оборудования» (БПО).

5. Пакетная печать чеков («скопом»)

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

← На главную