Ошибка проверки данных xdto структура объекта не соответствует типу 1с

День добрый! При синхронизации между УТ 11.2 и БП 3.0 в УТ выходит ошибка {ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(506)}: Ошибка при вызове метода контекста (Проверить): Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {Проверка свойства 'ДанныеВзаиморасчетов': форма: Элемент имя: { тип: {Не установлено значение одного из следующих свойств: Контрагент Объект: Акт выполненных работ И так для каждого акта.

Синхронизация через универсальный формат данных

Автор likalim, 15 фев 2016, 14:52

0 Пользователей и 1 гость просматривают эту тему.



Последний специально ставила
Релиз платформы 8.3.7.1917



Да, я это уже поняла. 3 часа пыталась ошибку в базе найти.
1С видимо еще не доработали новый механизм обмена. А лезть и разбираться в этом мне пока не хочется.


Такая же проблема только на спр валюты ошибка валится. ИБ под SQL. А если синхронизировать в файловом варианте — проходит на ура. У кого есть решения?


Прошу прощения за некропостинг. Тему нашел по поиску, может кто то еще наткнется и ему поможет мое решение.
Итак, получил схожую ошибку.
«Ошибка при вызове метода контекста (Проверить) ОбъектXDTO.Проверить(); по причине: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.4}Документ.РеализацияТоваровУслуг Проверка свойства ‘ДанныеВзаиморасчетов’: форма: Элемент имя: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.4}ДанныеВзаиморасчетов тип: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.4}ОбщиеСвойстваДанныеВзаиморасчетов Не установлено значение одного из следующих свойств: Контрагент»

Сначала тоже пытался найти этот документ и т.д., решение же оказалось из раздела танца с бубном. В настройке плана синхронизации сменил формат обмена, т.е. у меня был 1,4, я сменил на 1,3, синхронизация вообще не пошла, вернул снова на 1,4 , все заработало .


  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Синхронизация через универсальный формат данных

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

Грабли метода ПрочитатьXML() объекта ФабрикаXDTO

Что таит в себе окно редактирования XDTO-пакета

Фабрика XDTO — это библиотека типов, которая описывает определенные структуры XML. В языке программирования платформы 1С имеется объект ФабрикаXDTO, который содержит все пакеты XDTO, имеющиеся в конфигурации, а также предопределенные пакеты (например, пакет типов XML схемы). У данного объекта метод ПрочитатьXML(), позволяет читать элементы данных XDTO указанного типа из объекта чтения XML:


ФайлXML = Новый ЧтениеXML;
ФайлXML.УстановитьСтроку(СтрокаXML);

Пока ФайлXML.Прочитать() Цикл

Если ФайлXML.ЛокальноеИмя = "Message" И ФайлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ФайлXML);
КонецЕсли;

КонецЦикла;

ФайлXML.Закрыть();

Первый параметр метода является обязательным, в который передается объект чтения XML. Второй параметр метода необязательный, в который передается тип элемента данных XDTO. Если тип не указан, то будет сделана попытка определить тип данных по текущему состоянию объекта ЧтениеXML.

Допустим, создадим тип в пакете XDTO  с пространством имен http://lk.1cps.ru, который будет описывать некую структуру XML:

1. Тип «Документы»

Кусок структуры XML:
...
<Документы>
<РасчетФБ>
<Культура>12122</Культура>
<ПосевнаяПлощадь>23</ПосевнаяПлощадь>
<СтавкаСубсидий>12</СтавкаСубсидий>
<Сумма>276</Сумма>
</РасчетФБ>
<РасчетФБ>
<Культура>232323</Культура>
<ПосевнаяПлощадь>34</ПосевнаяПлощадь>
<СтавкаСубсидий>12</СтавкаСубсидий>
<Сумма>408</Сумма>
</РасчетФБ>
</Документы>
...

Прочитаем эту структуру:

Пока ФайлXML.Прочитать() Цикл
Если ФайлXML.ЛокальноеИмя = "Документы" И ФайлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ФайлXML, ФабрикаXDTO.Тип("http://lk.1cps.ru", "ДокументыТип"));
Прервать;
КонецЕсли;
КонецЦикла;

Приведенный код будет завершать ошибкой чтения XML, примерно такой:

Ошибка при вызове метода контекста (ПрочитатьXML)
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ФайлXML, ФабрикаXDTO.Тип("http://lk.1cps.ru", "ДокументыТип"));
по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: {http://lk.1cps.ru}ДокументыТип - [126,19]
Проверка дополнительного свойства:
форма: Элемент
имя: {http://lk.1cps.ru}Культура
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {http://lk.1cps.ru}ДокументыТип

ПРОШЛО 4 ЧАСА :(

Так как выше приведенный кусок структуры XML не относится к пространству имен http://lk.1cps.ru, то и метод ПрочитатьXML() выкидывал ошибку, несмотря на то, что тип правильно описывает структуру XML! Поэтому XML должен выглядеть так:
...
<Документы xmlns="http://lk.1cps.ru">
<РасчетФБ>
<Культура>12122</Культура>
<ПосевнаяПлощадь>23</ПосевнаяПлощадь>
<СтавкаСубсидий>12</СтавкаСубсидий>
<Сумма>276</Сумма>
</РасчетФБ>
<РасчетФБ>
<Культура>232323</Культура>
<ПосевнаяПлощадь>34</ПосевнаяПлощадь>
<СтавкаСубсидий>12</СтавкаСубсидий>
<Сумма>408</Сумма>
</РасчетФБ>
</Документы>
...

Вот такие пироги.

Имею следующий метод для отправки данные на сервер 1С.

BookAnAppointmentWithParams (EmployeeID[string], PatientSurname[string],
PatientName[string], PatientFatherName[string], Date[dateTime],
TimeBegin[dateTime], Comment[string], Phone[string], Email[string], Address[string],
Clinic[string], GUID[string], Params[Structure])

Пример запроса:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ru="ru.umc" xmlns:core="http://v8.1c.ru/8.1/data/core">
<soap:Header/>
<soap:Body>
<ru: BookAnAppointmentWithParams>
<ru:EmployeeID>ac30e139-3087-11dc-8594-005056c00008</ru:EmployeeID>
<ru:PatientSurname>Иванов</ru:PatientSurname>
<ru:PatientName>Иван</ru:PatientName>
<ru:PatientFatherName>Иванович</ru:PatientFatherName>
<ru:Date>2017-03-17T00:00:00</ru:Date>
<ru:TimeBegin>0001-01-01T13:10:00</ru:TimeBegin>
<ru:Comment>Комментарий</ru:Comment>
<ru:Phone>89876543210</ru:Phone>
<ru:Email>bit@1cbit.ru</ru:Email>
<ru:Address>Ленина 1</ru:Address>
<ru:Clinic>f679444a-22b7-11df-8618-002618dcef2c</ru:Clinic>
<ru:GUID>9cc6b9fc-0b04-11e7-b13c-00e051000230</ru:GUID>
<ru:Params>
<core:Property name="Birthday">
<core:Value>1980-09-14T00:00:00</core:Value>
</core:Property>
<core:Property name="Duration">
<core:Value>0001-01-01T01:30:00</core:Value>
</core:Property>
</ru:Params>
</ru: BookAnAppointmentWithParams>
</soap:Body>
</soap:Envelope>

Посылаю данные в таком формате:

$this->client->connect->BookAnAppointmentWithParams(
            compact(
                'EmployeeID',
                'PatientSurname',
                'PatientName',
                'PatientFatherName',
                'Date',
                'TimeBegin',
                'Comment',
                'Phone',
                'Email',
                'Address',
                'Clinic',
                'GUID',
                'Params'
            ))->return

Собственно в compact находятся переменные с данными. Возникает проблема с передачей переменной Params.

Передаю её в таком виде:
$Params = compact('Birthday');

Но в 1С информация не поступает.

Вопрос следующий:
Правильно ли я отправляю параметр Params?
Если нет, то как будет правильно?

Понравилась статья? Поделить с друзьями:
  • Ошибка принтера canon mp250 e08
  • Ошибка принтера 6а00
  • Ошибка принтера 6a81 canon
  • Ошибка принтера 6000 canon что делать
  • Ошибка применения расширения конфигурации 1с как исправить