Как разделить оплату по эквайрингу и прямые поступления на расчетный счет в Z-отчете ККТ?

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

При ведении розничной и оптовой торговли часто возникает ситуация, когда клиенты оплачивают товары разными безналичными способами. Одни рассчитываются картой через POS-терминал на кассе (эквайринг), другие — переводят денежные средства напрямую на расчетный счет организации через банк (например, по квитанции или через мобильное приложение). В программе 1С:Управление торговлей (редакция 11) обе эти операции регистрируются как безналичные оплаты. При пробитии чеков на кассовом аппарате (ККТ) в обоих случаях выводится тип оплаты "БЕЗНАЛИЧНЫМИ".

В результате при снятии Z-отчета (отчета о закрытии смены) и в личном кабинете ОФД все эти суммы суммируются в один общий итог. Бухгалтеру становится крайне сложно сверять фактически поступившие на расчетный счет деньги со сменными отчетами ККТ. Выясним, почему возникает эта проблема, и разберем пошагово, как настроить раздельный учет этих оплат на ККТ и в программе 1С.

Почему ОФД и ККТ объединяют эквайринг и расчетный счет?

Проанализируем требования нормативной базы. Согласно Федеральному закону № 54-ФЗ и действующим форматам фискальных документов (ФФД 1.05, 1.1, 1.2), кассовый аппарат поддерживает строго ограниченное количество фискальных признаков способов оплаты. В ОФД и ФНС передается только 5 базовых типов оплаты:

  1. Наличными (тег 1031)
  2. Безналичными (тег 1081, в старых прошивках именовался как «Электронными»)
  3. Предоплата (аванс) (тег 1215)
  4. Постоплата (кредит) (тег 1216)
  5. Иная форма оплаты / Встречное предоставление (тег 1217)

С точки зрения законодательства, и оплата банковской картой через POS-терминал, и оплата по QR-коду через СБП, и платежное поручение от физического лица на расчетный счет — все это относится исключительно к тегу 1081 "Безналичными". Именно поэтому разделить их на уровне ОФД или стандартных типов оплаты ККТ невозможно. Любое переименование типов оплат в таблицах ККТ не даст результата для фискального отчета: драйвер кассы все равно передаст эти транзакции под одним безналичным тегом.

Тем не менее, решить задачу локального разделения итогов для бухгалтерии возможно. Для этого мы применим механизм секций (отделов) ККТ. Мы настроим ККТ таким образом, чтобы при закрытии смены распечатывался дополнительный отчет по отделам, а в 1С доработаем передачу номера отдела в зависимости от типа первичного документа.

---

Шаг 1. Настройка секций (отделов) в ККТ ШТРИХ-М

Рассмотрим порядок настройки кассового аппарата на примере популярного фискального регистратора ШТРИХ-М-01Ф. Нам необходимо запрограммировать названия отделов и включить печать отчета по отделам при закрытии смены.

  1. Подключим ККТ к компьютеру и запустим утилиту "Тест драйвера ФР" (версии 4.14 / 4.15 или актуальной 5.x).
  2. Установим связь с кассовым аппаратом. В меню перейдем в раздел "Настройка свойств" и откроем кнопку "Таблицы".
  3. Найдем Таблицу № 2 "Отделы". Запрограммируем в ней два отдела:
    • Отдел 1 — назовем его Розница / Эквайринг;
    • Отдел 2 — назовем его Оплата на Р/С (для чеков из документов поступления безналичных ДС).
  4. Сохраним изменения в таблице отделов.
  5. Теперь перейдем в Таблицу № 1 "Тип и режимы ККМ". Найдем параметр, отвечающий за расширенный отчет закрытия смены (в зависимости от прошивки это может быть поле Печать отчета по отделам или аналогичное). Установим значение этого параметра в положение "Включено".

После выполнения этих настроек ККТ при закрытии смены (Z-отчете) или при снятии X-отчета будет автоматически выводить на чековую ленту подробную «портянку» с итогами продаж отдельно по Отделу 1 и Отделу 2. Теперь перейдем к доработке программы 1С, чтобы она научилась правильно распределять продажи по этим отделам.

---

Шаг 2. Доработка программы 1С:Управление торговлей 11

По умолчанию 1С отправляет все чеки на одну дефолтную секцию (как правило, это Секция 1 или 0). Нам нужно сделать так, чтобы при пробитии чека из документа "Поступление безналичных ДС" программа отправляла данные на Секцию 2, а при розничной продаже через "Чек ККМ" или "Эквайринговую операцию" — на Секцию 1.

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

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


&Вместо("СформироватьПакетЧека")
Функция Мой_СформироватьПакетЧека(ДокументСсылка, ПараметрыОтправки)
    
    // Вызываем стандартный механизм формирования пакета
    ПакетЧека = ПродолжитьВызов(ДокументСсылка, ПараметрыОтправки);
    
    // Определяем номер отдела (секции) на основе типа документа-основания
    НомерОтдела = 1; // По умолчанию отправляем на розничную секцию
    
    Если ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПоступлениеБезналичныхДенежныхСредств") Тогда
        НомерОтдела = 2; // Перевод напрямую на расчетный счет
    КонецЕсли;
    
    // Модифицируем XML-структуру пакета, прописывая Department в позиции
    Если ПакетЧека.Свойство("Positions") Тогда
        Для Каждого Позиция Из ПакетЧека.Positions Цикл
            Позиция.Вставить("Department", НомерОтдела);
        КонецЦикла;
    КонецЕсли;
    
    Возврат ПакетЧека;
    
КонецФункции

Проанализируем логику работы этого кода. При вызове команды печати чека система определяет тип документа-основания ДокументСсылка. Если инициатором печати выступает документ ПоступлениеБезналичныхДенежныхСредств, переменной НомерОтдела присваивается значение 2. Затем код обходит коллекцию товарных позиций Positions в структуре чека и принудительно устанавливает атрибуту Department значение нашей целевой секции.

На уровне XML-пакета, передаваемого в драйвер кассы, строка позиции товара примет следующий вид:

<Position Name="Оплата за товар" Price="15000.00" Quantity="1" Department="2" ... />

---

Шаг 3. Проверка результатов и сверка

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

  1. Оформим розничную продажу и примем оплату по карте через эквайринг. Пробьем чек. В ККТ эта транзакция запишется по Секции 1.
  2. Оформим документ "Поступление безналичных ДС" от физического лица, оплатившего покупку через банк. Нажмем ссылку "Пробить чек". В ККТ эта транзакция запишется по Секции 2.
  3. Снимем X-отчет на ККТ через обработку обслуживания или через тест драйвера. На чековой ленте мы увидим раздельные блоки:
    • Отдел 1 (Розница / Эквайринг): Сумма безналичных оплат;
    • Отдел 2 (Оплата на Р/С): Сумма безналичных оплат через банк.

При закрытии смены (Z-отчете) кассир получит бумажную ленту, на которой будут четко разграничены эти два финансовых потока. Бухгалтер сможет легко сопоставить общую сумму по Отделу 2 с банковской выпиской по расчетному счету за день, а сумму по Отделу 1 — с отчетом банка-эквайера по терминальным транзакциям.

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

← На главную