При оформлении кассовых операций с предварительной оплатой, авансами или продажей товаров в кредит возникает необходимость передачи специальных признаков способа расчета. Рассмотрим подробнее, как корректно передавать признаки способа расчета (в частности, значения 5 — частичный расчет и кредит, 7 — передача в кредит) через драйвер ККТ Штрих-М из программы 1С, а также какие технические требования предъявляются к кассовому оборудованию.
Прежде всего проанализируем возможности формата фискальных документов. В устаревшем формате ФФД 1.0 печать чеков с признаками способа расчета (предоплата, аванс, кредит) официально не поддерживается. Разработчики Штрих-М подтверждают, что передача отдельных признаков способа и предмета расчета возможна только при использовании формата ФФД 1.05 или выше.
Для настройки работы ККТ по стандарту ФФД 1.05 выполним следующие действия:
2.В драйвере Штрих-М (начиная с версий 4.x) за передачу признака способа расчета (тег 1214 ФФД) отвечает свойство PaymentTypeSign. Выясним, какие цифровые значения соответствуют типам операций:
Обратим внимание на важную деталь: для корректного формирования чека недопустимо передавать только признак способа расчета. Требуется также передавать признак предмета расчета (тег 1212 ФФД) через свойство PaymentItemSign.
Разберем пример правильного сочетания параметров:
PaymentTypeSign в значение 1 или 2, а свойство PaymentItemSign — в значение 10 («Платеж» / «Аванс»).PaymentTypeSign = 4 («Полный расчет»), а PaymentItemSign = 1 («Товар») или 4 («Услуга»).Проанализируем два основных способа передачи данных из 1С на фискальный регистратор.
Если интеграция выполнена через прямое вызов методов драйвера, свойства позиции фискального документа устанавливаются перед вызовом метода регистрации продажи Sale() или метода FnSendItem2().
Посмотрим на пример кода 1С:
// Установка признака способа расчета (5 - Частичный расчет и кредит)
ОбъектДрайвера.PaymentTypeSign = 5;
// Установка признака предмета расчета (1 - Товар)
ОбъектДрайвера.PaymentItemSign = 1;
// Заполнение реквизитов товарной позиции
ОбъектДрайвера.StringForPrinting = "Ноутбук ASUS";
ОбъектДрайвера.Price = 50000;
ОбъектДрайвера.Quantity = 1;
ОбъектДрайвера.Department = 1;
ОбъектДрайвера.Tax1 = 1; // НДС 20%
// Регистрация позиции в чеке
ОбъектДрайвера.Sale();
При закрытии чека методами CloseCheck или FNCloseCheckEx необходимо корректно передать распределение сумм по видам оплаты через параметры Summ1...Summ16. Сопоставление номеров видов оплат (например, «Предварительная оплата», «Кредит») предварительно настраивается в Таблице № 5 ККТ («Типы оплат»).
В современных конфигурациях 1С прямое обращение к свойствам COM-объекта не требуется. Передача признаков выполняется через структурированный XML-пакет операции чека. Для каждой позиции чека заполняются атрибуты PaymentMethod (признак способа расчета) и PaymentSubject (признак предмета расчета). Драйвер 1С автоматически транслирует их в соответствующий формат команд ККТ.