Произошла внутренняя ошибка OData сервиса. Дополнительные сведения можно найти в технологическом журнале

1. user785225 17 03.06.24 21:41 Сейчас в теме
Отсылаю запрос odata через http с записью непереодического независимого регистра сведений с типам(и) сложнее простых (важное замечание, т.к. в РС с простыми измерениями записывается успешно)

Получаю САБЖ.
Вопрос: как найти дополнительные сведения в техножурнале? Весь его перерыл при помощи Инструментов разработчика (ИР), но так и не нашел подходящего по смыслу или тексту упомянания ошибки

Запрос на фото. Сразу скажу что перепробовал разные комбинации передаваемых параметров, вплоть до передачи единственного: Объект_Key="7f366b61-9eab-11e5-80c3-d485647b9a76" (guid'GUID' тоже пробовал)
Прикрепленные файлы:
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. vladimir_korshun 84 16.07.24 11:25 Сейчас в теме
(1)
https://forum.mista.ru/topic.php?id=748376

https://its.1c.ru/db/v83doc#bookmark:dev:TI000001418
"Особенности поведения:

Измерения регистра сведений образуют ключ записи. При попытке изменить ключ записи будет генерироваться исключение с HTTP-статусом 404. Рекомендуется в таком случае вначале удалять существующую запись, а затем добавлять новую."

Имеется РС.astd_ЕстьБизнесПроцессПоЗаявкамНаРасходДС (независимый и непериодический), в нем 1 измерение = ЗаявкаНаРасходДС - ДокументСсылка.ЗаявкаНаРасходованиеДенежныхСредств и 1 ресурс = ЕстьБизнесПроцесс - булево

Рабочий REST запрос который делает запись в РС через интерфейс ODATA


        Соединение = Новый HTTPСоединение ("td-1c01",80,"odata.user","password",,Ложь);
        Заголовок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.InformationRegister_astd_ЕстьБизнесПроцессПоЗаявкамНаРасходД­С""  scheme=""http://schemas.microsoft.com/ado/2007/08/dataservices/scheme""; />
        |   <content type=""application/xml"">
        |      <m:properties>
        |         <d:ЗаявкаНаРасходДС_Key>da8ae0fa-2648-11e5-b885-40a8f02fab07</d:ЗаявкаНаРасходДС_Key>
        |         <d:ЕстьБизнесПроцесс>true</d:ЕстьБизнесПроцесс>
        |      </m:properties>
        |   </content>
        |</entry>";


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

Показать
7. user785225 17 17.07.24 15:46 Сейчас в теме
(5) спасибо за участие, все эти статьи я читал, скромно считаю даже, что знаю больше, чем там написано


(6) увы, не сработало. Но ошибка другая
<m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<m:code>-1</m:code>
<m:message>Ошибка разбора XML: - [2,43]
Фатальная ошибка:
attributes construct error
</m:message>
</m:error>

Соединение = Новый HTTPСоединение("XXX", 80, "ODATA","XXXX",,Ложь);
Заголовок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.InformationRegister_ЛицевыеСчетаРаботниковОрганизации"" scheme=""http://schemas.microsoft.com/ado/2007/08/dataservices/scheme""/>;
|<title type=""text""/>
|<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:Физлицо_Key>abec57cb-3d10-11ef-ab92-00155d704702</d:Физлицо_Key>
|    <d:Организация_Key>10821bc3-f615-11df-8d81-003048dc4e8a</d:Организация_Key>
|    <d:НомерЛицевогоСчета>123456789</d:НомерЛицевогоСчета>
|</m:properties>
|</content>
|</entry>";

Запрос = Новый HTTPЗапрос("test_zpvd_upp_sa/odata/standard.odata/InformationRegister_ЛицевыеСчетаРаботниковОрганизации"­, ЗаголовокHTTP);
Запрос.УстановитьТелоИзСтроки(ТекстЗапроса);
Ответ = Соединение.ВызватьHTTPМетод("POST", Запрос);
Показать


Интересно, что в такой же (непериодический, независимый регистр КИ, но с 2 измерениями сложного типа Объект и Вид) я передаю данные успешно, как в посте 5 по ссылке (6). А в этот, с исключительно простыми типами - ошибка. Думаю как то связано с кракозябрами из техножурнала (4)
8. user-z99999 70 17.07.24 16:08 Сейчас в теме
(7)
Ошибки могут быть связаны с лишним пробелом или каким-то спец.символом.

Если есть возможность (работаем с тестовой базой):
создаём очень простой регистр с одним измерением, и пытаемся туда записать.
потом усложняем, два измерения
потом усложняем, сложные типы (или простые).

Если делать аккуратно, должно получиться.
2. user785225 17 04.06.24 15:22 Сейчас в теме +3.7 $m
Способ "поговорить с уточкой" работает
В техножурнале найти ничего не удалось, но методом проб и ошибок выяснил, что дело было во втором измерении сложного типа ("Вид"), для которого тоже нужно было указать _Type
Объект: <guid>
Объект_Type: StandardODATA.Catalog_ФизическиеЛица
Тип: "Телефон"
Вид: <guid>
Вид_Type: StandardODATA.Catalog_ВидыКонтактнойИнформации
Представление: 79022222222

вот так сработало
3. user785225 17 09.07.24 14:08 Сейчас в теме
В аналогичный независимый непериодический РС УПП 1.3 (ЛицевыеСчетаРаботниковОрганизации)
Снова не записывается с той же ошибкой, причем все 3 его Измерения - одиночных типов (3 ссылки)
Какая то бесконечная борьба...
4. user785225 17 16.07.24 11:08 Сейчас в теме
(3) друзья, если кто прочтет

Соединение = Новый HTTPСоединение("server", , "ODATA", "password", , 20); К = СпособКодированияСтроки.URLВКодировкеURL;//КодировкаURL;// 
Запрос	   = Новый HTTPЗапрос("base/odata/standard.odata/InformationRegister_ЛицевыеСчетаРаботниковОрганизации?$format=json"); //КодироватьСтроку(СотрудникУИД, К); 
Запрос.УстановитьТелоИзСтроки("{""Физлицо"": ""abec57cb-3d10-11ef-ab92-00155d704702"", ""Физлицо_Type"": ""StandardODATA.Catalog_ФизическиеЛица"", ""Организация"": ""10821bc3-f615-11df-8d81-003048dc4e8a"", ""Организация_Type"": ""StandardODATA.Catalog_Организации"", ""НомерЛицевогоСчета"": ""123456789"", ""Document"": ""d"", ""Document_Type"": ""StandardODATA.Undefined""}"); //, "windows-1251", ИспользованиеByteOrderMark.Использовать);
Ответ = Соединение.ВызватьHTTPМетод("POST", Запрос).ПолучитьТелоКакСтроку();


Файлы техножурнала "24071613.log" прикрепляю, там в одном месте вместо имени регистра кракозябры (найти можно по ключевому слову "InformationRegister")
Пробовал переименовывать регистр на латинский - все равно САБЖ
Полная ТИИ не решила САБЖ
Прикрепленные файлы:
24071613.log
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот