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