Имя: Пароль:
1C
 
АТОЛ 10 пробитие чека со скидкой через COM объект
0 tatoshka0403
 
31.05.22
15:09
Всем дорого дня пытаюсь настроить пробитие чека через 10 драйвера АТОЛ.

Объект.setParam(Объект.LIBFPTR_PARAM_COMMODITY_NAME, СтрокаЧека.Номенклатура.ПолноеНаименование);
Объект.setParam(Объект.LIBFPTR_PARAM_QUANTITY, СтрокаЧека.Количество);//количество единиц товара    
Объект.setParam(Объект.LIBFPTR_PARAM_PRICE, СтрокаЧека.Цена-(СтрокаЧека.СуммаСкидки/СтрокаЧека.Колво));//цена за единицу
Если СтрокаЧека.СуммаСкидки<>0 тогда
    Объект.setParam(Объект.LIBFPTR_PARAM_INFO_DISCOUNT_SUM,СтрокаЧека.СуммаСкидки/СтрокаЧека.Колво);
КонецЕсли;
Объект.registration();
КонецЦикла;
Если ПолученоНал > 0 Тогда
    Объект.setParam(Объект.LIBFPTR_PARAM_PAYMENT_TYPE, Объект.LIBFPTR_PT_CASH);//Нал
    Объект.setParam(Объект.LIBFPTR_PARAM_PAYMENT_SUM, ПолученоНал);//Сумма
    Объект.payment();
КонецЕсли;
Если ПолученоБезНал > 0 Тогда
    Объект.setParam(Объект.LIBFPTR_PARAM_PAYMENT_TYPE, Объект.LIBFPTR_PT_ELECTRONICALLY);//Без Нал
    Объект.setParam(Объект.LIBFPTR_PARAM_PAYMENT_SUM, ПолученоБезНал);//Сумма                
    Объект.payment();
КонецЕсли;
Объект.closeReceipt();

Чек пробивается вот такого формата:
https://disk.yandex.ru/i/S8Aa1JfRlFAOsg

Но хочется чтобы в первой строке была полная стоимость товара.
Пробовал вписывать строку:
Объект.setParam(Объект.LIBFPTR_PARAM_POSITION_SUM, СтрокаЧека.Цена)
но чек вообще перестает пробиваться.
Если кто сталкивался подскажите...
1 Garykom
 
гуру
31.05.22
15:19
начни отсюда https://integration.atol.ru/api/
2 tatoshka0403
 
31.05.22
15:33
(1) по этой инструкции и делал, но вот со скидкой не могу разобраться.
3 Garykom
 
гуру
31.05.22
15:50
LIBFPTR_PARAM_INFO_DISCOUNT_SUM - информация о скидке/надбавке. Параметр не влияет на итоговую сумму позиции, просто будет напечатана информационная строка о сумме скидки/надбавки.

LIBFPTR_PARAM_POSITION_SUM - полная сумма позиции. Может отличаться от произведения цены на количество. В этом случае ККТ разобьет позицию на две, распределив получившуюся разницу (скидку или надбавку) между позициями.
4 Garykom
 
гуру
31.05.22
15:53
попробуй например

LIBFPTR_PARAM_QUANTITY = 1
LIBFPTR_PARAM_PRICE = 1

LIBFPTR_PARAM_POSITION_SUM = 0.9
LIBFPTR_PARAM_INFO_DISCOUNT_SUM = 0.1
5 tatoshka0403
 
31.05.22
15:55
(3) 1 вроде нормально печатает, а вот после прописания второго чек вообще перестает биться, пробовал с LIBFPTR_PARAM_PRICE и без него
6 tatoshka0403
 
31.05.22
16:30
(4) вообще не пробило
7 Garykom
 
гуру
31.05.22
16:39
(6) с ошибкой то какой?
8 tatoshka0403
 
31.05.22
16:42
(7) ответ от АТОЛ -1 и чек надо аннулировать через драйвер, логи не включал
9 tatoshka0403
 
31.05.22
17:20
(7) судя по инструкции LIBFPTR_PARAM_POSITION_SUM проверяет LIBFPTR_PARAM_QUANTITY умноженное на LIBFPTR_PARAM_PRICE
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший