Имя: Пароль:
1C
 
Проблема с POST запросом по ОДАТЕ
0 НачинающийВ1С
 
29.05.19
11:20
Доброе утро.
В общем, запросом ОДАТА мне надо создать запись в регистре сведений ИсторияВыполненияЗадач (Измерение: БизнесПроцесс, Ресурс: Описание)

Мучаюсь второй день. Нагуглил примерчик: ODATA запись в независимый непериодический регистр сведений с помощью REST, но не работает.
В качестве ответа приходит:
<m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">;
    <m:code>-1</m:code>
    <m:message>Ошибка разбора XML:  - [24,10]
Фатальная ошибка:
Extra content at the end of the document
</m:message>
</m:error>


Текст запроса отправляю вот такой:


<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom";
        xmlns:at="http://purl.org/atompub/tombstones/1.0";
        xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices";
        xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";
        xml:base="http://srv005/Doc_Demo_Study/odata/standard.odata/">;
    <entry>
        <id>http://srv01/DemoBase/odata/standard.odata/InformationRegister_ИсторияВыполненияЗадач(БизнесПроцесс='48d57c7f-81e6-11e9-8daa-001e673baedb', БизнесПроцесс_Type='StandardODATA.BusinessProcess_Согласование')</id>
        <category term="StandardODATA.InformationRegister_ИсторияВыполненияЗадач"
                scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>;
        <title type="text"/>
        <updated>2019-05-29T10-51-21</updated>
        <author/>
        <summary/>
        <link rel="edit"
                href="InformationRegister_ИсторияВыполненияЗадач(БизнесПроцесс='48d57c7f-81e6-11e9-8daa-001e673baedb', БизнесПроцесс_Type='StandardODATA.BusinessProcess_Согласование')"
                title="edit-link"/>
        <content type="application/xml"><m:properties xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"; xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">;
    <d:БизнесПроцесс>48d57c7f-81e6-11e9-8daa-001e673baedb</d:БизнесПроцесс>
    <d:БизнесПроцесс_Type>StandardODATA.BusinessProcess_Согласование</d:БизнесПроцесс_Type>
    <d:Описание>29.05.2019 10:51, Иванов И. И.. Согласовано:
комментарий тест</d:Описание>
</m:properties>
        </content>
    </entry>


Может быть кто-то подскажет, что я делаю не так?
1 PR
 
29.05.19
11:23
2 НачинающийВ1С
 
29.05.19
15:53
Возможно у кого-то есть мысли?
(1) По данной ссылке ничего для решения вопроса я не смог найти. Там не рассматривается пост запрос в регистр сведений.
3 palsergeich
 
29.05.19
16:07
Проверь xml текст на валидность и отсутствие недопустимых символов.
Это первое что приходит в голову по сообщению ошибки
4 НачинающийВ1С
 
29.05.19
18:00
В общем, решение нашел. Удалил из текста запроса большой заголовок отдаты, плюс в параметры передал "Content-Type", "application/xml". Оставлю для потомков код:

СоединениеР = Новый HTTPСоединение (Конст.Сервер,Конст.Порт,Конст.Логин,Конст.Пароль,,Ложь);

ЗаголовокHTTPР = Новый Соответствие();
ЗаголовокHTTPР.Вставить("Content-Type", "application/xml");


ТекстЗапроса = (вставлю только без переносов строки)
"<entry>
        <id>http://srv01/DemoBase/odata/standard.odata/InformationRegister_ИсторияВыполненияЗадач(БизнесПроцесс='e7fa7fb9-8221-11e9-8daa-001e673baedb', БизнесПроцесс_Type='StandardODATA.BusinessProcess_Согласование')</id>
        <category term="StandardODATA.InformationRegister_ИсторияВыполненияЗадач"
                scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>;
        <title type="text"/>
        <updated>2019-05-29T05-56-49</updated>
        <author/>
        <summary/>
        <link rel="edit"
                href="InformationRegister_ИсторияВыполненияЗадач(БизнесПроцесс='e7fa7fb9-8221-11e9-8daa-001e673baedb', БизнесПроцесс_Type='StandardODATA.BusinessProcess_Согласование')"
                title="edit-link"/>
        <content type="application/xml"><m:properties xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"; xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">;
    <d:БизнесПроцесс>e7fa7fb9-8221-11e9-8daa-001e673baedb</d:БизнесПроцесс>
    <d:БизнесПроцесс_Type>StandardODATA.BusinessProcess_Согласование</d:БизнесПроцесс_Type>
    <d:Описание>Согласовано: Важные комментарии</d:Описание>
</m:properties>
        </content>
    </entry>;



ЗапросР = Новый HTTPЗапрос(Конст.ИмяБазы+"/odata/standard.odata/InformationRegister_ИсторияВыполненияЗадач", ЗаголовокHTTPР);

ЗапросР.УстановитьТелоИзСтроки(ТекстЗапросаР);

ОтветР = СоединениеР.ВызватьHTTPМетод("POST", ЗапросР);

ОтветВВидеСтрокиР = ОтветР.ПолучитьТелоКакСтроку("UTF-8");
5 НачинающийВ1С
 
29.05.19
18:00
Всем спасибо
2 + 2 = 3.9999999999999999999999999999999...