![]() |
![]() |
|
Фискальник анулирует чеки | ☑ | ||
---|---|---|---|---|
0
Виль
01.04.09
✎
16:39
|
УТ. ФР - Феликс РК- 01.
Интерфейс кассира В коде добавил функцию после кассового чека - через Фр выходит и товарный чек. - при закрытии первого чека нормально выходит и кассовый и товарный, но когда начинаешь закрывать следующий чек - кассовый выходит со значением "Аннулирован"... Такое ощущение, что предыдущий чек не закрылся - может кто с таким уже сталкивался? |
|||
1
Al113
01.04.09
✎
16:42
|
1ска никак не ругается?
|
|||
2
Виль
01.04.09
✎
16:44
|
Нет - выдает кассовый и товарный, только в кассвом "анулирован"
|
|||
3
Виль
01.04.09
✎
16:46
|
Использую
ПолучитьСерверТО().ПечатьТескта(мФР,массивСтрок,32) |
|||
4
Виль
01.04.09
✎
17:14
|
up
|
|||
5
MikeFromAtol
02.04.09
✎
10:33
|
Какой драйвер юзает обработка, АТОЛовский?
|
|||
6
MikeFromAtol
02.04.09
✎
10:53
|
НУ и еще можно выложить код обработки, отвечающий за формирование чеков.
а вообще надо анализировать ошибки при вызове методов драйвера, чтобы понимать, когда возникает ошибка |
|||
7
Виль
02.04.09
✎
12:21
|
(5) да АТОЛовский... Ошибок он как раз и не выдает - поковырял - нашел следующее - кассовый чек не закрывается однозначно. Заходишь в общий драйвер кассы и делаешь отмену чека. в этом случае - всё начинает работать до пробития следующего чека
|
|||
8
MikeFromAtol
02.04.09
✎
13:23
|
Обработку в студию.
Так подсказать ничего не сможем, но однозначно где то что то не так вызывается. А ошибки то он может и выдает, только этого не видно :) поэтому надо после выполнения определенных методов вызывать ResultCode и ResultDescription для анализа, что получается после выполнения определенных команд. Кстати, в АТОЛ: драйвер ККМ реализован интерфейс 1С, описанный в ИТС, в разделе работы с торговым оборудованием. Может, попробовать реализовать работу через него? |
|||
9
Виль
03.04.09
✎
14:38
|
Спасибо за подсказки - сейчас посмотрю...
|
|||
10
Torquader
03.04.09
✎
17:50
|
Просто печать строк может считаться началом нового чека, а при начале печати кассового чека производится проверка, а не открыт ли чек, и, если он открыт, отменяет его и начинает снова.
Чтобы не иметь такой проблемы, нужно сначала проверять наличие открытого чека, потом печатью текстовых строки печатать товарный чек или всё, что хочется напечатать, после этого не забыть напечатать заголовок чека и пробить нужный чек. |
|||
11
Виль
06.04.09
✎
17:47
|
Убрал из обработки печать товарного чека - выяснилось следующее - какие-то номенклатурные позиции пробиваются кассовым чеком нормально - а некоторые позиции начало чека выводят - но закрытие не делают. Отладчиком проходил - Объект.Драйвер.ЗакрытьЧек() просто проходит... Никаких действий по закрытию.
Сравнивал две позиции которые закрываются кассовым чеком и не закрываются. Видимых отличий нет... Куда бросить взор - чем успокоится? |
|||
12
MikeFromAtol
06.04.09
✎
18:01
|
А что за номенклатура?
Если они по-разному пробиваются - значит, в них есть какие-нибудь отличия, например, пробиваются штучные, не пробиваются весовые, или что-нибудь похожее. А вообще, как уже и писал, обработку в студию, а к ней - два лога. FprnM1C.log и FprnMLS.log - их можно найти там, где зарегистрирована dll драйвера. Логи лучше выложить сразу, как только выйдет ошибка, чтобы нам в них долго не копаться. |
|||
13
Виль
06.04.09
✎
19:58
|
(12)
Это из лога Сразу спасибо - в общем нашел почему чек не закрывался - В интерфейсе стоит принудительное округление в меньшую сторону и я так понимаю, что обе суммы до и после округления попадают в кассу. сейчас буду разбираться как это уравновесить... 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
MikeFromAtol
07.04.09
✎
10:53
|
Ну и замечательно :)
|
|||
15
Torquader
07.04.09
✎
21:20
|
"Умный" драйвер работает с переменными типа double-вещественное число, а касса хочет int. Поэтому, некоторые double с копейками округляются и выходит, что итог по чеку не равен сумме позиций.
Я писал "пробивалку" в Excel и напоролся именно на это, только у меня сама программа так и говорила, что суммы не совпали, и предлагала отменить и повторить чек. Решением проблемы для Excel было использование формата Decimal или Currency. Здесь можно посоветовать пробивать суммы без копеек, так как копейки - это зло. Другой вариант, который очень подошёл - это "пробивать" весь чек текстовыми строками, а потом одной суммой - итогом. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |