|
РИБ. Ошибка преобразования данных XML | ☑ | ||
---|---|---|---|---|
0
Денис Прог
30.03.18
✎
12:56
|
Добрый день. Есть РИБ с двумя базами. При выгрузки из центральной в перефирийную очень часто валится ошибка:
Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка преобразования данных XML: (тут путь к файлу и номер строки с ошибкой). По строке искал ошибку, там все как и у других элементов, которые уже были прочитаны. Если снимать регистрацию, и делать поменьше объем данных - обмен успешно завершается. Платформа 8.3.10, конфигурация Комплексная автоматизация, редакция 1.1 (1.1.19.1). |
|||
1
Сергиус
30.03.18
✎
13:01
|
(0)Отладчиком смотреть в каком месте ошибка, бывает что проблема в данных - например какой-ть кривой символ в наименовании элемента.
|
|||
2
Денис Прог
30.03.18
✎
13:07
|
Сергиус, в отладчике падает при попытки чтения файла.
Всегда разные строки, ну и он даже на пустых валится. |
|||
3
Сергиус
30.03.18
✎
13:09
|
(2)А обмен через сетевой каталог или ftp?
|
|||
4
Денис Прог
30.03.18
✎
13:10
|
Сергиус, через локальную папку
|
|||
5
Stim
30.03.18
✎
13:13
|
а если выгрузить через универсальный обмен хмл по узлу - что скажет?
|
|||
6
Денис Прог
30.03.18
✎
13:20
|
Stim, имеете ввиду обработку "Универсальный обмен данными в формате XML?"
|
|||
7
Stim
30.03.18
✎
13:21
|
да
|
|||
8
Денис Прог
30.03.18
✎
18:00
|
В общем сама ошибка:
Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка преобразования данных XML: [sfile://C:/Users/Администратор/AppData/Local/Temp/v8_DA45_da.xml][42,6] Чтение данных из файла обмена завершено с ошибками! и сам файл <v8msg:Message xmlns:v8msg="http://v8.1c.ru/messages"> <v8msg:Header> <v8msg:ExchangePlan>Полный</v8msg:ExchangePlan> <v8msg:To>МУР</v8msg:To> <v8msg:From>МСК</v8msg:From> <v8msg:MessageNo>49</v8msg:MessageNo> <v8msg:ReceivedNo>50</v8msg:ReceivedNo> </v8msg:Header> <v8msg:Body> <v8de:Changes xmlns:v8="http://v8.1c.ru/data" xmlns:v8de="http://v8.1c.ru/dataexchange/2005/02" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <v8de:Signature>f24c4ec6-1e59-47a0-9736-8c823eda0d28</v8de:Signature> <v8de:Config xmlns:v8md="http://v8.1c.ru/metadata/2005/08"> <v8de:Version>216.0</v8de:Version> <v8de:Digest1>00000000000000000000000000000000</v8de:Digest1> <v8de:Digest2 v2="e9d50d3997192529190612be7d91764c">09b8f5839afdd724be3d85315771472b</v8de:Digest2> </v8de:Config> <v8de:Nodes> <v8de:Node> <v8de:DeletionMark>false</v8de:DeletionMark> <v8de:Code>МСК</v8de:Code> <v8de:Description>Москва</v8de:Description> <v8de:УзелОбменаПоУмолчанию>00000000-0000-0000-0000-000000000000</v8de:УзелОбменаПоУмолчанию> <v8de:Организации/> </v8de:Node> <v8de:Node> <v8de:DeletionMark>false</v8de:DeletionMark> <v8de:Code>МУР</v8de:Code> <v8de:Description>Мурманск</v8de:Description> <v8de:УзелОбменаПоУмолчанию>00000000-0000-0000-0000-000000000000</v8de:УзелОбменаПоУмолчанию> <v8de:Организации/> </v8de:Node> </v8de:Nodes> <v8de:Data> <CatalogObject.Контрагенты> <Ref>f1a02159-fc90-11db-9488-00016cb2604d</Ref> <IsFolder>false</IsFolder> <DeletionMark>false</DeletionMark> <Parent>804b8942-d6d3-11e5-a248-00304864d125</Parent> Код ЮЮ0001751 Показать полностью <Description>Поставщики</Description> <ДокументУдостоверяющийЛичность/> <ДополнительноеОписание/> <ГоловнойКонтрагент>f1a02159-fc90-11db-9488-00016cb2604d</ГоловнойКонтрагент> <ИсточникИнформацииПриОбращении>00000000-0000-0000-0000-000000000000</ИсточникИнформацииПриОбращении> <КодПоОКПО/> <Комментарий/> <ИНН/> <КПП/> <ОсновноеКонтактноеЛицо>00000000-0000-0000-0000-000000000000</ОсновноеКонтактноеЛицо> <ОсновнойБанковскийСчет>00000000-0000-0000-0000-000000000000</ОсновнойБанковскийСчет> <ОсновнойВидДеятельности>00000000-0000-0000-0000-000000000000</ОсновнойВидДеятельности> <ОсновнойДоговорКонтрагента>00000000-0000-0000-0000-000000000000</ОсновнойДоговорКонтрагента> <ОсновнойМенеджерПокупателя>00000000-0000-0000-0000-000000000000</ОсновнойМенеджерПокупателя> <Покупатель>false</Покупатель> <Поставщик>false</Поставщик> <РасписаниеРаботыСтрокой/> <СрокВыполненияЗаказаПоставщиком>0</СрокВыполненияЗаказаПоставщиком> <ЮрФизЛицо/> <НеЯвляетсяРезидентом>false</НеЯвляетсяРезидентом> <ОКОПФ>00000000-0000-0000-0000-000000000000</ОКОПФ> <Регион>00000000-0000-0000-0000-000000000000</Регион> <ГруппаДоступаКонтрагента>00000000-0000-0000-0000-000000000000</ГруппаДоступаКонтрагента> <Импортер>false</Импортер> <Экпортер>false</Экпортер> <ОсновнаяЛицензия>00000000-0000-0000-0000-000000000000</ОсновнаяЛицензия> <Алкоголь>false</Алкоголь> <Производитель>false</Производитель> <ДопКод>0 </ДопКод> <ЭлементСинхронизирован>false</ЭлементСинхронизирован> <КодСтраны/> <ВнутреннийКонтрагент>false</ВнутреннийКонтрагент> <НаличиеФайлов>false</НаличиеФайлов> <ОГРН/> <ОбособленноеПодразделение>false</ОбособленноеПодразделение> <Проверен>false</Проверен> <ПроверенСтатус/> <ОтветственныйПользователь>00000000-0000-0000-0000-000000000000</ОтветственныйПользователь> <СсылкаФизЛицо>00000000-0000-0000-0000-000000000000</СсылкаФизЛицо> <ИдентификаторУчастникаЭДО/> <УзелОбменаПоУмолчанию>00000000-0000-0000-0000-000000000000</УзелОбменаПоУмолчанию> <ВидыДеятельности/> <МенеджерыПокупателя/> <Обмен/> <Файлы/> </CatalogObject.Контрагенты> </v8de:Data> </v8de:Changes> </v8msg:Body> </v8msg:Message> не пойму что тут может быть не так на 42 строчке с 6 символом? |
|||
9
Денис Прог
30.03.18
✎
18:01
|
42 строка здесь <ДополнительноеОписание/>
|
|||
10
Мимохожий Однако
30.03.18
✎
18:16
|
Не обновилась периферийная база. Отключи сценарии автоматического обмена пакетами и вручную обнови.
|
|||
11
Cyberhawk
30.03.18
✎
18:26
|
Как определил, на какой файл ругается?
|
|||
12
Сергиус
30.03.18
✎
19:01
|
(9)В базе отсутствует поле ДополнительноеОписание, поэтому совет из (10)
|
|||
13
Денис Прог
02.04.18
✎
09:28
|
(10) Cf основной выгрузил в перефирийную. Реквизиты полностью соответствуют, к тому же какой то контрагент выгружается, а какой то нет. Ошибки постоянно в разных полях, но это не могут быть данные, так как там обычное слова по типу "Поставщик" и тд. Либо пустая ссылка.
|
|||
14
Денис Прог
02.04.18
✎
09:28
|
(12) Это поле есть. Конфы полностью идентичные, так как я вручную залил cf основной в перефирийную
|
|||
15
Денис Прог
02.04.18
✎
09:30
|
(11) Ну в ошибке же он показывает путь к временному файлу, который читает. И сообщения, которые записывает, кладет в папку, которую я указал.
|
|||
16
Галахад
гуру
02.04.18
✎
09:41
|
Гм. Может база того. Этого.
|
|||
17
hhhh
02.04.18
✎
09:49
|
(15) на пустых и должен валиться, там проверка обычно на заполненность, если пусто, то валится. Например валюта не указана или еще что-то.
|
|||
18
Cyberhawk
02.04.18
✎
09:52
|
(15) Так это разные файлы
|
|||
19
Serg_1960
02.04.18
✎
09:58
|
Пора бы уже давно привыкнуть, что платформа иногда сама ошибается, указывая ошибку. Скорее всего в этой ошибке не место возникновения ошибки, а следствие ранее возникшей ошибки.
Вы спросите "в чем первопричина?" - честно скажу: "Не знаю!". Проверка диска, переустановка платформу, тестирование базы - всё это по любому делать нужно. Но проще и быстрее выгрузить базу в DT, загрузить в чистую базу на другом компьютере и повторить приём сообщения обмена там. Т.е. другими словами, если вы добьётесь повторяемости ошибки - то это будет важный признак установления первопричины. |
|||
20
Денис Прог
02.04.18
✎
10:11
|
(17) Так он валится на стадии чтения самого файла, то есть там еще не доходит до проверки заполненности и тд.
|
|||
21
Денис Прог
02.04.18
✎
10:11
|
(18) файлы разные, но смысл то один
|
|||
22
Денис Прог
02.04.18
✎
10:12
|
(19) Наверное, да. Попробую на своем компе, может и правда дело в чем то ином.
|
|||
23
Мимохожий Однако
02.04.18
✎
10:13
|
(14) Повторяю: Отключи сценарии автоматического обмена пакетами
|
|||
24
Денис Прог
02.04.18
✎
10:32
|
(23) Я вручную произвожу обмен, или вы другой какой то механизм подразумеваете?
|
|||
25
Cyberhawk
02.04.18
✎
10:32
|
(21) Какой еще смысл? Ты тугой? Файл нужно анализировать только тот, который указан в ошибке.
|
|||
26
Serg_1960
модератор
02.04.18
✎
10:33
|
1. Не ругайтесь и не оскорбляйте других.
|
|||
27
Serg_1960
модератор
02.04.18
✎
10:35
|
(24) Конфигурация не озвучена, а в некоторых конфигурациях автоматический(!) обмен производится с использованием справочника "Сценарии синхронизации данных".
|
|||
28
Денис Прог
02.04.18
✎
10:37
|
(27) Не не, писал в вопросе: Платформа 8.3.10, конфигурация Комплексная автоматизация, редакция 1.1 (1.1.19.1).
|
|||
29
Serg_1960
02.04.18
✎
10:38
|
Sorry, был невнимателен.
|
|||
30
Денис Прог
02.04.18
✎
10:47
|
(25) Я вас возможно поражу, но файл, в котором случается ошибка есть копия файла обмена. Оба файла идентичны. Но за совет быть внимательнее, спасибо.
|
|||
31
Serg_1960
02.04.18
✎
10:50
|
(в тему, в роли Кэпа) Обмен можно инициализировать непосредственно из плана обмена, используя функционал платформы или с помощью "ручного" запуска сценария синхронизации данных для автоматического обмена. В этих двух вариантах работают различные алгоритмы формирования сообщений обмена. Если сообщение обмена не архивировать - то тоже различные варианты алгоритмов (с использованием временного файла для разархивирования).
Это, в свою очередь, тоже порождает вариантабельность ошибок. |
|||
32
Галахад
гуру
02.04.18
✎
10:58
|
(31) Серьезно что-ли?
|
|||
33
Денис Прог
02.04.18
✎
11:19
|
(31) Эмм, не очень понимаю - как влияет ручной/автоматический запуск на формирование сообщения?
|
|||
34
assasu
02.04.18
✎
11:34
|
(0) видел похожую инфу в инете.
там плясали вокруг этих строк в файле <v8de:Digest1>00000000000000000000000000000000</v8de:Digest1> <v8de:Digest2 v2="e9d50d3997192529190612be7d91764c">09b8f5839afdd724be3d85315771472b</v8de:Digest2> |
|||
35
Рэйв
02.04.18
✎
11:42
|
Проверка файлов XML на наличие недопустимых символов с возможностью исправления.
http://catalog.mista.ru/public/286257/ |
|||
36
Рэйв
02.04.18
✎
11:43
|
Поиск объекта выгрузки РИБ с нечитаемым символом для XML
http://catalog.mista.ru/public/158782/ |
|||
37
Денис Прог
02.04.18
✎
11:59
|
(34) ну там немного другое, это я делал когда свой cf заливал, центральная база не хотела обмениваться с периферийной как раз из за этих строк. Спасибо.
|
|||
38
Денис Прог
02.04.18
✎
12:06
|
(35) Спасибо, скачать правда не могу, но буду копать в этом направлении.
|
|||
39
Рэйв
02.04.18
✎
12:20
|
||||
40
Serg_1960
02.04.18
✎
12:21
|
(32) Серьёзно. Уточню: я не говорю про формирование самого тела сообщения обмена, а только про алгоритмы по формированию самого файла сообщения. Например, использование временного файла, например, формирование наименования файла сообщения обмена - они различные.
|
|||
41
Денис Прог
02.04.18
✎
12:42
|
(39) Спасибо огромное!) Я другую немного написал, там основано на методе НайтиНедопустимыеСимволыXML, но к сожалению не она не ваша не нашла ничего.
|
|||
42
Галахад
гуру
02.04.18
✎
12:58
|
(40) Мы говорим про конфигурацию в (0)? Там все одинаково.
|
|||
43
assasu
02.04.18
✎
13:00
|
(39)(41) никогда не видел что бы обмен валился от недопустимых символов.
надо копать в сторону "Если снимать регистрацию, и делать поменьше объем данных - обмен успешно завершается. " Искать что не так в данных |
|||
44
Cyberhawk
02.04.18
✎
13:07
|
(30) "файл, в котором случается ошибка есть копия файла обмена. Оба файла идентичны" // Как определил?
|
|||
45
Рэйв
02.04.18
✎
13:25
|
(43)Просто у тебя не было никогда таких случаев. С русскими буками редко такое бывает.у нас в казахском алфавите есть несколько специфических букв.Вот они иногда гонят и не входят в разрешенные XML пределы символов
|
|||
46
Денис Прог
02.04.18
✎
13:28
|
(43) Копал и копаю) но дело в том, что есть определенный контрагент, на котором валится обмен, а именно при чтении файла в процедуре ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения, СтруктураНастроекОбменаДанными.КоличествоЭлементовВТранзакцииНаЗагрузкуДанных);
и валится он то на строчке НаименованиеПолное, то ДополнительноеОписание, то ГоловнойКонтрагент, с указанием на вполне адекватные символы. |
|||
47
Денис Прог
02.04.18
✎
13:36
|
(44) точка останова на ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения, СтруктураНастроекОбменаДанными.КоличествоЭлементовВТранзакцииНаЗагрузкуДанных);
там в ЧтениеСообщения есть путь к временному файлу, который создается при чтении файла обмена. Для примера: фрагмент файла обмена(только контрагент): <CatalogObject.Контрагенты> <Ref>f1a02159-fc90-11db-9488-00016cb2604d</Ref> <IsFolder>false</IsFolder> <DeletionMark>false</DeletionMark> <Parent>804b8942-d6d3-11e5-a248-00304864d125</Parent> <Code>ЮЮ0001751</Code> <Description>Поставщики</Description> <НаименованиеПолное>Поставщики</НаименованиеПолное> <ДокументУдостоверяющийЛичность> </ДокументУдостоверяющийЛичность> <ДополнительноеОписание/> <ГоловнойКонтрагент>f1a02159-fc90-11db-9488-00016cb2604d</ГоловнойКонтрагент> <ИсточникИнформацииПриОбращении>00000000-0000-0000-0000-000000000000</ИсточникИнформацииПриОбращении> <КодПоОКПО/> <Комментарий/> <ИНН/> <КПП/> <ОсновноеКонтактноеЛицо>00000000-0000-0000-0000-000000000000</ОсновноеКонтактноеЛицо> <ОсновнойБанковскийСчет>00000000-0000-0000-0000-000000000000</ОсновнойБанковскийСчет> <ОсновнойВидДеятельности>00000000-0000-0000-0000-000000000000</ОсновнойВидДеятельности> <ОсновнойДоговорКонтрагента>00000000-0000-0000-0000-000000000000</ОсновнойДоговорКонтрагента> <ОсновнойМенеджерПокупателя>00000000-0000-0000-0000-000000000000</ОсновнойМенеджерПокупателя> <Покупатель>false</Покупатель> <Поставщик>false</Поставщик> <РасписаниеРаботыСтрокой/> <СрокВыполненияЗаказаПоставщиком>0</СрокВыполненияЗаказаПоставщиком> <ЮрФизЛицо/> <НеЯвляетсяРезидентом>false</НеЯвляетсяРезидентом> <ОКОПФ>00000000-0000-0000-0000-000000000000</ОКОПФ> <Регион>00000000-0000-0000-0000-000000000000</Регион> <ГруппаДоступаКонтрагента>00000000-0000-0000-0000-000000000000</ГруппаДоступаКонтрагента> <Импортер>false</Импортер> <Экпортер>false</Экпортер> <ОсновнаяЛицензия>00000000-0000-0000-0000-000000000000</ОсновнаяЛицензия> <Алкоголь>false</Алкоголь> <Производитель>false</Производитель> <ДопКод>0 </ДопКод> <ЭлементСинхронизирован>false</ЭлементСинхронизирован> <КодСтраны/> <ВнутреннийКонтрагент>false</ВнутреннийКонтрагент> <НаличиеФайлов>false</НаличиеФайлов> <ОГРН/> <ОбособленноеПодразделение>false</ОбособленноеПодразделение> <Проверен>false</Проверен> <ПроверенСтатус/> <ОтветственныйПользователь>00000000-0000-0000-0000-000000000000</ОтветственныйПользователь> <СсылкаФизЛицо>00000000-0000-0000-0000-000000000000</СсылкаФизЛицо> <ИдентификаторУчастникаЭДО/> <УзелОбменаПоУмолчанию>00000000-0000-0000-0000-000000000000</УзелОбменаПоУмолчанию> <ВидыДеятельности/> <МенеджерыПокупателя/> <Обмен/> <Файлы/> </CatalogObject.Контрагенты> и временный: <CatalogObject.Контрагенты> <Ref>f1a02159-fc90-11db-9488-00016cb2604d</Ref> <IsFolder>false</IsFolder> <DeletionMark>false</DeletionMark> <Parent>804b8942-d6d3-11e5-a248-00304864d125</Parent> <Code>ЮЮ0001751</Code> <Description>Поставщики</Description> <НаименованиеПолное>Поставщики</НаименованиеПолное> <ДокументУдостоверяющийЛичность> </ДокументУдостоверяющийЛичность> <ДополнительноеОписание/> <ГоловнойКонтрагент>f1a02159-fc90-11db-9488-00016cb2604d</ГоловнойКонтрагент> <ИсточникИнформацииПриОбращении>00000000-0000-0000-0000-000000000000</ИсточникИнформацииПриОбращении> <КодПоОКПО/> <Комментарий/> <ИНН/> <КПП/> <ОсновноеКонтактноеЛицо>00000000-0000-0000-0000-000000000000</ОсновноеКонтактноеЛицо> <ОсновнойБанковскийСчет>00000000-0000-0000-0000-000000000000</ОсновнойБанковскийСчет> <ОсновнойВидДеятельности>00000000-0000-0000-0000-000000000000</ОсновнойВидДеятельности> <ОсновнойДоговорКонтрагента>00000000-0000-0000-0000-000000000000</ОсновнойДоговорКонтрагента> <ОсновнойМенеджерПокупателя>00000000-0000-0000-0000-000000000000</ОсновнойМенеджерПокупателя> <Покупатель>false</Покупатель> <Поставщик>false</Поставщик> <РасписаниеРаботыСтрокой/> <СрокВыполненияЗаказаПоставщиком>0</СрокВыполненияЗаказаПоставщиком> <ЮрФизЛицо/> <НеЯвляетсяРезидентом>false</НеЯвляетсяРезидентом> <ОКОПФ>00000000-0000-0000-0000-000000000000</ОКОПФ> <Регион>00000000-0000-0000-0000-000000000000</Регион> <ГруппаДоступаКонтрагента>00000000-0000-0000-0000-000000000000</ГруппаДоступаКонтрагента> <Импортер>false</Импортер> <Экпортер>false</Экпортер> <ОсновнаяЛицензия>00000000-0000-0000-0000-000000000000</ОсновнаяЛицензия> <Алкоголь>false</Алкоголь> <Производитель>false</Производитель> <ДопКод>0 </ДопКод> <ЭлементСинхронизирован>false</ЭлементСинхронизирован> <КодСтраны/> <ВнутреннийКонтрагент>false</ВнутреннийКонтрагент> <НаличиеФайлов>false</НаличиеФайлов> <ОГРН/> <ОбособленноеПодразделение>false</ОбособленноеПодразделение> <Проверен>false</Проверен> <ПроверенСтатус/> <ОтветственныйПользователь>00000000-0000-0000-0000-000000000000</ОтветственныйПользователь> <СсылкаФизЛицо>00000000-0000-0000-0000-000000000000</СсылкаФизЛицо> <ИдентификаторУчастникаЭДО/> <УзелОбменаПоУмолчанию>00000000-0000-0000-0000-000000000000</УзелОбменаПоУмолчанию> <ВидыДеятельности/> <МенеджерыПокупателя/> <Обмен/> <Файлы/> </CatalogObject.Контрагенты> |
|||
48
Денис Прог
04.04.18
✎
17:11
|
Нашел решение проблемы, точнее ее исправление.
Нижеперечисленное делаю при помощи обработки ВыгрузкаЗагрузкаДанныхXML(выгружаю), удалению произвожу самописной. 1. Делаю отбор нужного элемента(в моем случае я отбирал нужного мне контрагента); 2. Выгружаю в файл; 3. Удаляю контрагента(ОбменДанными=Истина); 4. Произвожу успешный обмен(неважно с какими данными, я просто пустые сообщения гонял, и обмен в обе стороны); 5. Загружаю обратно контрагента обработкой; 6. Делаю обмен - и ошибок в данном контрагенте нет. У себя в базе нашел 4 таких контрагента, после вышеперечисленных действий с каждым справочник полностью обменялся. В связи с чем хотелось бы спросить - с чем может быть связано данное поведение? У кого какие мысли? |
|||
49
Serg_1960
05.04.18
✎
09:43
|
(48) Удаляя и загружая объект, Вы исправляете ошибки, возникшие при записи объекта, которые, возможно, не выявляет ТИИ (оно не всесильно).
А если говорить "в общем случае", то... Стандартный типовой обмен РИБ - это функционал платформы прежде всего. Раньше часто обращал внимание и не раз попадал на то, как платформу глючит на казалось бы не таких уж и больших объёмах данных. Ваше решение в (48) просто помогает обойти эту проблему (уменьшая объём данных и вынося конфликтные данные в отдельный обмен). Ну, что я могу сказать по этому поводу... "Надо чаще обмениваться". Чем чаще обмен - тем меньше объём. Азбука :) Можно, в принципе, попробовать изменить настройку обмена, уходя из исполнения в рамках единой транзакции, на подбор в сторону уменьшения количества объектов в транзакции до тех пор, пока не уйдёт ошибка. |
|||
50
Денис Прог
06.04.18
✎
13:38
|
(49) "Удаляя и загружая объект, Вы исправляете ошибки, возникшие при записи объекта, которые, возможно, не выявляет ТИИ (оно не всесильно). " - тоже предполагал, но все таки интересно было кто еще что скажет)
Про частоту обмена - да, согласен, но базы решили объединить внезапно, в которых уже заведено много данных, и велись они обособленно. Да и самое главное, ошибка ушла, справочники обмениваются, пока что все хорошо) Спасибо) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |