Фискальный регистратор.
Добавлено: 23 Февраль 2017, 14:41
Народ, кто-нибудь начал работать по теме? Меня свели со специалистом по ККМ, он мне рассказал немного, но со стороны железа. А вот программная часть пока в тумане.
Место общения программистов, форум разработчиков БД на Clarion
https://forum.clarionlife.net/
Который в Гугл? Тоже там не ахти. Народ всё же ждёт когда петух клюнет.Дед Пахом писал(а):Да по-моему это одна из самых популярных тем, по крайней мере в Clalist.
Код: Выделить всё
If ~Pos:flgCheck
ThisWindow.Update
BRW1.UpdateBuffer
?OLE1{'DeviceEnabled'}=True
If ?OLE1{'ResultCode'}=0
If ?OLE1{'GetStatus'}=0
If ?OLE1{'CheckState'}<>0 Then ?OLE1{'CancelCheck'}.
l:NomDocCheck=?OLE1{'CheckNumber'}
l:Opl=Abs(Pos:Summa)!l:Summa*l:Kol
?OLE1{'Password'}='1'
?OLE1{'Mode'}=1
If ?OLE1{'SetMode'}=0
?OLE1{'Name'}='Платные услуги'
?OLE1{'Price'}=format(l:Opl,'@N_9'&g:RazdExcel&'2b')
?OLE1{'Quantity'}=1
!?OLE1{'Department'}=1
If Pos:Summa<0
If ?OLE1{'Return'}=0
?OLE1{'TypeClose'}=0
If ?OLE1{'CloseCheck'}=0
Pos:flgCheck=1
Pos:NumberCheck=l:NomDocCheck
If Access:Pos.Update() = LEVEL:Benign
BRW1.ResetFromFile
ThisWindow.Reset(True)
end
ELSE
MESSAGE('Ошибка закрытия чека '&?OLE1{'ResultDescription'})
end
ELSE
MESSAGE('Ошибка регистрации возврата '&?OLE1{'ResultDescription'})
end
ELSE
If ?OLE1{'Registration'}=0
!---- оплата ----------
?OLE1{'Summ'}=format(l:Opl,'@N_9'&g:RazdExcel&'2b')
?OLE1{'TypeClose'}=0
If ?OLE1{'Payment'}=0
If ?OLE1{'CloseCheck'}=0
Pos:flgCheck=1
Pos:NumberCheck=l:NomDocCheck
If Access:Pos.Update() = LEVEL:Benign
BRW1.ResetFromFile
ThisWindow.Reset(True)
end
ELSE
MESSAGE('Ошибка закрытия чека '&?OLE1{'ResultDescription'})
end
ELSE
MESSAGE('Ошибка регистрации оплаты '&?OLE1{'ResultDescription'})
end
ELSE
MESSAGE('Ошибка регистрации продажи '&?OLE1{'ResultDescription'})
end
end
ELSE
MESSAGE('Не удалось установить режим продажи '&?OLE1{'ResultDescription'})
end
ELSE
message('Ошибка чтения статуса !'&?OLE1{'ResultDescription'})
end
ELSE
message('Порт ККМ не удалось занять !')
end
?OLE1{'DeviceEnabled'}=False
ELSE
message('Чек уже выведен !')
end
Спасибо. А объект OLE какой? Или он появляется после установки драйвера. Контора, которой это нужно, ещё не определилась с самим устройством, но вроде говорят драйвер для всех одинаковый. Да?Андрей писал(а):отправляю свой кусок кода печати чека и возврата
Тут же вопрос не размера поставки, а формы расчета. Если крупная закупка (типа опт) оплачивается наличными -