Как пробить кассовый чек при безналичной оплате от физического лица в 1С:Управление торговлей 10.3?

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

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

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

Методология пробития чеков при безналичных расчетах

Проанализируем порядок действий при получении денег от физического лица на расчетный счет. Согласно нормам применения ККТ, процесс фискализации разделяется на два основных этапа:

  1. Этап 1. Поступление предоплаты (аванса). Чек формируется не позднее рабочего дня, следующего за днем получения банковской выписки (или момента расчета). Если на момент поступления денег товар еще не отгружен, выбивается чек на аванс.

    Параметры чека при поступлении оплаты:

    • Признак расчета: Приход;
    • Признак способа расчета: Предоплата (или Аванс);
    • Форма оплаты: Безналичными (электронными);
    • Номенклатура: Указывается конкретная номенклатура (если известен состав заказа) или сумма аванса.
  2. Этап 2. Отгрузка товара или оказание услуги. В момент передачи товара покупателю выбивается второй чек, закрывающий предоплату.

    Параметры чека при отгрузке:

    • Признак расчета: Приход;
    • Признак способа расчета: Полный расчет (или Частичный расчет и кредит);
    • Форма оплаты: Зачет аванса (ранее внесенные средства);
    • Номенклатура: Полный перечень отгружаемой продукции с указанием количества и цен.

Техническая реализация в 1С:Управление торговлей 10.3

Рассмотрим способы реализации этой схемы в программе 1С:Управление торговлей ред. 10.3.

Способ 1. Доработка документа «Платежное поручение входящее»

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

Выясним, как связать платежный документ с товарным составом:

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

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


// Пример логики подготовки данных для фискализации безналичного платежа
Функция СформироватьСтруктуруЧека(ДокументПлатежа) Экспорт

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

КонецФункции

Способ 2. Подключение внешней печатной формы (ВПФ)

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

  1. Создаем внешнюю обработку и подключаем ее в справочнике ВнешниеОбработки как печатную форму для документа ПлатежноеПоручениеВходящее.
  2. При вызове обработки из документа выводится диалоговое окно проверки данных (телефон или e-mail покупателя для отправки электронного чека).
  3. Обработка передает данные в штат Библиотеки Подключаемого Оборудования (БПО) или напрямую в драйвер ККТ (например, драйвер АТОЛ или Штрих-М).
  4. Фискальный чек пробивается с типом оплаты «Безналичными», а номер чека и фискальный признак возвращаются и записываются в комментарий или дополнительный реквизит документа.

Важные нюансы и законодательные ограничения

При организации работы с безналичными чеками от физлиц проанализируем следующие моменты:

← На главную