Работает одна АМС-100 + ONLINE-сервер 1.46. Периодически 1-2 раза в неделю вылетают отдельные продажи и даже целые чеки. При снятии Z-отчета суммы в сервере и на ленте не совпадают.
Подскажите как можно решить эти проблемы. Может дело в ККМ?
Такая ситуация скорее всего у всех.
Я находил продажи в сброшенных чеках и кассовые отчеты тогда сходятся.
Такое ощущение что вместо команды "закрытие чека" до ПК доходит команда "Сброс"
Это списках чеков, а как обстоит дело в суммах продаж и количествах товара не знаю, подскажите.
1. Сигнал о закрытии чека должен попасть в онлайн-сервер только после успешной печати на ККМ.
2. В процессе печати чека потребление мощности от блока питания максимальное (термоголовка)
3. При провале напряжения связь м/у кассой и сервером кратковременно прерывается, и онлайн-сервер сбрасывает чек в сброшенные чеки.
Могла бы помочь выяснить ситуацию возможность протоколировать в лог-файл о действиях онлайн-сервера.
На самом деле ситуация нам давно известна. Сервер получает ложный сброс чека (вместо реально закрытия) в том случае, если во время печати этого чека нажимать клавиши на клавиатуре ККМ или считывать сканером ШК (во всяком случае других причин нам неизвестно). Эта ситуация описана в Readme - файле OnlineServer'a 1.46. В самых последних релизах 1.46 эта проблема решена, но не до конца. Все же существуют периоды во время печати чека, при которых нажатие клвиш может привести к ложному сбросу.
Кардинально эта проблема решена в OLS Prof. Если сервер получает событие сброса чека, то подтверждение, что оно не ложно сервер получает из ЭЖ ККМ. К сожалению, ввиду того, что в ККМ ЭЖ организован на Flash с последовательным доступом, это несколько замедляет работу сервера с ККМ, по сравнению с OLS 1.46.
P.S. Речь конечно же здесь идет о нормально работающем аппарате, т.е. если на кассе имеют место аппаратные сбои и ошибки типа E-13, то ни о какой корректности работы сервера с такой кассой речи идти не может.
Хотелось бы поделиться своей точкой зрения на проблему идентичности продаж в кассовом сервере с показаниями на контрольной ленте. Проблема к сожалению есть и на аппаратно- программном уровне она к сожалению решается пока не эффективно.
Сканирование ЭЖ ККМ это интересное решение, но представьте: вместо постоянного прослушивания "линии" кассовым сервером (нет ли запроса от кассы?) кассовый сервер сам занимает "линию"...
На самом деле, может отложить сверку на конец смены специальной командой перед снятием Z - отчета ?? Вот уже 2 года из зо дня в день сверяем Х, Z - отчеты с продажами и обнаружили, что для приведения в соответствие продаж, есть строгий алгоритм, который удалось реализовать в программный код. Необходимо только два файла: файл чтения ЭЖ с ККМ и файл закрытых и отмененных покупок из кассового сервера во временной последовательности. Программа, просматривая второй файл относительно первого сама отбросит ненужные ОТМЕННЕННЫЕ покупки, а нужные ОТМЕНЕННЫЕ оставит в соответствии с Х - отчетом ! Правда есть одно "НО". При работе с несколькими секциями второй файл нужно получать с сортировкой внутри чека по секциям.
Владимир Дмитриев писал(а):
Сканирование ЭЖ ККМ это интересное решение, но представьте: вместо постоянного прослушивания "линии" кассовым сервером (нет ли запроса от кассы?) кассовый сервер сам занимает "линию"...
Кассовый сервер и занимается опросом состояния ККМ, просто при опросе состояния выделяется квант времени для чтения дополнительной информации, необходимой для контроля по ЭЖ при закрытии чека.
Цитата
Владимир Дмитриев писал(а):
Правда есть одно "НО". При работе с несколькими секциями второй файл нужно получать с сортировкой внутри чека по секциям.
Это "НО" на самом деле не одно. Например, если пробить несколько чеков со свободными суммами при отключенном сервере (потеря интерфейса, зависание ПК и т.п.), сервер эти свободные суммы учтет (правда одним чеком, поскольку понятия номера чека в АМС-100Ф отсутствует и в ЭЖ храняться только покупки), но очередность покупок в списке полученном из ЭЖ будет отличаться от очередности покупок в списке полученной из сервера, поскольку в ЭЖ была произведена сортировка по отделам внутри нескольких чеков, а сортировка по отделам при получении данных с сервера будет произведена внутри одного чека созданного на основании данных ЭЖ. То есть отложенный контроль не может дать 100% гарантии корректности данных без реализации достаточно сложного алгоритма анализа данных в случае несовпадения списка покупок в ЭЖ и сервере.
Алгоритм, реализованный в программе на данный момент, на наш взгляд, является самым оптимальным.
Например, если пробить несколько чеков со свободными суммами при отключенном сервере (потеря интерфейса, зависание ПК и т.п.), сервер эти свободные суммы учтет (правда одним чеком, поскольку понятия номера чека в АМС-100Ф отсутствует и в ЭЖ храняться только покупки), но очередность покупок в списке полученном из ЭЖ будет отличаться от очередности покупок в списке полученной из сервера, поскольку в ЭЖ была произведена сортировка по отделам внутри нескольких чеков, а сортировка по отделам при получении данных с сервера будет произведена внутри одного чека созданного на основании данных ЭЖ
После пробития свободных сумм подключили кассу АМС-100Ф к серверу OLS Prof. Востановления чеков ждали долго ... Или работа по кассе пробитием чеков является необходимым условием востановления чеков из ЭЖ?
Каким образом и с какой скоростью работает механизм востановления чеков ? Как это должно отображаться при работе сервера (может доп. сообщение где то выводиться, что востановлен такой то отмененный чек) ? Может вообще объединить две закладки закрытых и отмененных чеков в одну последовательность с необходимыми комментариями ?
Проясните механизм.
Не знаю, как там оно реализовано, но мне кажется наиболее логичным проверять соотвествие чеков именно при запросе очередной суммы с ККМ, так как именно в этом случае надо заносить данные о следующем чеке в базу сервера, а также выставлять данные обратно на ККМ.
Смею заметить, что потеря связи в момент оформления чека может приводить к тому, что товар в последствии станет свободной суммой или наоборот.
Кроме того, мне до сих пор непонятно, почему в ККМ не доработают интерфейс RS-232 до полной совместимости со стандартом, а именно размах напряжения +12 -12 вольт, и чувствительность за зоной +5 -5 вольт?
А также почему ККМ просто выключает порт при печати чека ?
А мы хотим процедуру закрытия кассовой смены со сверкой Z-отчета с данными в компьютере, и отчетом о расхождениях и другими вешами облегчающими нелегкую и опасную работу кассиров )
Владимир Дмитриев писал(а):
После пробития свободных сумм подключили кассу АМС-100Ф к серверу OLS Prof. Востановления чеков ждали долго ... Или работа по кассе пробитием чеков является необходимым условием востановления чеков из ЭЖ?
При опросе ККМ сервер отслеживает номер последней покупки в ЭЖ. Если на следующем проходе обнаруживаются расхождения между номерами покупок, учтенных сервером, и номером последней покупки в ЭЖ, то присходит сверка с покупками, сохраненными в ЭЖ. В предыдущем сообщении я неверно сформулировал фразу: "при отключенном сервере" следует читать как "при отсутствии физической связи с сервером". Коррекция будет произведена в случае сбоев произошедших в период работы кассового сервера, даже при временном отключении кабеля (но не при отключении сервера). Если остановить сервер, затем пробить несколько чеков, то при запуске сервера будет произведена инициализация ККМ, вычитан номер последней покупки, хранящейся в ЭЖ и сервер начнет работать в штатном режиме.
Цитата
Torquader писал(а):
Не знаю, как там оно реализовано, но мне кажется наиболее логичным проверять соотвествие чеков именно при запросе очередной суммы с ККМ, так как именно в этом случае надо заносить данные о следующем чеке в базу сервера, а также выставлять данные обратно на ККМ.
На данный момент предварительная проверка расхождения производится при опросе статуса ККМ.
Цитата
Torquader писал(а):
Кроме того, мне до сих пор непонятно, почему в ККМ не доработают интерфейс RS-232 до полной совместимости со стандартом, а именно размах напряжения +12 -12 вольт, и чувствительность за зоной +5 -5 вольт?
А также почему ККМ просто выключает порт при печати чека ?
По поводу размаха RS232 - так сложилось исторически. Вообще Online сети лучше строить на RS485 (и работают надежнее и с расстояниями проблем нет). В новой АМС-100Ф на плате БУ имеется панелька под ADM485 (как в АМС-200Ф). Как следствие отпадает необходимость установки преобразователей RS232<->RS485 на каждую ККМ.
Отключение RS232 при печати чека на АМС-100Ф производится, поскольку прерывание по RS в момент работы ТПУ может привести к выходу ТПУ из строя.
Цитата
ping писал(а):
А мы хотим процедуру закрытия кассовой смены со сверкой Z-отчета с данными в компьютере, и отчетом о расхождениях и другими вешами облегчающими нелегкую и опасную работу кассиров )
Как я уже писал ранее - нам пока не удалось создать алгоритм, который однозначно бы восстанавливал картину продаж на АМС-100Ф при любых сбоях ККС . Например, при ситуации, описанной в моем предыдущем сообщении.
Извините за настойчивость, но я пытаюсь осознать репродуктивную функцию сервера для востановлении чеков при сбоях. Пытаясь добиться того, что бы отмененный чек заменил свободную сумму, ничего не выходит...
Мои действия:
1. Сканирую товар 1р, закрываю чек.
2. Сканирую товар 2р, отменяю чек. (2р в сброшенных чеках).
3. Оключаю кабель от кассы. Пробиваю 2р свободной суммой.
4. Подключаю кабель к кассе. Сканирую товар 3р, закрываю чек.
Результат:
на контрольной ленте
0001 1 1р
0002 1 2р
0003 1 3р
в кассовом сервере закрытые чеки
товар 1р
товар 3р
своб. сумма 2р
в сброшенных чеках 2р
Почему 1. порядок сумм не соответствует контрольной ленте ?
2. товар на сумму 2р из сброшенных чеков не закрыл свободную сумму 2р, был же разрыв связи при работающем сервере ?
3. свободная сумма попадает в третий чек да еще и второй покупкой ? Логичней свободную сумму(ы) во второй чек, а товар 3р в третий.
Ничего нелогичного из этой ситуации не вижу.
Во первых не понятно почему 3 чека (или Вы включаете в
этот список и сброшенный тоже)?
Цитата
Владимир Дмитриев писал(а):
свободная сумма попадает в третий чек да еще и второй покупкой
Следование свободной суммы в последнем чеке не в той последовательности, в которой она добавлялась в чек. буфер кассы объясняется тем, что мы имеем возможность отследить свободные суммы только при закрытии чека. Отследить же в какой последовательности они добавлялись в буфер при наборе чека нет возможности. Поэтому они все добавляются в его конец.
Цитата
Владимир Дмитриев писал(а):
товар на сумму 2р из сброшенных чеков не закрыл свободную сумму 2р
А зачем он должен это делать? Может быть я Вас не до конца понимаю?