16.05.2018 09:36
Tiger
 
Цитата:
LightStep Начиная с версии 008.19
Режим печати QR кода настраивается параметром ККТ “MACRO:FDDDesign:PrintQRWithText”:
0 – (значение по умолчанию) печатать QR код и текст последовательно в одну колонку
1 – печатать QR код и текст параллельно в 2 колонки

Мне не жалко, пользуйся. Только предварительно проверяй все на тестовом сервере. А то одним неверным движение положишь все кассы на всех магазинах. Будет неприятно.
Попробовал дизайн вашего чека и получаю ошибку при пробитии чека:

Цитата:
15:17:33.549: 0x00004000: WARNING: debug#/usr/local/storage/home/ukm/build-br-80-2018_04_16_19_37_44/ukm/libukm/kkt_sp.cpp(1111) Receipt: [string "receipt.lua"]:1682: attempt to index local '__print_data' (a boolean value)
15:17:45.596: 0x00004000: WARNING: debug#/usr/local/storage/home/ukm/build-br-80-2018_04_16_19_37_44/ukm/libukm/kkt_sp.cpp(1111) Receipt: [string "receipt.lua"]:1682: attempt to index local '__print_data' (a boolean value)
15:17:46.550: 0x00004000: WARNING: debug#/usr/local/storage/home/ukm/build-br-80-2018_04_16_19_37_44/ukm/libukm/kkt_sp.cpp(1111) Receipt: [string "receipt.lua"]:1682: attempt to index local '__print_data' (a boolean value)
15:17:47.801: 0x00004000: WARNING: debug#/usr/local/storage/home/ukm/build-br-80-2018_04_16_19_37_44/ukm/libukm/kkt_sp.cpp(1111) Receipt: [string "receipt.lua"]:1682: attempt to index local '__print_data' (a boolean value)
15:17:48.476: 0x00004000: WARNING: debug#/usr/local/storage/home/ukm/build-br-80-2018_04_16_19_37_44/ukm/libukm/kkt_sp.cpp(1111) Receipt: [string "receipt.lua"]:1682: attempt to index local '__print_data' (a boolean value)
Количество ошибок равно количеству позиции в чеке. Оставил свободную строку и свой скрипт чек выбивается. Может это зависит от параметра ширина печати, у меня стоит 56, а у Вас?
16.05.2018 13:25
LightStep
 
Я скрипт тестировал на ФР802. Выставлял ему и 56 и 63 символа. Все нормально печаталось. А версия укм и прошивка ФР какие?
16.05.2018 13:30
Tiger
 
Цитата:
LightStep Я скрипт тестировал на ФР802. Выставлял ему и 56 и 63 символа. Все нормально печаталось. А версия укм и прошивка ФР какие?
УКМ 80sp1 и прошивка ККТ последняя. Есть предположение что нужно вашу функцию подкинуть в 78 версию, а затем уже обновить на 80.
16.05.2018 13:40
LightStep
 
Скорее всего для 80 нужно переписывать скрипт заново. Нужно смотреть чего они там наворотили в этой функции и переделывать по аналогии с моим вариантом.
16.05.2018 16:17
Tiger
 
Цитата:
LightStep Скорее всего для 80 нужно переписывать скрипт заново. Нужно смотреть чего они там наворотили в этой функции и переделывать по аналогии с моим вариантом.
1. Обновил свою 75 версию до 78
2. Заменил функцию function print_SP_KKT_item(__item, __print_data) после обновления на Вашу
3. Обновил до 80 версии function print_SP_KKT_item(__item, __print_data) поменялась function print_SP_KKT_item(__item,__bSplit, __print_data), добавился только параметр __bSplit в функцию, само тело функции осталось неизменным.

Завтра проверю, может в нем была проблема.
13.12.2018 04:41
Tiger
 
Цитата:
function print_SP_KKT_item(__item, __print_data)
local printer_type = ukm.printer_type_master();
local printer = ukm.get_printer(printer_type);
if printer then
local text = "";
local width = printer:get_width();

local item_total = __item.total;
local price_with_discount = __item.price;

local discount_count = __item.discounts:size();
if discount_count > 0 then
local discount_total = ukm.currency(0);
for i = 0, discount_count - 1 do
local discount = __item.discounts:at(i);
if discount.increment ~= ukm.currency(0) then
discount_total = discount_total - discount.increment;
end
end

if discount_total:sign() ~= 0 then
item_total = item_total - discount_total;
price_with_discount = ukm.currency((__item.total - discount_total) / __item.totalquantity);
end
end

local itemname = ukm.insert_delimiters(__item.name, "\n", width - 1);
local itemprice = ukm.leftpad(tostring(__item.totalquantity),7," ") .. " " .. ukm.leftpad(tostring(price_with_discount),8," ") .. " " .. ukm.leftpad(tostring(item_total),10," ");
local tax_found = false;
local taxes = ukm.taxes(__item.receipt);
taxes:create(__item);
for i = 0, taxes.itemtaxes:size() - 1 do
local tax = taxes.itemtaxes:at(i);
text = " " .. text .. tax.name .. tax.percent;
tax_found = true;
end

if not tax_found and (__tax_system == 1) then
text = text .. " " .. " БезНДС";
end


if ukm.str_len(itemname .. " " .. itemprice) <= width-7 then
text = ukm.adjustment(itemname, itemprice, width-7, " ") .. text .. "\n";
else
text = " " .. itemprice .. text;
text = ukm.left(itemname, width - 8 - ukm.str_len(itemprice)) .. text .. "\n";
end


__print_data:add(text, printer_type);
end
end
После обновления на версию 83 sp3

В чеке блок

Цитата:
if not tax_found and (__tax_system == 1) then
text = text .. " " .. " БезНДС";
end
перестал отрабатывать, так как теперь мапирование налогов зашито автоматом. Как поменять это блок, если налоговая группа "НДС не облагается", то надпись безНДС?
13.12.2018 13:54
LightStep
 
Уже давно не занимался этим скриптом. Разработчики допилили рецепт чека. Там появился новый скрипт function print_kkt_item_new(__item, __bSplit, __print_data), который включается включением режима печать свободной строкой и небольшим изменением в register.lua:
-- register_event("event_print_SP_KKT_item", "print_SP_KKT_item");
register_event("event_print_SP_KKT_item", "print_kkt_item_new");
первая строчка кмоментируется а вторая наоборот.
13.12.2018 16:39
Tiger
 
Цитата:
LightStep Уже давно не занимался этим скриптом. Разработчики допилили рецепт чека. Там появился новый скрипт function print_kkt_item_new(__item, __bSplit, __print_data), который включается включением режима печать свободной строкой и небольшим изменением в register.lua:
-- register_event("event_print_SP_KKT_item", "print_SP_KKT_item");
register_event("event_print_SP_KKT_item", "print_kkt_item_new");
первая строчка кмоментируется а вторая наоборот.
function print_SP_KKT_item(__item,__bSplit, __print_data) появилась еще в 80 версии и на ней ваш скрипт работал.

можете расшифровать этот блок

Цитата:
if not tax_found and (__tax_system == 1) then
text = text .. " " .. " БезНДС";
end
что проверяется в условии? И как проверить что название налоговой группы "НДС не облагается"?
14.12.2018 06:06
LightStep
 
на сколько я понимаю тут следующее: если налог не найден и система налогооблажения равна 1 (видимо общая) то
14.05.2019 08:35
Tiger
 
Цитата:
Velik Доброго дня. На днях в одной из сетей встретил интересный формат чека, с точки зрения экономии кассовой ленты. В нем - печать налогов обозначена как А -10% НДС, В - 18% НДС и после цены в каждой строке указана всего 1 буква "А" или "В", а в футере расписано - что А-10% - столько-то рублей, И-18% столько-то рублей. Как такое возможно реализовать на УКМ? Ниже приведу картинку - что хотелось бы увидеть в итоге ....
PS: Там еще несколько вопросов по оптимизации чека... буду очень благодарен за ответы и возможные пути решения возникших проблем
PPS Можно ли переместить/уменьшить QR -?

УКМ версия 78sp2
СП402Ф прошивка 008.17.220




(0,23Мб)
Подскажите, как добавить Итого без учета скидки?

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.