The 1C:Enterprise developers forum

#1
People who like this: 0 Yes / 0 No
Active user
Rating: 8
Joined: May 21, 2023
Company:

Is there a way to do a http POST request to another web address from 1C?

 
#2
People who like this: 0 Yes / 0 No
Administrator
Rating: 29
Joined: Oct 3, 2019
Company:

Hello Peter,

of course it's possible. This is the basic functionality of 1C.

Here you can find an example of working with the POST method: https://1c-dn.com/blog/work-with-http-services-in-1c-part-2-post-method/

 
#3
People who like this: 0 Yes / 0 No
Administrator
Rating: 29
Joined: Oct 3, 2019
Company:

Or here is the working code for working with Shopify:

Code
&AtServer
Function CreateOneProduct(structureBody)
   
   ReturnParameters = New Structure;
   
   ReturnParameters.Insert("Result");
   ReturnParameters.Insert("Error",   False);
   
   stringAPI_PATH = TrimAll(Constants.Shopify_PathToAPI.Get());
   
   HTTPConnection = New HTTPConnection(stringAPI_PATH,443,,,,, New OpenSSLSecureConnection);
   
   ResourceAddress = "/admin/api/2022-07/products.json";
      
        HTTPRequest = New HTTPRequest();
   
   HTTPRequest.ResourceAddress = ResourceAddress;
   
   HTTPRequest.Headers.Insert("Content-Type",       "application/json");
   HTTPRequest.Headers.Insert("X-Shopify-Access-Token",    Constants.Shopify_API_Access_Token.Get()); 
   
   JSONWriter = New JSONWriter;
   JSONWriter.SetString();
   WriteJSON(JSONWriter, structureBody);
   resultJSON = JSONWriter.Close();
   
   HTTPRequest.SetBodyFromString(resultJSON);
   HTTPResponse = HTTPConnection.Post(HTTPRequest);
   
   If HTTPResponse.StatusCode = 201 Then
      
       JSONReader = New JSONReader;
       JSONReader.SetString(HTTPResponse.GetBodyAsString());
       ReturnParameters.Result = ReadJSON(JSONReader, False);
      
   Else 
      ReturnParameters.Result = HTTPResponse.GetBodyAsString();
      ReturnParameters.Error = True;
   EndIf;
   
   Return ReturnParameters;
   
EndFunction

 
#4
People who like this: 0 Yes / 0 No
Active user
Rating: 8
Joined: May 21, 2023
Company:

Thanks, Alex!

And HTTPRequest parameters are passed through structureBody?

 
#5
People who like this: 0 Yes / 0 No
Administrator
Rating: 29
Joined: Oct 3, 2019
Company:

No not like this :-)

structureBody is the structure in which the order data is stored. This structure is converted to a JSON file:

Code
   JSONWriter = New JSONWriter;

   JSONWriter.SetString();

   WriteJSON(JSONWriter, structureBody);

   resultJSON = JSONWriter.Close();



resultJSON is a ready-made JSON file to be sent to the server.

And the parameters for HTTPRequest are set here:


Code
   HTTPRequest = New HTTPRequest();

   
   HTTPRequest.ResourceAddress = ResourceAddress;

   

   HTTPRequest.Headers.Insert("Content-Type",       "application/json");

   HTTPRequest.Headers.Insert("X-Shopify-Access-Token",    Constants.Shopify_API_Access_Token.Get()); 

 
Subscribe
Users browsing this topic (guests: 1, registered: 0, hidden: 0)
Be the first to know tips & tricks on business application development!

A confirmation e-mail has been sent to the e-mail address you provided .

Click the link in the e-mail to confirm and activate the subscription.

/* --- ФИКС ЗАГОЛОВКОВ ДОКУМЕНТАЦИИ (BRUTE FORCE) --- */ /* Цепляемся за все возможные контейнеры Битрикса */ .content h1, #content h1, .workarea h1, .content h2, #content h2, .workarea h2, .content h3, #content h3, .workarea h3, .content h4, #content h4, .workarea h4, .content h5, #content h5, .workarea h5, .content h6, #content h6, .workarea h6 { display: block !important; font-weight: 700 !important; color: #222 !important; text-transform: none !important; margin-top: 1.5em !important; margin-bottom: 0.5em !important; line-height: 1.2 !important; } /* Явно задаем размеры, чтобы перекрыть "font-size: 100%" */ .content h1, #content h1 { font-size: 28px !important; } .content h2, #content h2 { font-size: 24px !important; } .content h3, #content h3 { font-size: 22px !important; } .content h4, #content h4 { font-size: 20px !important; } .content h5, #content h5 { font-size: 18px !important; } /* Ваш случай (5 решеток) */ .content h6, #content h6 { font-size: 16px !important; } /* Если Битрикс или редактор засунули внутрь h5 тег span или font */ .content h5 *, #content h5 *, .workarea h5 * { font-size: inherit !important; color: inherit !important; font-weight: inherit !important; } /* --- СТИЛИЗАЦИЯ ТЕКСТА (Markdown Style) --- */ /* Ссылки в тексте делаем более заметными */ .content a:not([class]) { color: #005aa0; text-decoration: none; border-bottom: 1px solid rgba(0, 90, 160, 0.2); } .content a:not([class]):hover { border-bottom-color: #005aa0; } /* Списки (чтобы не прилипали) */ .content ul, .content ol { margin-bottom: 15px !important; padding-left: 20px !important; } .content li { margin-bottom: 5px !important; }