[ОТВЕТИТЬ]
13.03.2015 12:56
vdm
 
Надежды на ответ не имею, но вдруг.

Нужно в lua ФР СП101 отличить от СП402.

Как определить текущую конфигурацию кассы или модель ФР (принтера). Имя, какой-то отличительный признак.

Пока вижу только "нарисуй свою табличку Магазин.Касса.ФР и смотри в ней", но такие костыли изрядно поднадоели.
13.03.2015 12:58
Mtirt
 
А у них ширина печати одинаковая? Нельзя по ней определиться с моделью?
13.03.2015 13:07
vdm
 
У них разная максимальная ширина, но функции типа printer:get_max_width() я не знаю.
13.03.2015 13:14
Mtirt
 
Переименовать кассу, чтобы вместо "Касса1" было "СП402 -1" ? И искать по имени...
13.03.2015 13:41
vdm
 
Хороший вариант, если найдется способ взять pos_name не только в receipt.header.
13.03.2015 13:46
Павел Сосновских
 
а где надо? до receipt.header'а почти ото всюду можно добраться
только в отчетах по внешним скриптам наверное не получится, но там зато запрос к базе можно
13.03.2015 14:13
vdm
 
В документах внесения/изъятия, например. В общем везде, не только в чеке.
13.03.2015 14:18
vdm
 
Кстати. А можно на старте кассы автоматом выполнить внешний скрипт?
13.03.2015 14:19
Mtirt
 
Заглянула в reports.lua.
Нашла вот это:
Код:
-- разбираем первую упакованную строку, там лежат имя кассы, номер смены, время начала смены и время окончания (может быть пустым)
        local field = ukm.map.int.string.iterator(ukm.token(reports:at(0)).tokens);
text = text .. ukm.center("ОТЧЁТ ПО БЕЗНАЛИЧНЫМ ОПЕРАЦИЯМ", width, " ") .. "\n";
        text = text .. ukm.center("ПО КАССЕ " .. field:at(0), width, " ") .. "\n";
        text = text .. ukm.adjustment("НАЧ. " .. field:at(1) .. " СМЕНЫ:", field:at(2), width, " ") .. "\n";
        if ukm.str_len(field:at(3)) > 0 then
            text = text .. ukm.adjustment("КОН. " .. field:at(1) .. " СМЕНЫ:", field:at(3), width, " ") .. "\n";
        end

Т.е. field:at(0) - имя кассы и есть.
13.03.2015 14:25
Mtirt
 
Цитата:
vdm Кстати. А можно на старте кассы автоматом выполнить внешний скрипт?
Добавить в register.lua в раздел с require_once() ?
Сама нет пробовала, если что...
13.03.2015 14:27
student
 
а в луа есть возможность прочитать параметры конфигурации самого фрк (команда по протоколу - 0xA1 - Чтение таблицы настроек или по драйверу - USHORT SPFR_ ReadConfig) ?

если есть - то просто - читаешь 31 строку - если ошибка - то сп101 - если нет и вернулся пароль по дефолту (или заданный - заранее известный) - то сп402 :)
либо попробовать установить дп EPSON в 9 строке и опять отловить ошибку - есть - сп101 - нет сп402

я других вариантов программно отличить один от другого не нашел :( - варианты чтения памяти (0xE1 - Чтение блока памяти ККМ по протоколу или USHORT SPFR_ReadMemBlock по драйверу) - не рассматриваливались из-за накладных расходов

пы сы
сейчас еще глянул сравнение ( :( проглядел ранее - придется рефакторинг у себя делать - смотреть что быстрее отрабатывает) можно еще ловить команды 0xA9 - Получить статус принтера и 0хАA Получить количество свободного места для копии чека - их в сп101 нет
13.03.2015 14:41
vdm
 
Цитата:
student а в луа есть возможность прочитать параметры конфинурации самого фрк
Если и есть, то недокументировано.
С этим (документацией на lua от С+) вообще грустно, последнее описание где-то 4-хлетней давности и то неполное, там даже header.pos_name отсутствует.
Опции темы


Часовой пояс GMT +3, время: 07:38.

 

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