Выкачать инсталлятор Версия для офлайнового просмотра

Объект процедурного интерфейса для кассовых аппаратов с протоколом EQL.

 

Объект имеет имя EQLProc.EQLProcedure и предоставляет интерфейс IDispatch для вызова процедур кассового аппарата. В этом же интерфейсе реализованы свойства, которые позволяют управлять соединением с кассой.

 

Описания управляющих свойств.

 

Number

Номер аппарата.

Тип: строка

Умолчание: «1»

 

Позволяет указать кассовый аппарат для работы в виде:

Если в момент установки значения свойства сеанс связи с аппаратом был установлен, он закрывается.

 

User

Номер кассира

Тип: число

Умолчание: 1

 

Номер кассира, от которого открывается сеанс связи.

Если в момент установки значения свойства сеанс связи с аппаратом был установлен, он закрывается.

 

Password

Пароль кассира

Тип: число

Умолчание: 1

 

Пароль кассира. Для установки сеанса связи пароль должен совпадать с паролем этого кассира, сохраненном в кассовом аппарате.

Если в момент установки значения свойства сеанс связи с аппаратом был установлен, он закрывается.

 

Location

Имя компьютера, к которому физически подключена касса.

Тип: строка

Умолчание: пусто

 

Если в момент установки значения свойства сеанс связи с аппаратом был установлен, он закрывается.

 

Protocol

Объект протокола нижнего уровня, по которому подключена касса. Пустая строка соответствует протоколу нижнего уровня NetCash95. Для связи по упрощенному протоколу нужно использовать строку L2Com.HcComSessionCreator.

Тип: строка

Умолчание: пусто

 

Если в момент установки значения свойства сеанс связи с аппаратом был установлен, он закрывается.

 

Connect

Установка и проверка активности сеанса связи.

Тип: булевский

Умолчание: ЛОЖЬ

 

Переключение значения свойства из ЛОЖЬ в ИСТИНА приводит к установке сеанса связи с аппаратом с текущими значениями управляющих свойств. Обратное переключение приводит к разрыву сеанса связи. Проверка значения свойства показывает открыт или закрыт сеанс связи с аппаратом.

 

InitTMO

Таймаут установки связи с кассой (мс).

Тип: число

Умолчание: 30000 (30 сек.)

 

Таймаут для установки следующего сеанса связи с кассой. Установка параметра не влияет на активный сеанс, если он есть.

 

NoInitTxt

Сообщение при установке связи с кассой.

Тип: строка

Умолчание: «Wait for init device ...»

 

Позволяет установить текст сообщения в окне, которое появляется при первоначальном установлении сеанса связи с кассой. Если присвоить пустое значение, окно не будет появляться вообще. Окно появляется на время InitTMO.

Установка параметра не влияет на активный сеанс, если он есть.

 

OffTxt

Сообщение при потере связи с аппаратом.

Тип: строка

Умолчание: « Wait for device turn on ...»

 

Текст окна, которое появляется, если кассовый аппарат не отзывается при установленном сеансе связи с ним (Например, после установки сеанса связи он был выключен или с ним нарушено физическое соединение). Если значение свойства непустое, то попытка восстановить сеанс будет продолжаться до восстановления сеанса или до нажатия пользователем кнопки “Cancel” в окне сообщения. Если значение свойства пустое – окно не показывается, и программа пытается восстановить сеанс на протяжении 30 сек.

Установка параметра не влияет на активный сеанс, если он есть.

 

 

NoDataTxt

Сообщение об отсутствии ответа от аппарата.

Тип: строка.

Умолчание: «Wait for device data ...»

 

Текст окна, которое появляется, когда аппарат занят выполнением длительной операции, например, печать дневного отчета и не может ответить на команду от компьютера до выполнения этой операции. Если значение свойства непустое, то попытка восстановить сеанс будет продолжаться до успешного ответа аппарата или до нажатия пользователем кнопки “Cancel” в окне сообщения. Если значение свойства пустое – окно не показывается, и программа ждет ответа от аппарата на протяжении 30 сек.

Установка параметра не влияет на активный сеанс, если он есть.

 

SerLet

Буквы серийного номера аппарата.

Тип: строка

Умолчание: нет

 

Буквы в серийном номере аппарата. Свойство доступно только для чтения после того, как было установлено соединение с аппаратом (см. свойство Connect).

В случае, если системная плата аппарата поддерживает перепрошивку, вместо серийного номера возвращается номер системной платы.

 

SerNum

Цифры серийного номера аппарата.

Тип: число

Умолчание: нет

 

Цифры в серийном номере аппарата. Свойство доступно только для чтения после того, как было установлено соединение с аппаратом (см. свойство Connect).

В случае, если системная плата аппарата поддерживает перепрошивку, вместо серийного номера возвращается номер системной платы.

Пример работы с объектом.

1С:Предприятие.

Procedure Go()
    // создание объекта
    proc = CreateObject("EQLProc.EQLProcedure");
    // установка свойств объекта перед соединением с кассой
    Если СвязьПоУпрощённомуПротоколу Тогда
        proc.Number = "1;0"; // касса подключена к порту COM1
        proc.Protocol = "L2Com.HcComSessionCreator";
    ИначеЕсли СвязьПоСетевомуНомеру Тогда
        proc.Number = "1;1"; // порт COM1/сетевой номер 1
    Иначе // связь по логическому номеру
        proc.Number = 1; // логический номер 1
    КонецЕсли;
 
    proc.User = 1;
    proc.Password = 0;
 
    // Соединение с кассой
    proc.Connect = -1; //True
    // Процедуры работают только если установлена связь с кассой
    Если proc.Connect = -1 Тогда
        // Работа
        proc.SmenBegin();
        proc.BegChk();
        proc.FullProd(322233,3,1,1,1,1,"Пиво");
        proc.Oplata(0,0,0);
        proc.EndChk();
    КонецЕсли;
EndProcedure

Visual Basic

Для Visual Basic имеется два варианта подключения. Первый способ аналогичен подключению в 1С:Предприятии.

Dim fisc As Object
Set fisc = CreateObject("EQLProc.EQLProcedure")
On Error Resume Next
fisc.Number = 1
fisc.User = 1
fisc.Password = 0
fisc.Connect = True
If fisc.Connect = True Then
    fisc.BegChk
    fisc.PrintComment "Hello world!"
    fisc.EndChk
Else
    MsgBox "Связь с кассой не установлена!"
End If

 

Второй способ использует библиотеки типов. Для этого в редакторе Visual Basic в меню “Tools/References…” надо подключить ссылки: “EQLProc 1.0 Type Library” и “Help Co Common Cash Register Interfaces”.

Информацию о поддерживаемых интерфейсах можно просмотреть открыв Object Browser c помощью клавиши F2 и выбрав HcTLB из списка доступных библиотек типов.

Sub test_eqlproc()
    Dim procobj As New EQLProcedure
    Dim fp As IHcFReg
    Dim fpext As IHcFRegEx
    procobj.Number = "1;1"
    procobj.User = 1
    procobj.Password = 0
    procobj.Connect = True
    If procobj.Connect = True Then
        MsgBox CStr(procobj.SerLet) + CStr(procobj.SerNum)
        ' последующее присваивание возможно только после подключения кассы. Только теперь 
        ' объект знает набор интерфейсов, которые поддерживает подключенный кассовый 
        ' аппарат.
        Set fp = procobj 
        Set fpext = procobj
        ' Выдача чека
        fp.SmenBegin
        fp.BegChk
        fpext.FullProd 12346, 12, 2, 1, 1, 1, "Робот"
        fp.Oplata 0, 0, 0
        fp.EndChk
    Else
        MsgBox "Связь с кассой не установлена!"
    End If
End Sub

Visual C++

#import "EQLProc.dll" no_namespace
#import "HcTLB.tlb" no_namespace
 
void print() {
    IEQLProDispPtr procobj("EQLProc.EQLProcedure");
    procobj->Number = "1;1";
    procobj->User = 1L;
    procobj->Password = 0L;
    procobj->Connect = 1L; // тут происходит установление соединения с кассой
    if(procobj->Connect != 0L){ // если соединение установлено:
        char buf[64];
        sprintf(buf,"%s%s",(char*)_bstr_t(procobj->SerLet),(char*)_bstr_t(procobj->SerNum));
        ::MessageBox(NULL,buf,"ECR",0);
        /* последующее присваивание возможно только после подключения кассы. Только теперь 
	         объект знает набор интерфейсов, которые поддерживает подключенный кассовый аппарат.*/
        IHcFRegPtr fp = procobj;
        IHcFRegExPtr fpext = procobj;
        fp->BegChk();
        fpext->FullProd(12347L,15L,3L,1L,1L,1L,"Щетка");
        fp->Oplata(0L,0L,0L);
        fp->EndChk();
    }
    return 0;           
}

Свойства, позволяющие узнать информацию о конкретной модели кассы.

 

Name

Имя модели кассового аппарата.

 

TextCommentWidth

Максимальная ширина строки коментария в символах.

 

PLUCodeWidth

Максимальный размер кода товара в символах.

 

PLUNameWidth

Максимальный размер названия товара в символах.