Чек коррекции ФФД 1.2 + С# = печатает только наличку

1. tomsoer 25.01.24 11:17 Сейчас в теме
Здравствуйте!
Кто может подсказать, по чеку коррекции в ФФД 1.2 и библиотеке C#, передаю оплату безналом, но на чеке печатается наличка.

if (pay == 0)
{
   fptr.setParam(Constants.LIBFPTR_PARAM_PAYMENT_TYPE, Constants.LIBFPTR_PT_CASH);
   fptr.setParam(Constants.LIBFPTR_PARAM_PAYMENT_SUM, check_summa);
   fptr.payment();
}
else if(pay == 1)
{
   fptr.setParam(Constants.LIBFPTR_PARAM_PAYMENT_TYPE, Constants.LIBFPTR_PT_ELECTRONICALLY);
   fptr.setParam(Constants.LIBFPTR_PARAM_PAYMENT_SUM, check_summa); //sum
   fptr.payment();
}
Показать


Если логировать, видно что вызов идет на Constants.LIBFPTR_PT_ELECTRONICALLY

Пробовал на ДТО 10.9.5 и 10.10
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Torin 847 25.01.24 11:41 Сейчас в теме
(1)
Кто может подсказать, по чеку коррекции в ФФД 1.2

Формирование чека коррекции (ФФД 1.05) состоит из следующих операций:

открытие чека и передача реквизитов чека;
регистрация итога;
регистрация налогов на чек (необязательный пункт);
регистрация оплат (необязательный пункт);
закрытие чека;
проверка состояния чека.

Чеки коррекции
3. tomsoer 25.01.24 11:59 Сейчас в теме
(2) У меня даже не обязательные пункты включены

fptr.setParam(1021, "Го******* Н.М.");
fptr.setParam(1203, "34**********1");
fptr.operatorLogin();

//корректировка
fptr.setParam(1178, date);
fptr.setParam(1179, "00001");
fptr.utilFormTlv();
byte[] correctionInfo = fptr.getParamByteArray(Constants.LIBFPTR_PARAM_TAG_VALUE);
fptr.setParam(Constants.LIBFPTR_PARAM_RECEIPT_TYPE, Constants.LIBFPTR_RT_SELL_CORRECTION);
fptr.setParam(1173, 0);
fptr.setParam(1174, correctionInfo);

//СНО чека
fptr.setParam(1055, Constants.LIBFPTR_TT_PATENT);
//Открытие чека
fptr.openReceipt();

//Позиция чека
foreach (var item in check_grid)
{                       
   fptr.setParam(Constants.LIBFPTR_PARAM_COMMODITY_NAME, item.Item1);
   fptr.setParam(Constants.LIBFPTR_PARAM_PRICE, item.Item3);
   fptr.setParam(Constants.LIBFPTR_PARAM_QUANTITY, item.Item2);
   fptr.setParam(Constants.LIBFPTR_PARAM_TAX_TYPE, Constants.LIBFPTR_TAX_NO);
   fptr.setParam(Constants.LIBFPTR_PARAM_MEASUREMENT_UNIT, Constants.LIBFPTR_IU_PIECE);
   fptr.registration();
}

//Регистрация итога
fptr.setParam(Constants.LIBFPTR_PARAM_SUM, check_summa);
fptr.receiptTotal();
//регистрация оплаты
if (pay == 0)
{
   fptr.setParam(Constants.LIBFPTR_PARAM_PAYMENT_TYPE, Constants.LIBFPTR_PT_CASH);
}
if(pay == 1)
{
   fptr.setParam(Constants.LIBFPTR_PARAM_PAYMENT_TYPE, Constants.LIBFPTR_PT_ELECTRONICALLY);
}
fptr.setParam(Constants.LIBFPTR_PARAM_PAYMENT_SUM, check_summa);
fptr.payment();

//Закрытие чека
fptr.closeReceipt();
Показать
4. bx-perm 19.03.24 14:57 Сейчас в теме
Актуально. У меня такая же проблема.
Печатает через скрипт только Наличные. Нужно безнал сделать.

Fptr.setParam(1021, "Кассир"); //наименование кассира
Fptr.setParam(1203, "590********"); //ИНН кассира
Fptr.operatorLogin();
Fptr.setParam(1178, new Date("2024-03-19T00:00:00")); //дата время
Fptr.setParam(1177, "Служебная записка");
Fptr.utilFormTlv();
correctionInfo = Fptr.getParamByteArray(Fptr.LIBFPTR_PARAM_TAG_VALUE); Fptr.setParam(Fptr.LIBFPTR_PARAM_RECEIPT_TYPE, Fptr.LIBFPTR_RT_SELL_CORRECTION);
Fptr.setParam(1173, 0); //самостоятельно корректировка
Fptr.setParam(1174, correctionInfo);
Fptr.setParam(Fptr.LIBFPTR_PARAM_RECEIPT_ELECTRONICALLY, true); / Чтобы чек не печатался (электронный чек), нужно установить параметру LIBFPTR_PARAM_RECEIPT_ELECTRONICALLY значение true. */
Fptr.openReceipt();
Fptr.setParam(Fptr.LIBFPTR_PARAM_COMMODITY_NAME, " "); //товар
Fptr.setParam(Fptr.LIBFPTR_PARAM_PRICE, 3); //сумма
Fptr.setParam(Fptr.LIBFPTR_PARAM_QUANTITY, 1); //количество
Fptr.setParam(Fptr.LIBFPTR_PARAM_TAX_TYPE, Fptr.LIBFPTR_TAX_NO); // не облагается НДС
Fptr.setParam(2108, 0); //2108 Мера количества предмета расчета
Fptr.registration();
Fptr.setParam(Fptr.LIBFPTR_PARAM_PAYMENT_TYPE, Fptr.LIBFPTR_PT_ELECTRONICALLY); // нал - Fptr.LIBFPTR_PT_CASH, безнал - LIBFPTR_PT_ELECTRONICALLY
Fptr.setParam(Fptr.LIBFPTR_PARAM_PAYMENT_SUM, 0.00); //сумма расчета
Fptr.payment();
Fptr.setParam(Fptr.LIBFPTR_PARAM_SUM, 0.00); // полная сумма по чеку
Fptr.receiptTotal();
Fptr.closeReceipt();
5. bx-perm 19.03.24 15:41 Сейчас в теме
раобрался.

Fptr.setParam(Fptr.LIBFPTR_PARAM_PAYMENT_SUM, 0.00); //сумма расчета

Fptr.setParam(Fptr.LIBFPTR_PARAM_SUM, 0.00); // полная сумма по чеку

В этих тегах если сумму указать, то безнал будет. Если не указывать, то наличные.
Тег (Fptr.LIBFPTR_PARAM_PAYMENT_TYPE, Fptr.LIBFPTR_PT_ELECTRONICALLY) - игнорируется при этом
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот