' КАСБИ 02Ф , Пассивный-OnLine Протестировано с v1.01, v2.00 . ' Работает для указанных версий только с микросхемой расширения ' памяти ККМ 24C256 , впаивается под процессором. ' 'Versupp.dat должен находиться в разделяемом каталоге Enum CRIERR IERR_ALLOK = 0 'нет ошибки IERR_WRITE_FISC 'ошибка записи ФП IERR_CS_FISC '(Control Sum) ошибка КС ФП IERR_FF_FISC '(Free Fields) ошибка свободных полей ФП IERR_WRITE_FLASH 'ошибка записи РПЗУ IERR_NOSPACE_FISC 'нет места в ФП IERR_FAIL_RAM 'неисправность ОЗУ IERR_CS_ROM '(Control Sum) ошибка КС ПЗУ IERR_FAIL_PRINT 'неисправность ТПУ IERR_GONE_DATE = &HFD 'Прошедшая дата/время IERR_OUT_OF_PAPER = &HFE 'Обрыв бумаги IERR_NOT_CONNECTED = &H100 'не связались с портом IERR_WRONG_PARAMETER 'Параметр выходит за допустимые пределы IERR_NOT_SUPPORTED 'функция не реализована в данной версии прошивки IERR_TIMEOUT 'не дождались ответа от кассы IERR_CT_NOT_CLOSED 'Контрольная лента не закрыта IERR_FLASH_INFO_DAMAGE 'Функция, так или иначе производящая чтение 'РПЗУ, обнаружила нарушение информации IERR_OPERATION_IMPOSSIBLE 'Запрашиваемая операция в данной ситуации не 'осуществима IERR_CONF_CONFLICT 'Запрашиваемая покупка не соответствует текущей 'конфигурации кассы IERR_24_ELAPSED 'С момента открытия смены прошло 24 часа, 'запись покупки невозможна, необходимо закрыть 'смену IERR_CT_FULL 'На запрашиваемое количество покупок в буфере к/л 'не хватает места IERR_NOT_EXIST 'Запрашиваемого товара в БД не существует IERR_NOT_ENOUGH_CASH 'Недостаточно наличности (в кассе или у клиента) IERR_INTERSUM_TOO_LARGE 'Промежуточная сумма после умножения на количество, 'наценки/скидки или налога получилась больше '7 знаков(99999.99) End Enum Private Declare Sub CRDestroyInterface Lib "C:\Мои документы\VBasic\Проба CRInterface.dll POnLine\CRInterface.dll" () Private Declare Function CRInitInterface Lib "CRInterface.dll" ( _ ByVal nkkm As Long, _ ByVal P As Port) _ As Boolean Private Declare Function CRCreateCheck Lib "CRInterface.dll" ( _ ByRef a As Buy, _ ByVal L As Long, _ ByVal L1 As Double, _ ByVal b As Boolean, _ ByVal B1 As Boolean) _ As CRIERR Private Declare Function CRTestTPD Lib "CRInterface.dll" () As CRIERR Private Declare Function CRGetConfiguration Lib "CRInterface.dll" _ (ByRef a As CRCONFIG) As CRIERR Private Declare Function CRGetHeader Lib "CRInterface.dll" _ () ' (Str1 As String) As Integer Private Declare Function CRGetInputMode Lib "CRInterface.dll" (B1 As Boolean) As CRIERR Private Declare Function CRGetTaxVal Lib "CRInterface.dll" _ () ' (ByRef B1 As Double, ByVal i As Integer) As CRIERR Private Declare Function CRGetCurrentCashier Lib "CRInterface.dll" _ () ' (i As Integer) As CRIERR Private Declare Function CRCreateInputCheck Lib "CRInterface.dll" (ByVal InputSum As Double) As Integer 'Private Declare Function CRTestTPD Lib "CRInterface.dll" () As Integer Public Enum Port COM1 = 0 COM2 = 1 End Enum Private Type Buy quantity As Double price As Double raise As Double discount As Double nSection As Long nTax As Long End Type Private Type CRCONFIG cashiers As Long checkDiv As Long goodsBase As Long network As Long tax As Long numOfSections As Byte End Type Private Sub Command1_Click() Dim b As Buy Dim Str1 As String * 1000 Dim M(960) As Byte Dim ddd#, lll&, cur@ Dim E As CRIERR, i1 As Integer, bool As Boolean, Res As CRIERR Dim Conf As CRCONFIG b.quantity = 1 b.price = 0.23 b.discount = 0 b.nSection = 1 b.nTax = 0 b.discount = 0 Call CRDestroyInterface Res = CRInitInterface(29932415, COM1) Res = CRCreateCheck(b, 1, 0, False, False) If Res = IERR_ALLOK Then MsgBox "Для режима Пассивный OnLine : Нажмите на ККМ" Else MsgBox "Error" + Str(Res) End If 'E = CRTestTPD() 'Res = CRGetConfiguration(Conf) 'i = CRGetHeader(Str1) 'i = CRGetInputMode(B) 'i = CRGetTaxVal(D, i1) 'i = CRGetCurrentCashier(i1) 'E = CRCreateInputCheck(0.03) 'i = CRCreateCheck(Ch1, 1, 100, True, False) 'MsgBox "Error code is :" & Err.LastDllError Call CRDestroyInterface End Sub