Фискальник анулирует чеки #399612


#0 by Виль
УТ. ФР - Феликс РК- 01. Интерфейс кассира В коде добавил функцию после кассового чека - через Фр выходит и товарный чек. - при закрытии первого чека нормально выходит и кассовый и товарный, но когда начинаешь закрывать следующий чек - кассовый выходит со значением "Аннулирован"... Такое ощущение, что предыдущий чек не закрылся - может кто с таким уже сталкивался?
#1 by Al113
1ска никак не ругается?
#2 by Виль
Нет - выдает кассовый и товарный, только в кассвом "анулирован"
#3 by Виль
Использую ПолучитьСерверТО.ПечатьТескта(мФР,массивСтрок,32)
#4 by Виль
up
#5 by MikeFromAtol
Какой драйвер юзает обработка, АТОЛовский?
#6 by MikeFromAtol
НУ и еще можно выложить код обработки, отвечающий за формирование чеков. а вообще надо анализировать ошибки при вызове методов драйвера, чтобы понимать, когда возникает ошибка
#7 by Виль
да АТОЛовский... Ошибок он как раз и не выдает - поковырял - нашел следующее - кассовый чек не закрывается однозначно. Заходишь в общий драйвер кассы и делаешь отмену чека. в этом случае - всё начинает работать до пробития следующего чека
#8 by MikeFromAtol
Обработку в студию. Так подсказать ничего не сможем, но однозначно где то что то не так вызывается. А ошибки то он может и выдает, только этого не видно :) поэтому надо после выполнения определенных методов вызывать ResultCode и ResultDescription для анализа, что получается после выполнения определенных команд. Кстати, в АТОЛ: драйвер ККМ реализован интерфейс 1С, описанный в ИТС, в разделе работы с торговым оборудованием. Может, попробовать реализовать работу через него?
#9 by Виль
Спасибо за подсказки - сейчас посмотрю...
#10 by Torquader
Просто печать строк может считаться началом нового чека, а при начале печати кассового чека производится проверка, а не открыт ли чек, и, если он открыт, отменяет его и начинает снова. Чтобы не иметь такой проблемы, нужно сначала проверять наличие открытого чека, потом печатью текстовых строки печатать товарный чек или всё, что хочется напечатать, после этого не забыть напечатать заголовок чека и пробить нужный чек.
#11 by Виль
Убрал из обработки печать товарного чека - выяснилось следующее - какие-то номенклатурные позиции пробиваются кассовым чеком нормально - а некоторые позиции начало чека выводят - но закрытие не делают. Отладчиком проходил - Объект.Драйвер.ЗакрытьЧек просто проходит... Никаких действий по закрытию. Сравнивал две позиции которые закрываются кассовым чеком и не закрываются. Видимых отличий нет... Куда бросить взор - чем успокоится?
#12 by MikeFromAtol
А что за номенклатура? Если они по-разному пробиваются - значит, в них есть какие-нибудь отличия, например, пробиваются штучные, не пробиваются весовые, или что-нибудь похожее. А вообще, как уже и писал, обработку в студию, а к ней - два лога. FprnM1C.log и FprnMLS.log - их можно найти там, где зарегистрирована dll драйвера. Логи лучше выложить сразу, как только выйдет ошибка, чтобы нам в них долго не копаться.
#13 by Виль
Это из лога Сразу спасибо - в общем нашел почему чек не закрывался - В интерфейсе стоит принудительное округление в меньшую сторону и я так понимаю, что обе суммы до и после округления  попадают в кассу. сейчас буду разбираться как это уравновесить... 06.04.2009 17:55:54  0000000000  Driver.OpenCheck 06.04.2009 17:55:54  0000000000  Посылка команды ККМ: 00 00 92 00 01                     0000000016    Получен ответ: 55 00 00                     0000000000    Driver.Set_CurrentDeviceNumber 45                     0000000000    Driver.Set_AdvancedRegistration 0                     0000000000    Driver.Set_TextWrap 2                     0000000000    Driver.Set_Name Проверочный товар                     0000000000    Driver.Set_Quantity 1                     0000000000    Driver.Set_Price 375,9                     0000000000    Driver.Set_Department 1 06.04.2009 17:55:54  0000000000  Driver.Registration 06.04.2009 17:55:54  0000000000  Посылка команды ККМ: 00 00 92 00 01                     0000000015    Получен ответ: 55 9B 00 06.04.2009 17:55:54  0000000000  Посылка команды ККМ: 00 00 52 03 00 00 03 75 90 00 00 00 10 00 01                     0000000000    Получен ответ: 55 00 00 06.04.2009 17:55:54  0000000000  Посылка команды ККМ: 00 00 4C 8F A8 E0 E1 A8 AD A3 20 91 30 39 31 32 20 20 8F A8 E0 E1 A8 AD A3 20 35 38 35 F8 28 E8 E2 2C 20                     0000000016    Получен ответ: 55 00 00 06.04.2009 17:55:54  0000000000  Посылка команды ККМ: 00 00 4C 35 32 38 33 33 34 30 30 30 39 35 33 36 29                     0000000078    Получен ответ: 55 00 00 06.04.2009 17:55:54  0000000000  Посылка команды ККМ: 00 00 52 02 00 00 03 75 90 00 00 00 10 00 01                     0000000094    Получен ответ: 55 00 00                     0000000000    Driver.Set_CurrentDeviceNumber 45                     0000000000    Driver.Set_Summ 375                     0000000000    Driver.Set_TypeClose 0 06.04.2009 17:55:54  0000000000  Driver.Payment 06.04.2009 17:55:54  0000000000  Посылка команды ККМ: 00 00 99 00 01 00 00 03 75 00                     0000000203    Получен ответ: 55 00 00 00 00 00 90 00 00 00 00 00 06.04.2009 17:55:55  0000000000  Driver.CloseCheck 06.04.2009 17:55:55  0000000000  Посылка команды ККМ: 00 00 4A 00 01 00 00 00 00 00                     0000000016    Получен ответ: 55 72 00 06.04.2009 17:55:55  0000000000  Ошибка! ResultCode = -3897 ResultDescription = "Чек оплачен не полностью" BadParam = 0 BadParamDescription = "Ошибок в параметрах нет"                     0000016312    Driver.Set_CurrentDeviceNumber 45                     0000000000    Driver.Set_DeviceEnabled 0 06.04.2009 17:56:11  0000000000  Устройство включено = 0                     0000000000    Waiting for EventThread...                     0000000109    EventThread destroyed successfully                     0000000016    Port closed 06.04.2009 17:56:11  0000000000  Driver.DeleteDevice 06.04.2009 17:56:11  0000000000  Разрушение объекта нижнего уровня 06.04.2009 17:56:11  0000000000    Объект старого протокола разрушен                       ################################################################ 06.04.2009 17:56:11  0000000359  Разрушение объекта нижнего уровня 06.04.2009 17:56:11  0000000000    Объект старого протокола разрушен                       ################################################################ 06.04.2009 17:56:11  0000000000  Разрушение объекта нижнего уровня
#14 by MikeFromAtol
Ну и замечательно :)
#15 by Torquader
"Умный" драйвер работает с переменными типа double-вещественное число, а касса хочет int. Поэтому, некоторые double с копейками округляются и выходит, что итог по чеку не равен сумме позиций. Я писал "пробивалку" в Excel и напоролся именно на это, только у меня сама программа так и говорила, что суммы не совпали, и предлагала отменить и повторить чек. Решением проблемы для Excel было использование формата Decimal или Currency. Здесь можно посоветовать пробивать суммы без копеек, так как копейки - это зло. Другой вариант, который очень подошёл - это "пробивать" весь чек текстовыми строками, а потом одной суммой - итогом.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям