Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Два вида оплат
Форумы общения пользователей продуктов АТОЛ > FPrint, EasyPOS Lite, Феликс, Бастион, Торнадо, Flaton > ФЕЛИКС-Р Ф
MuMu
Если покупатель рассчитывается обновременно пластиковой карточкой и наличными, необходимо , чтобы печаталось НАЛИЧНЫМИ 1000, П.Картой 200000 и регистрировалось,что в касе наличными 1000.
Как правильно в таком случае определить тип операции? и в какой последовательности это необходимо сделать?

Объект.TypeClose = ТипЧека;
Если (Получено > 0) И (Получено > СуммаЧека) Тогда
Объект.Summ = Получено;
Объект.ОплатаСоСдачей();
Иначе
Объект.ЗакрытьЧек();
КонецЕсли;

где ТипЧека от 0 до 3.
MuMu
Будет ли верно, если я попробую следующим образом сделать:

Если БанковскаяКарта = "Да" Тогда
Если Получено > 0 Тогда
// учтанавливается оплата наличными на сумму Получено
Объект.TypeClose = 0;
Объект.Summ = Получено;
// затем устанавливаем оплату по пласт. карточке на оставшуюся сумму
Объект.TypeClose = 3;
Объект.Summ = СуммаЧека - Получено;
// после этого закрываем чек без сдачи
Объект.ЗакрытьЧек();
Иначе
// просстая оплата по карточке
Объект.TypeClose = 3;
Объект.ЗакрытьЧек();
КонецЕсли;
Иначе
// обычное закрытие чека наличными
Объект.TypeClose = ТипЧека;
Если (Получено > 0) И (Получено > СуммаЧека) Тогда
Объект.Summ = Окр(Получено, 2, 1);
Объект.ОплатаСоСдачей();
Иначе
Объект.ЗакрытьЧек();
КонецЕсли;
КонецЕсли;

Я почему привожу код, т.к. мне нужно мнение знающих людей (тут просто надо подключить зарегистрированный в налоговой КСА )
Torin®
Объект.Summ = Окр(Получено, 2, 1);
Объект.ТипЗакрытия = 0;
Объект.Payment();
Объект.Summ = Окр(СуммаКредит, 2, 1);;
Объект.ТипЗакрытия = 1;
Объект.Payment();
Объект.Summ = Окр(СуммаПластик, 2, 1);;
Объект.ТипЗакрытия = 3;
Объект.Payment();
Объект.ЗакрытьЧек();

Мы делим наличные отдельно

П.К отдельно
Кредит отдельно и все ок
AK
Уважаемая MuMu, знаю, Вы не любите RTFM, но оно того стоит...
Спасибо уважаемый Torin. Все верно.

Для Mumu. Поясню, что делал Torin и что НАПИСАНО в руководстве программиста общего драйвера ККМ (ОД ККМ).
ФР имеет 4 встроенных типа оплаты. Изначально они называются: "Наличные", "Кредит", "Платежная карота" и "Тара". Наименования последних трех можно изменить в настройках ККМ.
С точки зрения ФР все 4 типа равноправны. Единственное отличие типа оплаты "Наличные" - ФР контролирует сколько "наличных" было положено в денежный ящик и сколько изъято. Изъять больше, чем положили ФР не даст. Естественно, реально пересчитать купюры в ящике ФР не может, но он складывает суммы операций, означающих "кассир получил", и вычитает суммы операций, означающих "кассир выдал".
Остальные три типа оплаты могут быть заблокированы в настройках ФР, но их стоит сразу один раз включить и не вспоминать про них.
С точки зрения сменного итога (суммы, записываемой в ФП) все 4 типа оплаты одинаковые - все суммируются.
С точки зрения учета ФР ведет учет по типам оплаты только в пределах текущей смены. В пределах смены ФР подсчитывает суммы платежей по каждому типу оплаты отдельно (для чеков продажи и возврата отдельно, т.е. 8 счетчиков). В данном контексте я не делаю различия между возвратом и аннулированием, но реально в ФР счетчиков 12 (3 типа чека * 4 типа оплаты).

Теперь про оплату по частям. Разработчики ФР называют этот способ оплаты "смешанным". Он поддерживается всеми текущими ФР АТОЛа. Принцип работы такой:
1. сформировать табличную часть чека (зарегистрировать продажи/возвраты). В ОД ККМ это методы Registration и Return.
2. В результате ФР подсчитает итог чека.
3. зарегистрировать все платежи клиента по данному чеку. Это то, о чем Вы спросили. Для каждого платежа указывается: сумма платежа (свойство Summ) и тип оплаты (TypeClose). Вызывается метод Payment.
4. При регистрации каждого платежа ФР самостоятельно подсчитывает оставшуюся неоплаченной сумму чека, а вслучае превышения суммы платежей суммы чека - причитающуюся сдачу.
5. После регистрации всех платежей надо вызвать метод CloseCheck для закрытия чека.

Дополнительно: есть еще метод StornoPayment. В процессе регистрации платежей (шаги 3..4) можно использовать метод PrintField для печати доп.информации о платеже (например номер транзакции по карте, название платежной системы карты и т.п.)

Есть нюанс: при смешанной оплате ФР контролирует, чтобы сумма платежей (Payment) всеми типами, отличными от "Наличные", не превышала сумму чека (шаг 2). В Вашем папримере, если сумма чека 190000.00р , то ФР не даст оплатить типом оплаты "платежная карта" сумму 200000.00р. А если итог чека был бы 200000.00р или более, то все ОК. Оговорка для первого примера: если итог 190000, а попытаться делать платежи типом оплаты "карта" меньшими суммами, например по 10000р., то первые 19 платежей пройдут удачно, а на 20-ую операцию ФР вернет ошибку.

Вы можете поэкспериментировать с этим режимом на рабочей ККМ - пока чек не закроете (вызовете метод CloseCheck) чек можно отменить без записи в ФП - он не будет фискальным. Особенно посмотрите свойства Remainder и Change после выполнения метода Payment.

Также можете посмотреть метода GetRegister и свойства CheckType, TypeClose при RegisterNumber = 3.
MuMu
спасибо за подсказки.... уже давно все работает smile.gif
правда только сейчас дошли руки проверить форум
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2022 IPS, Inc.