О библиотеке
[Main] [Next]

   Динамически подключаемая библиотека функций libchon100.so предназначена для построения систем учета товародвижения и автоматизации работы оператора на базе ККМ АМС-100Ф в режиме "чековый online" при помощи персонального компьютера с процессором i80486 и выше и операционной системой Linux. Взаимодействие ПК с ККМ осуществляется по интерфейсу RS232. Данная библиотека является не полным аналогом библиотеки Chon100.dll для операционной системы Windows 9x/NT/2000/XP.
   Для запуска программ, использующих библитеку пользователь должен иметь права root'a. Библитека позволяет использовать одновременно только один из стандартных последовательных портов компьютера.
   Минимальные требования к операционной системе Linux:
·Linux kernel 2.4.7 или старше;  
·glibc 2.2.4 или старше.  
   Библиотека тестировавлась в дистрибутивах Linux:
·Red Hat 7.2  
·Mandrake 8.0  
   Идеология работы режима "чековый online" состоит в следующем: оператор, работая на ПК, формирует базу описателей отобранных для продажи товаров (совокупность покупок, признак возврата, оплачиваемые наличные, значение скидки/надбавки и т.п.), после чего нажатием клавиш ФЦ-ВВ на клавиатуре ККМ оператор инициирует запрос от кассового аппарата к ПК о содержании сформированной базы описателей, получив необходимую информацию ККМ размещает ее в своем чековом буфере и выводит чек. Отмена вывода чека осуществляется на ККМ с помощью нажатия клавиши СБ.
   Особенностью реализации данной библиотеки является то, что информацию о предварительно отобранных продаваемых товарах (вместе с сопроводительной информацией: значением скидки/надбавки на чек, суммы оплачиваемых наличных и т.д.) библиотека содержит в себе, управление этой внутренней базой данных организовано при помощи ряда функций, позволяющих добавлять/удалять покупки, получать информацию о содержании базы. Использование такого подхода позволило использовать для принимаемых и возвращяемых функциями параметров простые типы данных (указатель на нуль-терминированную строку (PChar), Integer и Double), что обеспечивает совместимость данной библиотеки с большинством сред разработки приложений.
   Отличия от библиотеки chon100.dll для операционной системы Windows:
·отсутствует реализация событий;  
·вывод чека производится с помощью функции PrintCheck;  
·отмена вывода чека производится на ККМ с помощью клавиши "СБ".  



Замечания по работе библиотеки можно отправлять на e-mail:
kkm@kaluga.ru

Наш сайт в интернет:
www.kkm.kaluga.ru


Copyright © 2002 Версия-Т









Ограничения
[Previous] [Main] [Next]

   Библиотека защищена от копирования и не предназначена для свободного использования сверх ограниченного числа инсталляций с поставляемой дискеты (дискет). Возможно использование данного программного продукта без регистрации в демонстрационном режиме (с ограничением разрядности стоимости покупки до х.хх руб.), однако декомпиляция и доработка библиотеки является нарушением авторских и имущественных прав и может повлечь за собой судебный иск в соответствии с законами РФ о правовой охране программного обеспечения.

   Внимание! Данная библиотека предназначена для использования с ККМ АМС-100Ф с установленными версиями ПО ККМ 2.2.Х и 2.3.Х. На ККМ должен быть установлен режим "Есть сеть".






Функции. Общие замечания
[Previous] [Main] [Next]

   По логике выполняемых действий все функции можно разделить на несколько групп:

·функции, обеспечивающие коммуникации;  
·функции управления базой описателей товаров;  
·функции получения статистики по ККМ;  
·функции вывода чека;  
·сервисные (дополнительные) функции.  

   Функции первой группы предназначены для настройки обмена, установления связи с ККМ и освобождения используемого COM порта, по окончании работы с кассовым аппаратом.
   Функции управления базой описателей товаров позволяют манипулировать данными, содержащими информацию о покупках, которые попадут в чек, настраивать параметры выводимого чека (чек возврата/продажи, наличный/безналичный расчет, значение скидки/надбавки на чек и т.д.), а также формировать заголовок и окончание чека. Наименования всех функций данной группы предваряется префиксом cb.
   Функции получения статистики по ККМ позволяют читать из ККМ значения большинства денежных регистров и ряда счетчиков, получать заводской номер ККМ, версию ПО ККМ и т.п.
   Функции управления вывода чека предназначены для запуска.
   К группе сервисных функций были отнесены функции повтора чека при обрыве бумаги, блокировки/разблокировки клавиатуры ККМ, прогона бумаги, очистки индикатора ККМ, печати штрихового кода EAN-13, а также функции получения дополнительной информации об ошибках.
   Значения, возвращаемые некоторыми функциями, будут актуальными только после установления связи с ККМ, хотя и не будут возвращать сообщения об ошибках. Это связано с тем, что при данной операции один раз происходит вычитывание настроек ККМ, необходимых для корректной работы библиотеки. По этой причине настоятельно рекомендуется использовать все функции данной библиотеки (за исключением
SetSupplierCode) только после успешного завершения функции ConnectKKM.






Функции. Возвращаемые ошибки
[Previous] [Main] [Next]


0    - Операция успешно завершена.  
1    - Ошибка инициализации порта.  
2    - Ошибка интерфейса с ККМ.  
3    - Данная версия ПО ККМ не поддерживается.  
4    - Недопустимое число строк прогона.  
5    - Отсутствует бумага в ТПУ.  
6    - ККМ не в исходном состоянии режима "Касса".  
7    - Необходимо установить режим работы "С запятой".  
8    - Необходимо вывести контрольную ленту.  
9    - Контрольная память оплат не содержит покупок.  
10    - Покупки с таким номером в КЛ нет.  
11    - Покупки с таким номером в базе описателей товаров нет.  
12    - Недопустимый номер отдела.  
13    - Недопустимое значение оплачиваемых наличных.  
14    - Недопустимое значение стоимости покупки.  
15    - Недопустимое значение количества товара.  
16    - Недопустимое число строк наименования покупки.  
17    - База описателей товаров переполнена.  
18    - База описателей товаров не пуста. Проведение операции невозможно.  
19    - Недопустимое значение скидки/надбавки.  
20    - Недостаточно наличных в кассе.  
21    - Недостаточно наличных для оплаты покупок.  
22    - Получена покупка с нулевой стоимостью.  
23    - Заголовок чека не может содержать более 7 (ПО ККМ 2.2.Х) или 3 (ПО ККМ 2.3.Х) строк.  
24    - Окончание чека не может содержать более 3 строк.  
25    - Строка с таким номером отсутствует в заголовке чека.  
26    - Строка с таким номером отсутствует в окончании чека.  
27    - Не совпадают дата и время ККМ и ПК.  
28    - Нет чека, который можно повторить.  
29    - Неверный формат цифровой подписи штрихового кода.  
30    - Недопустимая разрядность цифровой подписи штрихового кода.  
31    - Возможно, чек был выведен не полностью.  
32    - Чек не выведен (возможно неисправно оборудование).  






SetSupplierCode
[Previous] [Main] [Next]

Описание:

   procedure SetSupplierCode(Code: PChar);  

Принимаемые параметры:

   Code - строковое представление кода поставщика.  

Процедура предназначена для указания кода поставщика для ККМ, с которой необходимо установить связь. Процедура должна вызываться до попытки установки связи. В результате ее выполнения происходит автоматический вызов процедуры
DisconnectKKM.


Пример

procedure TDemoForm.ConnectButton1Click(Sender: TObject);
begin

  SetSupplierCode('7463546576'
);
  if
 ConnectKKM(1) <> 1 then
    ShowMessage(GetErrorMsg);
end
;






ConnectKKM
[Previous] [Main] [Next]

Описание:

   function ConnectKKM(Port: Integer): Integer;  

Принимаемые параметры:

   Port - номер последовательного порта.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Данная функция используется для настройки интерфейса (как физических параметров линии, так и логики передачи). Функцию необходимо использовать до использования любой другой (но после
SetSupplierCode). После однократного использования функции, порт Вашего компьютера будет настроен, и необходимость в применении данной функции в дальнейшем отпадет. Отметим, что сделанные настройки отменятся после завершения приложения, использующего библиотеку. Перед вызовом данной функции ККМ должен быть подключен к ПК и включен.

Если Вам потребуется использовать порт не в рамках приложения, использующего настоящую библиотеку, необходимо предварительно освободить порт функцией DisconnectKKM.

Пример

procedure TDemoForm.ConnectButton1Click(Sender: TObject);
begin

  SetSupplierCode('7463546576'
);
  if
 ConnectKKM(1) <> 1 then        //ККМ подключена к COM1
    ShowMessage(GetErrorMsg);
end
;






DisonnectKKM
[Previous] [Main] [Next]

Описание:

   procedure DisconnectKKM;  

Данная процедура используется при завершении работы с ККМ для освобождения последовательного порта.

Пример

procedure TDemoForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin

  DisconnectKKM;
end
;






cbAddTitleLine
[Previous] [Main] [Next]

Описание:

   function cbAddTitleLine(Line: PChar): Integer;  

Принимаемые параметры:

   Line - указатель на нуль-терминированную строку, содержащую строку заголовка чека.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для формирования заголовка чека и добавляет одну строку в массив строк заголовка, хранящийся в загруженном экземпляре библиотеки. В добавляемой строке первым символом должен стоять признак ширины печати: W - широкая печать, N - нормальная печать. При использовании широкой печати в строку заголовка умещается 9 символов, при узкой - 17. Формировать заголовок достаточно один раз за сеанс работы с библиотекой. Если на момент запроса от ККМ пользователем не будет определено ни одной строки заголовка, при выводе чека ККМ напечатает заголовок, запрограммированный в ней.

Пример

procedure TDemoForm.cbAddTitleLineButtonClick(Sender: TObject);
begin

  if
 cbAddTitleLine(PChar('W Начало'))<>1 then
    ShowMessage(GetErrorMsg);
end
;






cbGetTitleLinesCount
[Previous] [Main] [Next]

Описание:

   function cbGetTitleLinesCount: Integer;  

Возвращаемые значения:

   Число строк заголовка чека, определенных пользователем.  

Функция предназначена для получения числа строк заголовка чека, определенных пользователем и хранящихся во внутреннем массиве загруженного экземпляра библиотеки.

Пример

procedure TDemoForm.cbGetTitleLinesCountButtonClick(Sender: TObject);
var

  Count: Integer;
begin

  Count:=cbGetTitleLinesCount; 
  ShowMessage('Число строк в заголовке чека = '
+IntToStr(Count));
end
;






cbGetTitleLine
[Previous] [Main] [Next]

Описание:

   function cbGetTitleLine(Index: Integer; var Line: PChar): Integer;  

Принимаемые параметры:

   Index - номер строки заголовка, которую необходимо получить;  
   Line - переменная, через которую возвращается указатель на нуль-терминированную строку, содержащую текст запрошенной строки заголовка.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция позволяет получить текст строки заголовка чека, добавленной ранее во внутренний массив загруженного экземпляра библиотеки при помощи функции
cbAddTitleLine.

Пример

procedure TDemoForm.ReadTitleButtonClick(Sender: TObject); //Читаем весь заголовок
var

  i, Count: Integer;
  ResultStr: String
;
  TempLine: PChar;
  S: String
[18];
begin

  Count:=cbGetTitleLinesCount; //Получаем число строк заголовка

  ResultStr:=''
;
  TempLine:=@S;
  for
 i:=1 to Count do
    begin

      if
 cbGetTitleLine(i, TempLine)<>1 then  //Читаем строку
        begin

          ShowMessage(GetErrorMsg);
          Exit;
        end
;
      ResultStr:=ResultStr+String
(TempLine)+#13+#10;
    end
;
  ShowMessage(ResultStr);
end
;






cbClearTitle
[Previous] [Main] [Next]

Описание:

   procedure cbClearTitle;  

Процедура служит для удаления всех строк заголовка чека, добавленных ранее во внутренний массив загруженного экземпляра библиотеки при помощи функции
cbAddTitleLine.

Пример

procedure TDemoForm.cbClearTitleButtonClick(Sender: TObject);
begin

  cbClearTitle;
end
;






cbAddBottomLine
[Previous] [Main] [Next]

Описание:

   function cbAddBottomLine(Line: PChar): Integer;  

Принимаемые параметры:

   Line - указатель на нуль-терминированную строку, содержащую строку окончания чека.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для формирования окончания чека и добавляет одну строку в массив строк окончания, хранящийся в загруженном экземпляре библиотеки. В добавляемой строке первым символом должен стоять признак ширины печати: W - широкая печать, N - нормальная печать. При использовании широкой печати в строку окончания умещается 9 символов, при узкой - 17. Формировать окончание достаточно один раз за сеанс работы с библиотекой. Если на момент запроса от ККМ пользователем не будет определено ни одной строки окончания, при выводе чека ККМ напечатает окончание, запрограммированное в ней.

Пример

procedure TDemoForm.cbAddBottomLineButtonClick(Sender: TObject);
begin

  if
 cbAddBottomLine(PChar('W  Конец'))<>1 then
    ShowMessage(GetErrorMsg);
end
;






cbGetBottomLinesCount
[Previous] [Main] [Next]

Описание:

   function cbGetBottomLinesCount: Integer;  

Возвращаемые значения:

   Число строк окончания чека, определенных пользователем.  

Функция предназначена для получения числа строк окончания чека, определенных пользователем и хранящихся во внутреннем массиве загруженного экземпляра библиотеки.

Пример

procedure TDemoForm.cbGetBottomLinesCountButtonClick(Sender: TObject);
var

  Count: Integer;
begin

  Count:=cbGetBottomLinesCount; 
  ShowMessage('Число строк в окончании чека = '
+IntToStr(Count));
end
;






cbGetBottomLine
[Previous] [Main] [Next]

Описание:

   function cbGetBottomLine(Index: Integer; var Line: PChar): Integer;  

Принимаемые параметры:

   Index - номер строки окончания, которую необходимо получить;  
   Line - переменная, через которую возвращается указатель на нуль-терминированную строку, содержащую текст запрошенной строки окончания.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция позволяет получить текст строки окончания чека, добавленной ранее во внутренний массив загруженного экземпляра библиотеки при помощи функции
cbAddBottomLine.

Пример

procedure TDemoForm.ReadBottomButtonClick(Sender: TObject); //Читаем весь подвал чека
var

  i, Count: Integer;
  ResultStr: String
;
  TempLine: PChar;
  S: String
[18];
begin

  Count:=cbGetBottomLinesCount;  //Получаем число строк окончания

  ResultStr:=''
;
  TempLine:=@S;
  for
 i:=1 to Count do
    begin

      if
 cbGetBottomLine(i, TempLine)<>1 then  //Читаем строку
        begin

          ShowMessage(GetErrorMsg);
          Exit;
        end
;
      ResultStr:=ResultStr+String
(TempLine)+#13+#10;
    end
;
  ShowMessage(ResultStr);
end
;






cbClearBottom
[Previous] [Main] [Next]

Описание:

   procedure cbClearBottom;  

Процедура служит для удаления всех строк окончания чека, добавленных ранее во внутренний массив загруженного экземпляра библиотеки при помощи функции
cbAddBottomLine.

Пример

procedure TDemoForm.cbClearBottomButtonClick(Sender: TObject);
begin

  cbClearBottom;
end
;






cbAddSale
[Previous] [Main] [Next]

Описание:

   function cbAddSale(Name: PChar; Price, Qty: Double; Section: Integer): Integer;  

Принимаемые параметры:

   Name - указатель на нуль-терминированную строку, содержащую наименование товара;  
   Price - стоимость единицы товара;  
   Qty - количество товара;  
   Section - отдел по которому будет продаваться товар.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для добавления информации о продаваемом товаре в базу описателей товаров библиотеки. В зависимости от установленного при помощи функции
cbSetLinesInSale числа строк наименования покупки в одном чеке будет помещаться различное число покупок. Порядок очистки базы описателей товаров определяется при помощи процедуры cbSetClearBufMode.

Пример

procedure TDemoForm.cbAddSaleButtonClick(Sender: TObject);
var

  GoodName: String
;
  GoodPrice, GoodQty: Double;
  GoodSection: Integer;
begin

  GoodName:='Новый товар'
;
  GoodPrice:=12.50
;
  GoodQty:=1
;
  GoodSection:=1
;
  if
 cbAddSale(PChar(GoodName),GoodPrice, GoodQty, GoodSection) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
end
;






cbGetSalesCount
[Previous] [Main] [Next]

Описание:

   function cbGetSalesCount: Integer;  

Возвращаемые значения:

   Число описателей товаров во внутренней базе библиотеки.  

Функция возвращает число описателей товаров, находящихся на данный момент во внутренней базе загруженного экземпляра библиотеки.

Пример

procedure TDemoForm.cbGetSalesCountButtonClick(Sender: TObject);
var

  Count: Integer;
begin

  Count:=cbGetSalesCount; 
  ShowMessage('Число описателей товаров в базе библиотеки = '
+IntToStr(Count));
end
;






cbGetSale
[Previous] [Main] [Next]

Описание:

   function cbGetSale(Index: Integer; var Name: PChar; var Price, Qty: Double; var Section: Integer): Integer;  

Принимаемые параметры:

   Index - номер описателя товара в базе данных библиотеки;  
   Name - переменная, через которую возвращается указатель на нуль-терминированную строку, содержащую наименование товара;  
   Price - переменная, через которую возвращается стоимость товара;  
   Qty - переменная, через которую возвращается количество товара;  
   Section - переменная, через которую возвращается отдел, по которому должен продаваться товар.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для получения описателя товара из внутренней базы данных загруженного экземпляра библиотеки по его порядковому номеру.

Пример

procedure TDemoForm.GetCheckButtonClick(Sender: TObject);
var

  S: String
[51];
  GoodName: PChar;
  Price, Qty: Double;
  Section: Integer;
  ResultStr: String
;
begin

  GoodName:=@S;
  if
 cbGetSale(1, GoodName, Price, Qty, Section) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ResultStr:=String
(GoodName)+'  '+FormatFloat('0.00 ''р.''',Price)+
  '  '
+FormatFloat('0.000',Qty)+'  '+IntToStr(Section);
  ShowMessage(ResultStr);
end
;






cbDeleteSale
[Previous] [Main] [Next]

Описание:

   function cbDeleteSale(Index: Integer): Integer;  

Принимаемые параметры:

   Index - порядковый номер описателя товара в базе данных библиотеки.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция удаляет указанный описатель товара из базы данных библиотеки, смещая описатели, расположенные после удаляемого на одну позицию вверх.

Пример

procedure TDemoForm.cbDeleteSaleButtonClick(Sender: TObject);
begin

  if
 cbDeleteSale(1)<>1 then
    ShowMessage(GetErrorMsg);
end
;






cbClearSales
[Previous] [Main] [Next]

Описание:

   procedure cbClearSales;  

Процедура очищает базу данных описателей товаров.

Пример

procedure TDemoForm.cbClearSalesButtonClick(Sender: TObject);
begin

  cbClearSales;
end
;






cbSetCreditMode
[Previous] [Main] [Next]

Описание:

   procedure cbSetCreditMode(Mode: Integer);  

Принимаемые параметры:

   Mode - параметр, определяющий вид платежа:
   0 - чек за наличный расчет;  
   1 - чек за безналичный расчет.  

Процедура позволяет установить тип платежа в выводимом чеке. Установки, произведенные данной процедурой будут распространяться на все последующие выводимые чеки. Для изменения типа платежа необходимо вызвать cbSetCreditMode с другим значением принимаемого параметра. Текущее состояние вида платежа можно получить при помощи функции
cbGetCreditMode.

Пример

procedure TDemoForm.cbSetCreditModeButtonClick(Sender: TObject);
begin

  cbSetCreditMode(1
); //Чек за безналичный расчет
end
;






cbGetCreditMode
[Previous] [Main] [Next]

Описание:

   function cbGetCreditMode: Integer;  

Возвращаемые значения:
   
   Вид платежа в выводимом чеке:  
   0 - чек за наличный расчет;  
   1 - чек за безналичный расчет.  

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

Пример

procedure TDemoForm.cbGetCreditModeButtonClick(Sender: TObject);
var

  ResultStr: String
;
begin

  ResultStr:='Будет выведен чек за '
;
  if
 cbGetCreditMode = 1 then
    ResultStr:=ResultStr+'безналичный расчет.'

  else

    ResultStr:=ResultStr+'наличный расчет.'
;
  ShowMessage(ResultStr);
end
;






cbSetDiscountValue
[Previous] [Main] [Next]

Описание:

   function cbSetDiscountValue(Value: Integer): Integer;  

Принимаемые параметры:

   Value - целочисленное значение процента скидки/надбавки на чек (допустимый диапазон значений от -99 до 99).  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция устанавливает скидку/надбавку на чек в процентном выражении. Сброс установленного значения в ноль при успешном выводе чека определяется процедурой
cbSetClearBufMode. Использование данной процедуры имеет смысл только при запрограммированном на ККМ режиме работы со скидками/надбавками. Определить запрограммирован ли указанный режим можнго при помощи функции GetDiscountMode.

Пример

procedure TDemoForm.cbSetDiscountValueButtonClick(Sender: TObject);
begin

  if
 cbSetDiscountValue(-3) <> 1 then //Установим скидку на чек = 3%
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
end
;






cbGetDiscountValue
[Previous] [Main] [Next]

Описание:

   function cbGetDiscountValue: Integer;  

Возвращаемые значения:

   Процентное выражение значения скидки/надбавки на чек.  

Функция возвращает процентное выражение значения скидки/надбавки на чек, установленное при помощи
cbSetDiscountValue.

Пример

procedure TDemoForm.cbGetDiscountValueButtonClick(Sender: TObject);
begin

  ShowMessage('Скидка/Надбавка на чек = '
+IntToStr(cbGetDiscountValue)+'%');
end
;






cbSetReturnMode
[Previous] [Main] [Next]

Описание:

   procedure cbSetReturnMode(Mode: Integer);  

Принимаемые параметры:

   Mode - параметр, определяющий тип выводимого чека:
   0 - чек продажи;  
   1 - чек возврата.  

Процедура позволяет установить тип выводимого чека. Установки произведенные данной процедурой будут распространяться на все последующие выводимые чеки. Для изменения типа выводимого чека необходимо вызвать cbSetCreditMode с другим значением принимаемого параметра.

Пример

procedure TDemoForm.cbSetReturnModeButtonClick(Sender: TObject);
begin

  cbSetReturnMode(1
); //1 - чек возврата товара
end
;






cbGetReturnMode
[Previous] [Main] [Next]

Описание:

   function cbGetReturnMode: Integer;  

Возвращаемые значения:
   
   Тип выводимого чека:  
   0 - чек продажи;  
   1 - чек возврата.  

Функция предназначена для получения текущего типа выводимого чека, установленного при помощи процедуры
cbSetReturnMode.

Пример

procedure TDemoForm.cbGetReturnModeButtonClick(Sender: TObject);
var

  ResultStr: String
;
begin

  ResultStr:='Будет выведен чек '
;
  if
 cbGetReturnMode = 1 then
    ResultStr:=ResultStr+'возврата.'

  else

    ResultStr:=ResultStr+'продажи.'
;
  ShowMessage(ResultStr);
end
;






cbSetCash
[Previous] [Main] [Next]

Описание:

   function cbSetCash(Value: Double): Integer;  

Принимаемые параметры:

   Value - сумма наличных, переданных кассиру покупателем, для оплаты покупок.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для установки значение оплачиваемых наличных. Используется обычно для того, чтобы ККМ при выводе чека подсчитала сдачу. Если в этом нет необходимости, то следует передать в качестве принимаемого параметра нулевое значение. Порядок обнуления установленного значения оплачиваемых наличных при успешном выводе чека определяется при помощи процедуры
cbSetClearBufMode.

Пример

procedure TDemoForm.cbSetCashButtonClick(Sender: TObject);
begin

  cbSetCash(100
); //Сумма, полученная от покупателя
end
;






cbGetCash
[Previous] [Main] [Next]

Описание:

   function cbGetCash: Double;  

Возвращаемые значения:

   Сумма наличных, переданных кассиру покупателем, для оплаты покупок.  

Функция необходима для получения значения оплачиваемых наличных, установленного при помощи функции
cbSetCash.

Пример

procedure TDemoForm.cbGetCashButtonClick(Sender: TObject);
begin

  ShowMessage('Оплачивыемые наличные = '
+FormatFloat('0.00' '' р.''',cbGetCash)); 
end
;






cbSetLinesInSale
[Previous] [Main] [Next]

Описание:

   function cbSetLinesInSale(Value: Integer): Integer;  

Принимаемые параметры:

   Value - максимальное число строк, отводимое на отображения наименования покупки в чеке (допустимый диапазон значений от 0 до 3).  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция устанавливает значение максимального числа строк, отводимое на отображение наименования покупки в чеке. В одной строке наименования покупки в чеке умещается 17 символов. В зависимости от того, сколько строк будет отведено для отображения наименования каждой покупки, максимальное число покупок в чеке будет изменяться:

   0 (без наименования) - 40 покупок;  
   1 строка наименования - 26 покупок;  
   2 строки наименования - 13 покупок;  
   3 строки наименования - 7 покупок.  

Применение данной функции допустимо только при пустой базе описателей товаров. Значение, выставленное в библиотеке по умолчанию равняется 1 (26 покупок в чеке).

Пример

procedure TDemoForm.cbSetLinesInSaleButtonClick(Sender: TObject);
begin

  if
 cbSetLinesInSale(2) <> 1 then //Две строки для наименования покупки
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
end
;






cbGetLinesInSale
[Previous] [Main] [Next]

Описание:

   function cbGetLinesInSale: Integer;  

Возвращаемые значения:

Максимальное число строк, отводимое на отображение наименования покупки в чеке.  

Функция предназначена для получения текущего значения максимального числа строк наименования покупки в чеке, установленной при помощи
cbSetLinesInSale.

Пример

procedure TDemoForm.cbGetLinesInSaleButtonClick(Sender: TObject);
begin

  ShowMessage('Число строк наименования покупки = '
+IntToStr(cbGetLinesInSale)); 
end
;






cbSetClearBufMode
[Previous] [Main] [Next]

Описание:

   procedure cbSetClearBufMode(Mode: Integer);  

Принимаемые параметры:

   Mode - параметр, определяющий порядок очистки базы описателей товаров:
   0 - не очищать;  
   1 - очищать.  

Процедура позволяет настроить порядок очистки базы описателей товаров после успешного вывода чека. При передаваемом параметре равном 1 после успешного вывода чека из базы будут удалены все описатели товаров, а значение оплачиваемых наличных (установленное функцией
cbSetCash) и процентное выражение скидки/надбавки на чек (установленное функцией cbSetDiscountValue) будут сброшены в ноль. По умолчанию база описателей очищается после успешного вывода чека.

Пример

procedure TDemoForm.cbSetClearBufModeButtonClick(Sender: TObject);
begin

  cbSetClearBufMode(1
); //Очищать базу описателей после вывода чека
end
;






cbGetClearBufMode
[Previous] [Main] [Next]

Описание:

   function cbGetClearBufMode: Integer;  

Возвращаемые значения:

   Значение параметра, определяющего порядок очистки базы описателей товаров:
   0 - не очищать;  
   1 - очищать.  

Пример

procedure TDemoForm.cbGetClearBufModeButtonClick(Sender: TObject);
var

  ResultStr: String
;
begin

  ResultStr:='После успешного вывода чека база описателей '
;
  if
 cbGetClearBufMode = 1 then
    ResultStr:=ResultStr+'будет очищена.'

  else

    ResultStr:=ResultStr+'не будет очищена.'
;
  ShowMessage(ResultStr);
end
;






cbGetSum
[Previous] [Main] [Next]

Описание:

   function cbGetSum: Double;  

Возвращаемые значения:

Текущее значение суммы по чеку.  

Функция позволяет получить текущее значение суммы по чеку с учетом скидок/надбавок. Сумма подсчитывается по описателям, находящимся в базе данных библиотеки и изменяется при проведении любой операции над базой: добавление/удаление описателя, изменение значения скидки/надбавки на чек и т.д.

Пример

procedure TDemoForm.cbGetSumButtonClick(Sender: TObject);
begin

  ShowMessage('Сумма по 
чеку = '+
              FormatFloat('0.00'
 '' р.''',cbGetSum)); 
end
;






GetBroughtSum
[Previous] [Main] [Next]

Описание:

   function GetBroughtSum(var Sum: Double): Integer;  

Принимаемые параметры:

Sum - переменная, через которую возвращается значение внесенной в кассу суммы.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция позволяет получить значение внесенной в кассу суммы. Сумма может быть внесена один раз за смену при отсутствии покупок в контрольной памяти оплат.

Пример

procedure TDemoForm.GetBroughtSumButtonClick(Sender: TObject);
var

  TempVar: Double;
begin

  if
 GetBroughtSum(TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Внесенная сумма = '
+FormatFloat('0.00 ''р.''',TempVar));
end
;






GetCashSum
[Previous] [Main] [Next]

Описание:

   function GetCashSum(var Sum: Double): Integer;  

Принимаемые параметры:

Sum - переменная, через которую возвращается сумма наличных в кассе.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для получения суммы наличных в кассе, накопленных за текущую смену.

Пример

procedure TDemoForm.GetCashSumButtonClick(Sender: TObject);
var

  TempVar: Double;
begin

  if
 GetCashSum(TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Сумма наличных в кассе = '
+FormatFloat('0.00 ''р.''',TempVar));
end
;






GetKKMNum
[Previous] [Main] [Next]

Описание:

   function GetKKMNum(var KKMNum: Integer): Integer;  

Принимаемые параметры:

KKMNum - переменная, через которую возвращается заводской номер ККМ.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для получения заводского номера ККМ, с которой на данный момент установлено соединение.

Пример

procedure TDemoForm.GetKKMNumButtonClick(Sender: TObject);
var

  TempVar: Integer;
begin

  if
 GetKKMNum(TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Заводской номер ККМ = '
+IntToStr(TempVar));
end
;






GetKLNum
[Previous] [Main] [Next]

Описание:

   function GetKLNum(var KLNum: Integer): Integer;  

Принимаемые параметры:

KLNum - переменная, через которую возвращается номер текущей контрольной ленты.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция позволяет получить номер текущей контрольной ленты в ККМ.

Пример

procedure TDemoForm.GetKLNumButtonClick(Sender: TObject);
var

  TempVar: Integer;
begin

  if
 GetKLNum(TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Номер текущей контрольной ленты = '
+IntToStr(TempVar));
end
;






GetNI
[Previous] [Main] [Next]

Описание:

   function GetNI(var NI: Double): Integer;  

Принимаемые параметры:

NI - переменная, через которую возвращается значение необнуляемого итога.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для получения значения необнуляемого итога по ККМ с учетом продаж за текущую смену.

Пример

procedure TDemoForm.GetNIButtonClick(Sender: TObject);
var

  TempVar: Double;
begin

  if
 GetNI(TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Необнуляемый итог = '
+FormatFloat('0.00 ''р.''',TempVar));
end
;






GetRemovedQty
[Previous] [Main] [Next]

Описание:

   function GetRemovedQty(var Qty: Integer): Integer;  

Принимаемые параметры:

Qty - переменная, через которую возвращается число снятий выручки.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция позволяет получить число снятий выручки с ККМ за текущую смену. Число снятий за смену не может превышать 10.

Пример

procedure TDemoForm.GetRemovedQtyButtonClick(Sender: TObject);
var

  TempVar: Integer;
begin

  if
 GetRemovedQty(TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Количество снятий выручки за смену = '
+IntToStr(TempVar));
end
;






GetRemovedSum
[Previous] [Main] [Next]

Описание:

   function GetRemovedSum(var Sum: Double): Integer;  

Принимаемые параметры:

Sum - переменная, через которую возвращается общая сумма снятой выручки.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция позволяет получить значение суммарной снятой с ККМ за смену выручки. Количество снятий выручки за смену не может превышать 10.

Пример

procedure TDemoForm.GetRemovedSumButtonClick(Sender: TObject);
var

  TempVar: Double;
begin

  if
 GetRemovedSum(TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Снятая за смену выручка = '
+FormatFloat('0.00 ''р.''',TempVar));
end
;






GetReturnedSum
[Previous] [Main] [Next]

Описание:

   function GetReturnedSum (var Sum: Double): Integer;  

Принимаемые параметры:

Sum - переменная, через которую возвращается сумма возвратов по ККМ.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для получения значения общей суммы возвратов товаров проведенных на ККМ с начала смены.

Пример

procedure TDemoForm.GetReturnedSumButtonClick(Sender: TObject);
var

  TempVar: Double;
begin

  if
 GetReturnedSum(TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Сумма возвратов по кассе = '
+FormatFloat('0.00 ''р.''',TempVar));
end
;






GetReturnedSumOnSection
[Previous] [Main] [Next]

Описание:

   function GetReturnedSumOnSection (Section: Integer; var Sum: Double): Integer;  

Принимаемые параметры:

Section - номер отдела;  
Sum - переменная, через которую возвращается сумма возвратов.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция позволяет получить значение сумы возвратов товаров проведенных на ККМ по указанному отделу с начала смены.

Пример

procedure TDemoForm.GetReturnedSumOnSectionButtonClick(Sender: TObject);
var

  TempVar: Double;
  Section: Integer;
begin
  Section:=1;
  if
 GetReturnedSumOnSection(Section, TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Сумма возвратов по отделу №'
+IntToStr(Section)+
              ' = '
+FormatFloat('0.00 ''р.''',TempVar));
end
;






GetSaleCountOnSection
[Previous] [Main] [Next]

Описание:

   function GetSaleCountOnSection(Section: Integer; var SaleCount: Integer): Integer;  

Принимаемые параметры:

Section - номер отдела;  
SaleCount - переменная, через которую возвращается количество продаж.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для получения числа продаж по указанному отделу с начала смены.

Пример

procedure TDemoForm.GetSaleCountOnSectionButtonClick(Sender: TObject);
var

  Section, TempVar: Integer;
begin

  Section:=1
;
  if
 GetSaleCountOnSection(Section, TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Количество продаж по отделу №'
+IntToStr(Section)+
              ' = '
+IntToStr(TempVar));
end
;






GetSaleNum
[Previous] [Main] [Next]

Описание:

   function GetSaleNum(var SaleNum: Integer): Integer;  

Принимаемые параметры:

SaleNum - переменная, через которую возвращается номер следующей покупки в контрольной памяти оплат.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для получения следующей покупки в контрольной памяти оплат. Значение этого параметра изменяется в ККМ только при выводе чека. Если необходимо вычислить номер покупки с учетом тех, которые уже находятся в базе описателей товаров, то к SaleNum следует прибавить значение, полученное при помощи функции
cbGetSalesCount.

Пример

procedure TDemoForm.GetSaleNumButtonClick(Sender: TObject);
var

  TempVar: Integer;
begin

  if
 GetSaleNum(TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Номер следующей покупки в контрольной памяти оплат = '

              +IntToStr(TempVar));
end
;






GetSalesSumOnSection
[Previous] [Main] [Next]

Описание:

   function GetSalesSumOnSection (Section: Integer; var Sum: Double): Integer;  

Принимаемые параметры:

Section - номер отдела;  
Sum - переменная, через которую возвращается сумма продаж.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для получения текущей суммы продаж по указанному отделу с начала смены.

Пример

procedure TDemoForm.GetSalesSumOnSectionButtonClick(Sender: TObject);
var

  TempVar: Double;
  Section: Integer;
begin

  Section:=1
;
  if
 GetSalesSumOnSection(Section, TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Сумма продаж по отделу №'
+IntToStr(Section)+
              ' = '
+FormatFloat('0.00 ''р.''',TempVar));
end
;






GetSalesSumWithNDEC
[Previous] [Main] [Next]

Описание:

   function GetSalesSumWithNDEC (var Sum: Double): Integer;  

Принимаемые параметры:

Sum - переменная, через которую возвращается сумма продаж.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция позволяет получить сумму продаж по ККМ с начала смены с учетом скидок/надбавок, налогов и возвратов. По смыслу это значение представляет собой текущую итоговую сумму продаж за смену.

Пример

procedure TDemoForm.GetSalesSumWithNDECButtonClick(Sender: TObject);
var

  TempVar: Double;
begin

  if
 GetSalesSumWithNDEC(TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Текущая ИС = '
+FormatFloat('0.00 ''р.''',TempVar));
end
;






GetSalesSumWithoutNDEC
[Previous] [Main] [Next]

Описание:

   function GetSalesSumWithoutNDEC (var Sum: Double): Integer;  

Принимаемые параметры:

Sum - переменная, через которую возвращается сумма продаж.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция позволяет получить сумму продаж по ККМ без учета скидок/надбавок, налогов и возвратов.

Пример

procedure TDemoForm.GetSalesSumWithoutNDECButtonClick(Sender: TObject);
var

  TempVar: Double;
begin

  if
 GetSalesSumWithoutNDEC(TempVar) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  ShowMessage('Сумма продаж без учета скидок/надбавок, налогов и возвратов = '

              +FormatFloat('0.00 ''р
.''',TempVar));
end
;






GetKKMVers
[Previous] [Main] [Next]

Описание:

   function GetKKMVers: Integer;  

Возвращаемые значения:

Номер версии ПО ККМ.  

Функция возвращает номер версии ПО ККМ, умноженный на 10, т.е. для версии 2.2.Х будет возвращено значение 22.

Пример

procedure TDemoForm.GetKKMVersButtonClick(Sender: TObject);
begin

  ShowMessage('Версия ПО ККМ = '
+FloatToStr(GetKKMVers/10));
end
;






ReadSaleFromKL
[Previous] [Main] [Next]

Описание:

   ReadSaleFromKL(SaleNum: Integer; var Section, Credit, Discount: Integer; var Sum: Double): Integer;  

Принимаемые параметры:

SaleNum - номер покупки, хранящейся в контрольной памяти оплат и по которой необходимо получить информацию;  
Section - переменная, через которую возвращается значение отдела по которому был продан товар;  
Credit - переменная, через которую возвращается признак безналичнго расчета:  
1 - товар был продан за безналичный расчет;  
0 - товар был продан за наличные деньги;  
Discount - переменная, через которую возвращается процентное выражение скидки/надбавки с которой был продан товар;  
Sum - переменная, через которую возвращается сумма, уплаченная за покупку (без учета скидки/надбавки);  

Функция предназначена для получения информации по покупкам, хранящимся в контрольной памяти оплат. Возвращаемые функцией данные позволяют получить более подробную информацию по пробитым на ККМ покупкам, чем данные представленные в Х - отчете.

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Пример

procedure TDemoForm.ReadSaleFromKLButtonClick(Sender: TObject);
var

  Section, Credit, Discount: Integer;
  Sum: Double;
  TempStr: String
;
  Num: Integer;
begin

  Num:=1;
  if
 ReadSaleFromKL(Num,Section,Credit,Discount, Sum) <> 1 then
    begin

      ShowMessage(GetErrorMsg);
      Exit;
    end
;
  TempStr:='Отдел №'
+IntToStr(Section)+
           '  Сумма покупки без скидки/надбавки = '
+
            FormatFloat('0.00 ''
р.''',Sum)+'  Скидка/Надбавка = '+
            IntToStr(Discount)+'%  '
;
  if
 Credit = 1 then
    TempStr:=TempStr+'БЕЗНАЛ'

  else

    TempStr:=TempStr+'НАЛ'
;
  ShowMessage(TempStr);
end
;






GetDiscountMode
[Previous] [Main] [Next]

Описание:

   function GetDiscountMode: Integer;  

Возвращаемые значения:

   1 - режим работы со скидками/надбавками на ККМ установлен;  
   0 - режим работы со скидками/надбавками на ККМ не установлен.  

Функция позволяет узнать, был ли запрограммирован на ККМ режим работы со скидками/надбавками. Поскольку установки читаются из ККМ при установлении с ней связи, то функция будет возвращать актуальное значение только после успешного завершения функции
ConnectKKM.

Пример

procedure TDemoForm.GetDiscountModeButtonClick(Sender: TObject);
begin

  if
 GetDiscountMode = 1 then
    ShowMessage('Режим работы со скидками на ККМ установлен.'
)
  else

    ShowMessage('Режим работы со скидками на ККМ не установлен.'
)
end
;






PrintCheck
[Previous] [Main] [Next]

Описание:

   function PrintCheck: integer;  

Процедура запускает процесс ожидания запроса от ККМ. Процесс ожидания запроса будет остановлен сразу после завершения вывода чека, его отмены или при возникновении ошибки в момент подготовки к печати и в процессе печати чека.
Для вывода чека после вызова функции необходимо на ККМ нажать последовательно клавиши ФЦ-ВВ, отмена вывода чека также производится на ККМ с помощью клавиши СБ. Функция возвращает результат и управление программе только после возникновения одного из вышеперечисленных событий.

Возвращаемые значения:
   1 - в случае успешного вывода чека;  
   0 - в случае возникновения ошибки или отмены вывода чека.  

Пример

procedure TDemoForm.PrintButtonClick(Sender: TObject);
begin

  if
 PrintCheck <> 1 then begin
    
if GetErrorCode <> errOk then ShowMessage(GetErrorMsg)
    else
 ShowMessage('Вывод чека выл отменен !');
  end
;
end
;

                                                                                                                                                                                                  




RepeatCheck
[Previous] [Main] [Next]

Описание:

   function RepeatCheck: Integer;  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для повторного вывода чека при обрыве бумаги.

Пример

procedure TDemoForm.RepeatCheckButtonClick(Sender: TObject);
begin

  if
 RepeatCheck <> 1 then ShowMessage(GetErrorMsg);
end
;






ClearIndicator
[Previous] [Main] [Next]

Описание:

   function ClearIndicator: Integer;  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для очистки индикатора ККМ.

Пример

procedure TDemoForm.ClearIndicatorButtonClick(Sender: TObject);
begin

  if
 ClearIndicator <> 1 then ShowMessage(GetErrorMsg);
end
;






Feed
[Previous] [Main] [Next]

Описание:

   function Feed(LineCount: Integer): Integer;  

Принимаемые параметры:

LineCount - число строк прогона.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция производит прогон бумаги в ККМ на заданное число строк.

Пример

procedure TDemoForm.FeedButtonClick(Sender: TObject);
begin

  if
 Feed(10) <> 1 then //10 строк
    ShowMessage(GetErrorMsg);
end
;






Lock
[Previous] [Main] [Next]

Описание:

   function Lock: Integer;  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для блокировки клавиатуры ККМ.

Пример

procedure TDemoForm.LockButtonClick(Sender: TObject);
begin

  Lock;
  ShowMessage(GetErrorMsg);
end
;






PrintBarCode
[Previous] [Main] [Next]

Описание:

   function PrintBarCode(Code: PChar; DigitFlag: Integer): Integer;  

Принимаемые параметры:

Code - указатель на нуль-терминированную строку, содержащую значение кода;  
DigitFlag - признак печати цифровой подписи штрихового кода:  
1 - печатать цифровую подпись;  
0 - не печатать цифровую подпись.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для печати штрихового кода формата EAN-13 на чековой ленте ККМ.

Пример

procedure TDemoForm.PrintBarCodeButtonClick(Sender: TObject);
begin

  if
 PrintBarCode('210000307345',1) <> 1 then ShowMessage(GetErrorMsg);
  if
 Feed(3) <> 1 then ShowMessage(GetErrorMsg);
  if
 PrintBarCode('210000307345',0) <> 1 then ShowMessage(GetErrorMsg);
  if
 Feed(10) <> 1 then ShowMessage(GetErrorMsg);
end
;






UnLock
[Previous] [Main] [Next]

Описание:

   function UnLock: Integer;  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция предназначена для разблокирования клавиатуры ККМ, заблокированной ранее при помощи функции
Lock.

Пример

procedure TDemoForm.UnLockButtonClick(Sender: TObject);
begin

  UnLock;
  ShowMessage(GetErrorMsg);
end
;






GetErrorCode
[Previous] [Main] [Next]

Описание:

   function GetErrorCode: Integer;  

Возвращаемые значения:

Код ошибки.  

Функция возвращает код последней возникшей ошибки. Сообщение об ошибке можно получить при помощи функции
GetErrorMsg.

Пример

procedure TDemoForm.GetErrorCodeButtonClick(Sender: TObject);
begin

  ShowMessage(IntToStr(GetErrorCode));
end
;






GetErrorMsg
[Previous] [Main] [Next]

Описание:

   function GetErrorMsg: PChar;  

Принимаемые параметры:

Указатель на нуль-терминированную строку, содержащую сообщение об ошибке.  

Возвращаемые значения:

   1 - в случае успешного завершения;  
   0 - в случае возникновения ошибки.  

Функция возвращает текстовую интерпретацию последней возникшей ошибки. Для получения кода ошибки воспользуйтесь функцией
GetErrorCode.

Пример

procedure TDemoForm.GetErrorMsgButtonClick(Sender: TObject);
begin

  ShowMessage(GetErrorMsg);
end
;






Общие замечания
[Previous] [Main] [Next]

   Основной особенностью данной библиотеки является то, что она содержит в себе базу описателей товаров, которые при возникновении запроса от ККМ, будут ей переданы и размещены в чековом буфере. Ведение базы данных товаров, которые отобраны для продажи в вызывающем приложении, оставляется на усмотрение его разработчика.

Примечание: приведенные рекомендации по организации структуры приложений, использующих данную библиотеку, предназначены для более быстрого понимания работы библиотеки и не являются прямым руководством по организации структуры программ.






Организация приложения
[Previous] [Main] [Next]

   Последовательность действий производимых приложением для вывода чека на ККМ должна быть приблизительно следующей:

·устанавливаем связь с ККМ;  
·при помощи функций управления базой описателей товаров программируем заголовок и окончание чека (это достаточно сделать один раз за сеанс работы с библиотекой);  
·при помощи функций управления базой описателей формируется совокупность продаваемых товаров и настраиваются параметры чека (сумма оплачиваемых наличных, значение скидки/надбавки на чек, признак возврата товара, признак безналичного расчета);  
·выводится информация, предупреждающая кассира о необходимости нажатия на ККМ клавиш "ФЦ - ВВ" для вывода чека или клавиши "СБ" для отмены вывода чека;  
·при помощи процедуры PrintCheck запускается процесс ожидания запроса от ККМ;  
·анализируем результат завершения функции;  
·если чек был выведен, то производим изменение в базе данных товаров приложения (списываем товар и при необходимости регестрируем продажу).  

   Обработка возвращаемых значений и кодов ошибок должно производиться при вызове любой функции библиотеки, возвращающей код успешности ее выполнения.






Примеры использования библиотеки
[Previous] [Main]

Для демонстрации возможностей библиотеки реализованы несколько демонстрационных программ, которые находятся в каталоге Demo. На нашем сайте в интернет
www.kkm.kaluga.ru имеются также примеры использования библиотеки в среде разработке Kylix.
Для компиляции и работы демонтсрационных примеров библиотеку libchon100.so необходимо поместить в каталог /lib.
Содержание каталога Demo.
cpp - примеры реализованные на языке с/с++ с использованием компилятора gcc
   console
      printcheck - пример консольногоприложения для вывода чека
   gtkdemo - пример использования практически всех функции библиотеки, реализованный с использованием          библиотеки GTK и программы Glade.