Синхронизация УПП 1.3 - УТ 11.1
Версия ут 11.1.10.138, версия упп 1.3.51.1.
В УТ добавил план обмена, прописал его в типовых механизмах бсп. В УПП добавил план обмена, настроил регистрацию, загрузил правила. При загрузке данных В УТ из УПП пишет вот такую ошибку
Правила обмена самые простые, ошибка вываливается даже с пустым сообщением обмена.
В УТ добавил план обмена, прописал его в типовых механизмах бсп. В УПП добавил план обмена, настроил регистрацию, загрузил правила. При загрузке данных В УТ из УПП пишет вот такую ошибку
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(13575)}: Ошибка формата сообщения обмена.
ВызватьИсключение НСтр("ru = 'Ошибка формата сообщения обмена.'");
Правила обмена самые простые, ошибка вываливается даже с пустым сообщением обмена.
По теме из базы знаний
- Универсальная выгрузка/загрузка данных для отличающихся конфигураций (JSON, Такси+ОФ)
- Обмен УПП 1.3, КА 1.1, УТ 10.3 с EnterpriseData (универсальный формат обмена) ED2
- Концепция автоматизации многопрофильного Холдинга в системе АУБ на платформе 1С
- Загрузка справочников: Контрагентов, Партнеров, Договоров, Банковских счетов из Excel в 1С УТ 11, Управление предприятием ERP 2
- [ED] Обмен для предыдущих версий - УТ 11.0, УТ 11.1, УТ 11.2, УТ 11.3, УТ 11.4, УТ 11.5 с EnterpriseData (универсальный формат обмена), правила обмена
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Тоже интересует? Получилось решить? Такая же ошибка.
Возникает в процедуре НачатьЧтениеСообщения(ЧтениеСообщения, АнализДанных = Ложь)
в этом месте:
// ДанныеПоОбмену (обязательный)
Если ФайлОбмена.ТипУзла <> ТипУзлаXML.НачалоЭлемента Тогда
ВызватьИсключение НСтр("ru = 'Ошибка формата сообщения обмена.'");
КонецЕсли;
Значение ФайлОбмена.ТипУзла = Ничего
Возникает в процедуре НачатьЧтениеСообщения(ЧтениеСообщения, АнализДанных = Ложь)
в этом месте:
// ДанныеПоОбмену (обязательный)
Если ФайлОбмена.ТипУзла <> ТипУзлаXML.НачалоЭлемента Тогда
ВызватьИсключение НСтр("ru = 'Ошибка формата сообщения обмена.'");
КонецЕсли;
Значение ФайлОбмена.ТипУзла = Ничего
Решение данного вопроса кроется в том, что УПП формируя файл добавляет туда тег для фонового обмена, который в новой версии БСП отсутствует!
И в типовом коде это не прописано!
Для решения проблемы нужно добавить дополнительное условие на этот тег и продолжить обработку чтения файла, тогда обмен отработает в штатном режиме!
И в типовом коде это не прописано!
Для решения проблемы нужно добавить дополнительное условие на этот тег и продолжить обработку чтения файла, тогда обмен отработает в штатном режиме!
Вот рабочий код:
Ключевое:
Процедура ПроизвестиЧтениеДанных(ЧтениеСообщения)
СтрокаСообщенияОбОшибке = "";
Пока ФайлОбмена.Прочитать() Цикл
ИмяУзла = ФайлОбмена.ЛокальноеИмя;
Если ИмяУзла = "Объект" Тогда
ОбменДаннымиСервер.РассчитатьПроцентЗагрузки(СчетчикЗагруженныхОбъектов(), КоличествоОбъектовКЗагрузке, РазмерФайлаСообщенияОбмена);
ПоследнийОбъектЗагрузки = ПрочитатьОбъект();
ОбработатьОкончаниеЧтенияНовогоЭлемента(ПоследнийОбъектЗагрузки);
ИначеЕсли ИмяУзла = "НаборЗаписейРегистра" Тогда
// набор записей регистра
ПоследнийОбъектЗагрузки = ПрочитатьНаборЗаписейРегистра();
ОбработатьОкончаниеЧтенияНовогоЭлемента(ПоследнийОбъектЗагрузки);
ИначеЕсли ИмяУзла = "УдалениеОбъекта" Тогда
// Обработка удаления объекта из информационной базы.
ПрочитатьУдалениеОбъекта(СтрокаСообщенияОбОшибке);
одПропустить(ФайлОбмена, "УдалениеОбъекта");
ОбработатьОкончаниеЧтенияНовогоЭлемента();
ИначеЕсли ИмяУзла = "ИнформацияОРегистрацииОбъекта" Тогда
ЕстьИнформацияОРегистрацииОбъекта = Истина;
ПоследнийОбъектЗагрузки = ПрочитатьИнформациюОРегистрацииОбъекта();
ОбработатьОкончаниеЧтенияНовогоЭлемента(ПоследнийОбъектЗагрузки);
ИначеЕсли ИмяУзла = "КорректировкаИнформацииОРегистрацииОбъекта" Тогда
ЕстьКорректировкаИнформацииОРегистрацииОбъекта = Истина;
ПрочитатьКорректировкуИнформацииСопоставления();
одПропустить(ФайлОбмена, ИмяУзла);
ИначеЕсли ИмяУзла = "ОбщиеДанныеУзлов" Тогда
ПрочитатьОбщиеДанныеУзлов(ЧтениеСообщения);
одПропустить(ФайлОбмена, ИмяУзла);
ИначеЕсли (ИмяУзла = "ФайлОбмена") И (ФайлОбмена.ТипУзла = ТипУзлаXMLКонецЭлемента) Тогда
Прервать; // выходим
ИначеЕсли ИмяУзла = "ДанныеПоФоновомуОбмену" Тогда
Продолжить; // в УПП старый формат правил!
Иначе
ВызватьИсключение НСтр("ru = 'Ошибка формата сообщения обмена.'");
КонецЕсли;
// Прерываем цикл чтения файла в случае возникновения ошибки загрузки.
Если ФлагОшибки() Тогда
ВызватьИсключение НСтр("ru = 'Возникли ошибки при загрузке данных.'");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ПоказатьКлючевое:
ИначеЕсли ИмяУзла = "ДанныеПоФоновомуОбмену" Тогда
Продолжить; // в УПП старый формат правил!
// ДанныеПоОбмену (обязательный)
Если ФайлОбмена.ТипУзла <> ТипУзлаXML.НачалоЭлемента Тогда
ВызватьИсключение НСтр("ru = 'Ошибка формата сообщения обмена.'");
КонецЕсли;
А вот эту проблему решили как то ?
А то у меня странно получается - если сформированный файл (с ЗуП) загрузить в БУХ через встроенную обработку "Универсальных обмен XML" - без проблем заливаеться.
А вот именно через обмен - нифига, вот эта фот ошибка.
Да и если в БУХе его "пропихнуть" - то дальше все равно сыпиться все.
Такое ощущение что формат какой-то другой придлетаеи.
А почему он именно не так формиуеться ?
Если ФайлОбмена.ТипУзла <> ТипУзлаXML.НачалоЭлемента Тогда
ВызватьИсключение НСтр("ru = 'Ошибка формата сообщения обмена.'");
КонецЕсли;
А вот эту проблему решили как то ?
А то у меня странно получается - если сформированный файл (с ЗуП) загрузить в БУХ через встроенную обработку "Универсальных обмен XML" - без проблем заливаеться.
А вот именно через обмен - нифига, вот эта фот ошибка.
Да и если в БУХе его "пропихнуть" - то дальше все равно сыпиться все.
Такое ощущение что формат какой-то другой придлетаеи.
А почему он именно не так формиуеться ?
В 2015-м году появились КД3. Сейчас уже можно пользоваться готовым решением.
"Обмен УПП - ED"https://infostart.ru/public/444523/product/465895/
"Выгрузка из УПП в ED"https://infostart.ru/public/444523/product/522130/
"Обмен УПП - ED"
"Выгрузка из УПП в ED"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот