Экспорт данных из 1С в BPMOnline через Odata.

Здравствуйте!
Пытаюсь создать сотрудника через Odata из 1С.

Получаю вот такую ошибку:

version="1.0" encoding="utf-8" standalone="yes"?> xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">>4> xml:lang="">Unsupported media type requested.>>>Unsupported media type requested.>>System.Data.Services.DataServiceException>>   at System.Data.Services.Serializers.ODataMessageReaderDeserializer.Deserialize(SegmentInfo segmentInfo)
   at System.Data.Services.Serializers.Deserializer.HandlePostRequest()
   at System.Data.Services.DataService`1.HandlePostOperation(RequestDescription description, IDataService dataService)
   at System.Data.Services.DataService`1.ProcessIncomingRequest(RequestDescription description, IDataService dataService)
   at System.Data.Services.DataService`1.HandleNonBatchRequest(RequestDescription description)
   at System.Data.Services.DataService`1.HandleRequest()>>>A supported MIME type could not be found that matches the content type of the response. None of the supported type(s) 'application/atom+xml;type=entry, application/atom+xml, application/json;odata=verbose' matches the content type 'application/octet-stream'.>>Microsoft.Data.OData.ODataContentTypeException>>   at Microsoft.Data.OData.MediaTypeUtils.GetFormatFromContentType(String contentTypeName, ODataPayloadKind[] supportedPayloadKinds, MediaTypeResolver mediaTypeResolver, MediaType& mediaType, Encoding& encoding, ODataPayloadKind& selectedPayloadKind)
   at Microsoft.Data.OData.MediaTypeUtils.GetFormatFromContentType(String contentTypeHeader, ODataPayloadKind[] supportedPayloadKinds, MediaTypeResolver mediaTypeResolver, MediaType& mediaType, Encoding& encoding, ODataPayloadKind& selectedPayloadKind, String& batchBoundary)
   at Microsoft.Data.OData.ODataMessageReader.ReadFromInput[T](Func`2 readFunc, ODataPayloadKind[] payloadKinds)
   at System.Data.Services.Serializers.EntityDeserializer.Read(SegmentInfo segmentInfo)
   at System.Data.Services.Serializers.ODataMessageReaderDeserializer.Deserialize(SegmentInfo segmentInfo)>>>>

О чем эта ошибка? В чем может быть проблема?

Получение данных GET запросом работает. А вот POST и PUT дают ошибку.

Сформированный в 1C xml:

version="1.0" encoding="UTF-8"?>
xmlns="http://www.w3.org/2005/Atom">
        type="application/xml">
                xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
                        xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">Александр Пушкин>

                        xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">Александр Сергеевич>
                >
        >
>

Код 1С если интересно:

        XMLТекст = Новый ЗаписьXML;
        XMLТекст.УстановитьСтроку("UTF-8");
       
        XMLТекст.ЗаписатьОбъявлениеXML();
       
        XMLТекст.ЗаписатьНачалоЭлемента("entry");
        XMLТекст.ЗаписатьАтрибут("xmlns", "http://www.w3.org/2005/Atom");
       
                XMLТекст.ЗаписатьНачалоЭлемента("content");
            XMLТекст.ЗаписатьАтрибут("type", "application/xml");
               
                        XMLТекст.ЗаписатьНачалоЭлемента("properties");
                        XMLТекст.ЗаписатьАтрибут("xmlns", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata");
                       
                                XMLТекст.ЗаписатьНачалоЭлемента("Name");
                                XMLТекст.ЗаписатьАтрибут("xmlns", "http://schemas.microsoft.com/ado/2007/08/dataservices");
                                XMLТекст.ЗаписатьТекст("Александр Пушкин");                           
                                XMLТекст.ЗаписатьКонецЭлемента();
                               
                                XMLТекст.ЗаписатьНачалоЭлемента("Dear");
                                XMLТекст.ЗаписатьАтрибут("xmlns", "http://schemas.microsoft.com/ado/2007/08/dataservices");
                                XMLТекст.ЗаписатьТекст("Александр Сергеевич");                             
                                XMLТекст.ЗаписатьКонецЭлемента();
                       
                        XMLТекст.ЗаписатьКонецЭлемента();
               
                XMLТекст.ЗаписатьКонецЭлемента();
               
        XMLТекст.ЗаписатьКонецЭлемента();
       
        СтрXML = XMLТекст.Закрыть();
       
        Соединение = Новый HTTPСоединение("demo.bpmonline.com",,"User","Password",,,Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено));
       
        АдресРесурса = "/0/servicemodel/EntityDataService.svc/ContactCollection";                                            
       
        HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
        HTTPЗапрос.Заголовки.Вставить("Accept", "application/atom+xml");
        HTTPЗапрос.Заголовки.Вставить("ContentType", "application/atom+xml;type=entry");
       
        HTTPЗапрос.УстановитьТелоИзСтроки(СтрXML);
       
        HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос); //POST

        Объект.ОписаниеОбъекта = HTTPОтвет.ПолучитьТелоКакСтроку();
       
        Соединение = Неопределено;

Нравится

1 комментарий

Вопрос снимается.
ContentType пишется Content-Type :smile:

Показать все комментарии