Имя: Пароль:
1C
1С v8
Ошибка чтения XML при обмене
0 Cherokee
 
02.09.13
15:17
Здравствуйте!
Есть проблема. Обмен между УПП1.3 и БП2.0
При попытке чтения файла обмена XML выпдает в исключение на строчках:

    ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
    ЧтениеСообщения.НачатьЧтение(ЧтениеXML);

Описание ошибки такое:

{ОбщийМодуль.ПроцедурыОбменаДанными.Модуль(40)}: Ошибка при вызове метода контекста (НачатьЧтение): Неправильный формат сообщения

Что бы это все значило?

P.S. Галка "Распределенная база данных" не поставлена в обоих базах: и УПП, и БП.
1 Maxus43
 
02.09.13
15:25
НачатьЧтение

Прочитывает заголовок сообщения обмена данными и проверяет содержащиеся в заголовке данные. Если какие-либо данные указаны неправильно (задан неизвестный план обмена, указан узел, не в ходящий в план обмена, номер сообщения не соответствует ожидаемому), вызывается исключение (с)
2 Cherokee
 
02.09.13
15:33
(1)
1. План обмена правильный.
2. Узел входит в план
3. Если бы номер был неправильный, то описание ошибки было бы соответствующим.

Думал, что возможно, причина в названиях конфигураций. Но нет, названия тоже правильные
3 Maxus43
 
02.09.13
15:41
(2) что-то в заголовке не так...
4 Cherokee
 
02.09.13
15:50
(3) Я понимаю. Но вот что?
Листинг заголовка:
<?xml version="1.0" encoding="UTF-8"?>
-<ФайлОбмена Комментарий="" ИдПравилКонвертации="f2d57675-0808-49a1-8874-25cbe4fa7c9e" ИмяКонфигурацииПриемника="БухгалтерияПредприятия" ИмяКонфигурацииИсточника="УправлениеПроизводственнымПредприятием" ДатаВыгрузки="2013-09-02T15:45:10" ВерсияФормата="2.0">-<ПравилаОбмена><ВерсияФормата>2.01</ВерсияФормата><Ид>f2d57675-0808-49a1-8874-25cbe4fa7c9e</Ид><Наименование>УправлениеПроизводственнымПредприятием 1.2 факт --> БухгалтерияПредприятия 2.0</Наименование><ДатаВремяСоздания>2013-09-02T15:42:01</ДатаВремяСоздания><Источник>УправлениеПроизводственнымПредприятием</Источник><Приемник>БухгалтерияПредприятия</Приемник>
5 cw014
 
02.09.13
15:52
А файл сам точно в UTF-8? Может кривыми руками BOM код был стерт?
6 Cherokee
 
02.09.13
15:53
(5) Как это посмотреть?
7 cw014
 
02.09.13
15:54
через блокнот
8 Cherokee
 
02.09.13
16:10
(7) Раскрыл через NotePad+, кодировка точно UTF-8.

Это я новый обмен пытаюсь запустить. Никто над файлом выгрузки не глумился.
9 Cherokee
 
03.09.13
09:54
Итак, проблема решена. Оставляю сведения тем, кому это, возможно, пригодится.

Если план обмена новый (т.е. вы его создали в конфигураторе), то тогда, чтоб заработало, необходимо соблюсти следующие условия:
1. Одинаковое название плана обмена в конфигурациях и источнике, и приемнике.
2. Чтоб не использовался механизм РИБ, на стороне приемника должны быть загружены правила в нужный план обмена. Если обмен односторонний, то правила надо сделать пустыми, т.е. в конвертации убираем выгрузку всех объектов.
3. Необходимо, чтоб у пользователя, под которым делается обмен, были необходимые права доступа к папке, куда будут копироваться временные файлы при загрузке и выгрузке ответа. По умолчанию это виндовая папка C:\Windows\Temp.

В моем случае, я никак не смог получить доступа к этой папке у админов (виртуализация серверов, доступ по RDP в ЦОД и т.д.). Поэтому, я в коде подменил папку для временных файлов.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.