Библиотека для работы с ККМ АТОЛ

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: Библиотека для работы с ККМ АТОЛ

Сообщение YaroslavSh » 01.06.2019 15:19:46

alexs писал(а):Это объявление находится в system.pas - вернее в платформенно-зависимых включаемых файлах этого модуля. Должно собираться.

Добрый день. Спасибо за ответ. Наверно что-то я делаю не так. Удалил полностью lazarus с очисткой старых настроек, установил пакеты из сетевого диспетчера пакетов: DCPcrypt, FPSpreadsheet, powerpdf, rx, synapse 40.1, virtualtreeview 5.x, zeosdbo.
Скомпилировались и установились: sbrf_pc.lpk, eg_lib.lpk, alexs_trade_abstract.lpk, а atol_ecr.lpk не компилируется с ошибкой:
atollkkmv10.pas(18,16) Error: Identifier not found "tLibHandle"
atollkkmv10.pas(18,26) Error: Error in type definition
YaroslavSh
новенький
 
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Re: Библиотека для работы с ККМ АТОЛ

Сообщение alexs » 01.06.2019 15:40:35

Затрудняюсь сказать причину - ошибок не вижу.
Настораживает сообщение - почему tLibHandle - там везде TLibHandle
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Библиотека для работы с ККМ АТОЛ

Сообщение YaroslavSh » 01.06.2019 16:46:46

alexs писал(а):Затрудняюсь сказать причину - ошибок не вижу.
Настораживает сообщение - почему tLibHandle - там везде TLibHandle

Заново скачал с https://github.com/lalexs75/ecr там TLibHandle но ошибка та же. На всякий случай закинул пакет по адресу C:\lazarus\ecr-master, русских букв до пакета нет.
YaroslavSh
новенький
 
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Re: Библиотека для работы с ККМ АТОЛ

Сообщение alexs » 01.06.2019 18:21:53

По правилам пакеты в лазаре должны быть в папке components. Я попробую в винде пересобрать - посмотрю, что может быть не так. А пока - попробуй пересобрать в последнем FPC.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Библиотека для работы с ККМ АТОЛ

Сообщение alexs » 03.06.2019 12:06:22

Действительно - в 3.0.4. не собирается.
Поправил - проверь.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Библиотека для работы с ККМ АТОЛ

Сообщение YaroslavSh » 03.06.2019 23:50:28

alexs писал(а):Действительно - в 3.0.4. не собирается.
Поправил - проверь.

Спасибо большое. Скомпилировалось.
При нажатии на любую кнопку в проекте в папке demo TAtollKKMv10 ошибка: cant load procedure "libfptr_create".
Извиняюсь, если отобрал много времени.

upd. fptr10.dll закинул в папку с программой и вроде работает. Хотя, по идее, fptr10.dll должен искаться в папке C:\Program Files\ATOL\Drivers10\KKT\bin
YaroslavSh
новенький
 
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Re: Библиотека для работы с ККМ АТОЛ

Сообщение alexs » 04.06.2019 09:25:52

Там должно грузиться по путям поиска. Добавь папку C:\Program Files\ATOL\Drivers10\KKT\bin в переменную PATH.
В принципе можно сделать попытку поиска дополнительно по этим путям.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Библиотека для работы с ККМ АТОЛ

Сообщение YaroslavSh » 07.06.2019 01:28:35

Добрый день. Подскажите, пожалуйста, если использовать ДТО АТОЛ 8 в delphi 7 то:
Код: Выделить всё
ECR.NewDocument;
ECR.Password:='30';
ECR.Mode:= 0;
ECR.SetMode;
ECR.Caption:='Тестовая строка';
ECR.Alignment:= 1;
ECR.TextWrap:= 1;
ECR.PrintString;

печатается на чеке сразу в русской кодировке. Этот же код в LAZARUS 2.0.2 в UTF8 печатает знаки вопроса. Если поставить кодировку файла UTF8 с BOM то печатаются нормальные русские буквы.
ECR.Caption:=UTF8ToUTF8BOM(''Тестовая строка'); не помогает.
YaroslavSh
новенький
 
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Re: Библиотека для работы с ККМ АТОЛ

Сообщение alexs » 07.06.2019 10:14:40

С кодировками иногда бывает
Попробуй через переменну.
Код: Выделить всё
S:='Тестовая строка';
ECR.Caption:=S


Добавлено спустя 5 часов 13 минут 30 секунд:
- Добавил свойство TextParams для форматирование текста при печати нефискализированной строки через метод PrintLine
- Добавил свойство DeviceInfo (пока там только PaperInfo - информация о чековой ленте) - информация о ККМ. Для заполнения свойства вызвать метод QueryDeviceParams;
- Документация
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Библиотека для работы с ККМ АТОЛ

Сообщение YaroslavSh » 10.06.2019 01:39:58

alexs писал(а):С кодировками иногда бывает
Попробуй через переменну.
Код: Выделить всё
S:='Тестовая строка';
ECR.Caption:=S



Помог Ваш совет в другой ветке. Спасибо большое.

Код: Выделить всё
var
  WS:widestring;
  S:string;
begin
  S:='Тестовая строка';  //Ну это может как параметр в процедуру быть
  WS:=S;
ECR.Caption:=WS;
YaroslavSh
новенький
 
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Re: Библиотека для работы с ККМ АТОЛ

Сообщение bsergey » 19.12.2019 22:13:03

Доброго! У меня остались исходники от старого проекта под версию драйвера 8.16, возможно, заинтересуют, выложил на https://github.com/burkun-sergey/atol-kkt-service
bsergey
незнакомец
 
Сообщения: 1
Зарегистрирован: 19.12.2019 21:59:38

Re: Библиотека для работы с ККМ АТОЛ

Сообщение alexs » 20.02.2020 15:41:41

Доработка - добавил поодержку работы с кодами маркировки
Прямое заполнение тэга 1162 через новую структуру - GoodsNomenclatureCode
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Библиотека для работы с ККМ АТОЛ

Сообщение YaroslavSh » 28.06.2020 12:32:13

alexs писал(а):Доработка - добавил поодержку работы с кодами маркировки
Прямое заполнение тэга 1162 через новую структуру - GoodsNomenclatureCode

Добрый день всем участникам и в частности alexs. Я вижу, что Вы продолжаете дописывать кассовое ПО для АТОЛ. Не реализовывали ли Вы работу с ЕГАИС через свое приложение? Или кто-то может уже сделал продажу алкоголя, подтверждение накладных и т.д.? Начал писать сам, но проблема возникла при отправке запроса idHTTP1.Post, idHTTP1.GET нормально отрабатывает, в инструкции команды приводятся с помощью утилиты curl. Должна быть команда curl -F ''xml_file=@client.xml'' http://localhost:8080/opt/in/QueryPartner
Я посылаю idHTTP1.Post('http://localhost:8080/opt/in/QueryPartner','client.xml') и возвращается ошибка сервера 500. Что не так может быть?
Чувствую что должно ещё что-то передаваться в параметрах, чтоб idHTTP1 понимал, что xml отправляю.

Нашел такой рабочий вариант, вдруг кому пригодится
Код: Выделить всё
Uses IdMultipartFormData, IdHTTP


procedure TForm22.BitBtn3Click(Sender: TObject);
    const
  body = '<?xml version="1.0" encoding="UTF-8"?> ' +
        '<ns:Documents Version="1.0"' +
        ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
        ' xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01"' +
        ' xmlns:qp="http://fsrar.ru/WEGAIS/QueryParameters"> ' +
        '<ns:Owner>' +
        '<ns:FSRAR_ID>020000020000</ns:FSRAR_ID>' +
        '</ns:Owner>' +
        '<ns:Document>' +
        '<ns:QueryResendDoc>' +
        '<qp:Parameters>' +
        '<qp:Parameter>' +
        '<qp:Name>WBREGID</qp:Name>' +
        '<qp:Value>TTN-03100000000</qp:Value>' +
        '</qp:Parameter>' +
        '</qp:Parameters>' +
        '</ns:QueryResendDoc>' +
        '</ns:Document>' +
        '</ns:Documents>';
var
     http : TIdHttp;
     req  : TIdMultiPartFormDataStream;
     data : TStream;
     ip_port:string;
begin

    ip_port:='http://'+inipras.ReadString('Options','fsrarip','')+':'+inipras.ReadString('Options','fsrarport','')+'/';

      try
         http := TIdHTTP.Create(nil);
            try
         data := TBytesStream.Create(TEncoding.Utf8.GetBytes(body));
        try
       req := TIdMultiPartFormDataStream.Create;
        try
    req.AddFormField('xml_file', 'text/xml', 'utf-8', data, 'QueryResendDoc.xml');
    http.Post(ip_port+'opt/in/QueryResendDoc', req);
     finally
         req.free;
       end;
      finally
       data.Free;
       end;
      finally
       http.Free;
      end;

   Except
  on Exception do Memo1.Lines.Text:= idHTTP1.Response.RawHeaders.GetText ;

end;

end;
YaroslavSh
новенький
 
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Re: Библиотека для работы с ККМ АТОЛ

Сообщение alexs » 29.06.2020 17:25:45

я сейчас работаю с обувью - полёт нормальный
в ближайшее время будут шины и спец одежда

я использую напрямую API - не через json

В приведённом примере
YaroslavSh писал(а):Должна быть команда curl -F ''xml_file=@client.xml'' http://localhost:8080/opt/in/QueryPartner

как я понял - передаётся xml файл локальный - а там по путям оно находится?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Библиотека для работы с ККМ АТОЛ

Сообщение YaroslavSh » 04.07.2020 12:09:22

alexs писал(а):я сейчас работаю с обувью - полёт нормальный
в ближайшее время будут шины и спец одежда

я использую напрямую API - не через json

В приведённом примере
YaroslavSh писал(а):Должна быть команда curl -F ''xml_file=@client.xml'' http://localhost:8080/opt/in/QueryPartner

как я понял - передаётся xml файл локальный - а там по путям оно находится?


Да, xml передается, просто техническая документация похоже для телепатов написана, приходится по крупицам искать у уже реализовавших это. Обувь в 2019 году написал, всё в честный знак уходит и списывается.
YaroslavSh
новенький
 
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru