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;