Имя: Пароль:
1C
 
Пример модификации документа через REST посылкой PATCH-запроса
0 ProDeveloper
 
28.05.15
16:59
Все попытки тщетны. Перерыв весь интернет нашел только это Модификация существующих данных выполняется PATCH-запросом. Например, изменение данных одного элемента справочника Goods по GUID’у:

PATCH /OData_Tests_Infobase/odata/standard.odata/Catalog_Goods(guid'7f4b5034-0331-11e3-b914-5404a6a68c42')

На ИТС это - Для обновления объекта необходимо выполнить PUT-/PATCH-запрос с использованием канонического URL сущности (аналогично запросу GET для получения сущности), передав в теле запроса XML-документ (в формате atom), который содержит значения свойств сущности.

В случае PATCH-запроса пропущенные свойства сущности будут проигнорированы, т. е. будут изменены только те свойства, которые переданы в запросе на изменение. Для PUT-запроса необходимо указывать значения всех свойств обновляемой сущности.


Соединение = Новый HTTPСоединение ("p-1c01",80,"Администратор","801481308",,Ложь);
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("PATCH  http://p-1c01/tdwork/odata/standard.odata/Document_ЗаявкаНаРасходованиеДенежныхСредств(guid'3c2377f4-dec5-11e4-90c9-002590d43372') HTTP/1.1");
ЗаголовокHTTP.Вставить("Content-Type", "application/atom+xml");
ЗаголовокHTTP.Вставить("DataServiceVersion", "3.0;NetFx");
ЗаголовокHTTP.Вставить("MaxDataServiceVersion", "3.0;NetFx");
ЗаголовокHTTP.Вставить("Accept", "application/atom+xml,application/xml");
ЗаголовокHTTP.Вставить("Accept-Charset", "UTF-8");
ЗаголовокHTTP.Вставить("User-Agent", "1C-Enterprise");
ЗаголовокHTTP.Вставить("Host", "p-1c01:80");

ТекстЗапроса =
"<?xml  version=""1.0"" encoding=""utf-8""?>
|<entry  xmlns=""http://www.w3.org/2005/Atom"";  
|       xmlns:d=""http://schemas.microsoft.com/ado/2007/08/dataservices"";  
|        xmlns:m=""http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"";
|        xmlns:georss=""http://www.georss.org/georss"";  
|        xmlns:gml=""http://www.opengis.net/gml"">;
|
|   <category term=""EnterpriseV8.DocumentЗаявкаНаРасходованиеДенежныхСредств""  scheme=""http://schemas.microsoft.com/ado/2007/08/dataservices/scheme""; />
|   <content type=""application/xml"">
|      <m:properties>
|         <d:Статус>Согласована</d:Статус>
|      </m:properties>
|   </content>
|</entry>";

Запрос = Новый HTTPЗапрос("tdwork/odata/standard.odata/Document_ЗаявкаНаРасходованиеДенежныхСредств", ЗаголовокHTTP);
Запрос.УстановитьТелоИзСтроки(ТекстЗапроса);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
ОтветВВидеСтроки = Ответ.ПолучитьТелоКакСтроку("UTF-8");
Сообщить(ОтветВВидеСтроки);


не взлетает
1 ProDeveloper
 
28.05.15
17:13
Может кому пригодиться, методом научного тыка взлетел следующий код


Соединение = Новый HTTPСоединение ("p-1c01",80,"Администратор","801481308",,Ложь);
ЗаголовокHTTP = Новый Соответствие();

ТекстЗапроса =
"<?xml  version=""1.0"" encoding=""utf-8""?>
|<entry  xmlns=""http://www.w3.org/2005/Atom"";  
|       xmlns:d=""http://schemas.microsoft.com/ado/2007/08/dataservices"";  
|        xmlns:m=""http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"";
|        xmlns:georss=""http://www.georss.org/georss"";  
|        xmlns:gml=""http://www.opengis.net/gml"">;
|
|   <category term=""StandardODATA.Document_ЗаявкаНаРасходованиеДенежныхСредств""  scheme=""http://schemas.microsoft.com/ado/2007/08/dataservices/scheme""; />
|   <content type=""application/xml"">
|      <m:properties>
|         <d:Статус>Согласована</d:Статус>
|      </m:properties>
|   </content>
|</entry>";

Запрос = Новый HTTPЗапрос("tdwork/odata/standard.odata/Document_ЗаявкаНаРасходованиеДенежныхСредств(guid'3c2377f4-dec5-11e4-90c9-002590d43372')", ЗаголовокHTTP);
Запрос.УстановитьТелоИзСтроки(ТекстЗапроса);

Ответ = Соединение.ВызватьHTTPМетод("PATCH", Запрос);
ОтветВВидеСтроки = Ответ.ПолучитьТелоКакСтроку("UTF-8");
Сообщить(ОтветВВидеСтроки);