Синхронизация УПП 1.3 - УТ 11.1

1. bezplana 25.05.15 14:14 Сейчас в теме
Версия ут 11.1.10.138, версия упп 1.3.51.1.
В УТ добавил план обмена, прописал его в типовых механизмах бсп. В УПП добавил план обмена, настроил регистрацию, загрузил правила. При загрузке данных В УТ из УПП пишет вот такую ошибку
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(13575)}: Ошибка формата сообщения обмена.
			ВызватьИсключение НСтр("ru = 'Ошибка формата сообщения обмена.'");

Правила обмена самые простые, ошибка вываливается даже с пустым сообщением обмена.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. progr-2008 118 29.10.18 00:17 Сейчас в теме
2. revril 11.04.16 12:30 Сейчас в теме
Получилось найти решение данной проблемы?
Natain14; +1 Ответить
3. igrned 17.03.18 15:06 Сейчас в теме
Тоже интересует? Получилось решить? Такая же ошибка.
Возникает в процедуре НачатьЧтениеСообщения(ЧтениеСообщения, АнализДанных = Ложь)
в этом месте:

// ДанныеПоОбмену (обязательный)
Если ФайлОбмена.ТипУзла <> ТипУзлаXML.НачалоЭлемента Тогда
ВызватьИсключение НСтр("ru = 'Ошибка формата сообщения обмена.'");
КонецЕсли;


Значение ФайлОбмена.ТипУзла = Ничего
4. Xershi 1484 28.10.18 21:47 Сейчас в теме
Решение данного вопроса кроется в том, что УПП формируя файл добавляет туда тег для фонового обмена, который в новой версии БСП отсутствует!
И в типовом коде это не прописано!
Для решения проблемы нужно добавить дополнительное условие на этот тег и продолжить обработку чтения файла, тогда обмен отработает в штатном режиме!
5. Xershi 1484 28.10.18 21:53 Сейчас в теме
Вот рабочий код:
Процедура ПроизвестиЧтениеДанных(ЧтениеСообщения)
	
	СтрокаСообщенияОбОшибке = "";
	
	Пока ФайлОбмена.Прочитать() Цикл
		
		ИмяУзла = ФайлОбмена.ЛокальноеИмя;
		
		Если ИмяУзла = "Объект" Тогда
			
			ОбменДаннымиСервер.РассчитатьПроцентЗагрузки(СчетчикЗагруженныхОбъектов(), КоличествоОбъектовКЗагрузке, РазмерФайлаСообщенияОбмена);
			ПоследнийОбъектЗагрузки = ПрочитатьОбъект();
			
			ОбработатьОкончаниеЧтенияНовогоЭлемента(ПоследнийОбъектЗагрузки);
			
		ИначеЕсли ИмяУзла = "НаборЗаписейРегистра" Тогда
			
			// набор записей регистра
			ПоследнийОбъектЗагрузки = ПрочитатьНаборЗаписейРегистра();
			
			ОбработатьОкончаниеЧтенияНовогоЭлемента(ПоследнийОбъектЗагрузки);
			
		ИначеЕсли ИмяУзла = "УдалениеОбъекта" Тогда
			
			// Обработка удаления объекта из информационной базы.
			ПрочитатьУдалениеОбъекта(СтрокаСообщенияОбОшибке);
			
			одПропустить(ФайлОбмена, "УдалениеОбъекта");
			
			ОбработатьОкончаниеЧтенияНовогоЭлемента();
			
		ИначеЕсли ИмяУзла = "ИнформацияОРегистрацииОбъекта" Тогда
			
			ЕстьИнформацияОРегистрацииОбъекта = Истина;
			
			ПоследнийОбъектЗагрузки = ПрочитатьИнформациюОРегистрацииОбъекта();
			
			ОбработатьОкончаниеЧтенияНовогоЭлемента(ПоследнийОбъектЗагрузки);
			
		ИначеЕсли ИмяУзла = "КорректировкаИнформацииОРегистрацииОбъекта" Тогда
			
			ЕстьКорректировкаИнформацииОРегистрацииОбъекта = Истина;
			
			ПрочитатьКорректировкуИнформацииСопоставления();
			
			одПропустить(ФайлОбмена, ИмяУзла);
			
		ИначеЕсли ИмяУзла = "ОбщиеДанныеУзлов" Тогда
			
			ПрочитатьОбщиеДанныеУзлов(ЧтениеСообщения);
			
			одПропустить(ФайлОбмена, ИмяУзла);
			
		ИначеЕсли (ИмяУзла = "ФайлОбмена") И (ФайлОбмена.ТипУзла = ТипУзлаXMLКонецЭлемента) Тогда
			
			Прервать; // выходим
			
		ИначеЕсли ИмяУзла = "ДанныеПоФоновомуОбмену" Тогда
			
			Продолжить; // в УПП старый формат правил!
			
		Иначе
			
			ВызватьИсключение НСтр("ru = 'Ошибка формата сообщения обмена.'");
			
		КонецЕсли;
		
		// Прерываем цикл чтения файла в случае возникновения ошибки загрузки.
		Если ФлагОшибки() Тогда
			ВызватьИсключение НСтр("ru = 'Возникли ошибки при загрузке данных.'");
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры
Показать


Ключевое:
ИначеЕсли ИмяУзла = "ДанныеПоФоновомуОбмену" Тогда
			
			Продолжить; // в УПП старый формат правил!
			
		
Азверин; a_l_e_xj; exitel; +3 Ответить
6. Xershi 1484 28.10.18 22:02 Сейчас в теме
Если править конфу не хотим, то надо сделать так чтобы файл от УПП был без этого тега, либо править ручками, либо переписывать УПП. Сам сделал правку в УТ.
8. Xershi 1484 17.04.20 20:34 Сейчас в теме
Так же в УПП есть 2 версии обмена.
Первая о которой говорил. так и работает.
Но позже узнал, что есть 2 версия, которая работает в управляемом приложении и там такой проблемы нет.
9. user887784 07.05.21 12:40 Сейчас в теме
(8)А что за второй ? Сейчас с тем-же воюю только обмен ЗуП-БУХ
10. Xershi 1484 07.05.21 13:30 Сейчас в теме
(9) обмен в ОФ работает по КД 1, обмен УФ по КД 2.
Ну как это правильно назвать я не знаю, но суть такая!
11. user887784 07.05.21 13:37 Сейчас в теме
// ДанныеПоОбмену (обязательный)
Если ФайлОбмена.ТипУзла <> ТипУзлаXML.НачалоЭлемента Тогда
ВызватьИсключение НСтр("ru = 'Ошибка формата сообщения обмена.'");
КонецЕсли;

А вот эту проблему решили как то ?
А то у меня странно получается - если сформированный файл (с ЗуП) загрузить в БУХ через встроенную обработку "Универсальных обмен XML" - без проблем заливаеться.

А вот именно через обмен - нифига, вот эта фот ошибка.
Да и если в БУХе его "пропихнуть" - то дальше все равно сыпиться все.

Такое ощущение что формат какой-то другой придлетаеи.
А почему он именно не так формиуеться ?
12. user887784 07.05.21 14:05 Сейчас в теме
13. Xershi 1484 07.05.21 22:58 Сейчас в теме
(12) выше же написал, что я по этому поводу думаю.
Либо допиливайте код кд1 для правил кд2, либо используйте обмен через уф он там уже для кд2.
14. MaxS 2850 09.05.21 07:15 Сейчас в теме
В 2015-м году появились КД3. Сейчас уже можно пользоваться готовым решением.
"Обмен УПП - ED" https://infostart.ru/public/444523/product/465895/
"Выгрузка из УПП в ED" https://infostart.ru/public/444523/product/522130/
Оставьте свое сообщение

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