Путь к менеджеру обмена в новых БСП

1. maloi3390 10.06.24 14:54 Сейчас в теме
Всем доброго дня.
Не так давно обнаружил, что в версии БСП 3.1.7.369 в плане обмена СинхронизацияДанныхЧерезУниверсальныйФормат отсутствует реквизит ПутьКМенеджеруОбмена, что делает невозможным использовать менеджер обмена из внешней обработки.
Понятно, что нет необходимости переписывать правила каждый день и постоянно подгружать новый менеджер в конфигурацию, но все же было удобно в целях отладки использовать внешнюю обработку, к тому же есть конфигурации на поддержке, которые совсем не хотелось бы снимать с замочка. Да, можно править в расширении, но это для меня не всегда удобно.
Кто как решал эту проблему?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. maloi3390 14.06.24 13:43 Сейчас в теме
Отвечу сам себе. Временно придумал такое решение ОбменДаннымиXDTOСервер
&ИзменениеИКонтроль("ВерсииФорматаОбмена")
Функция УП258_ВерсииФорматаОбмена(Знач УзелИнформационнойБазы)

	ВерсииФорматаОбмена = Новый Соответствие;
	ИмяПланаОбмена = "";

	Если ЗначениеЗаполнено(УзелИнформационнойБазы) Тогда
		ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелИнформационнойБазы);
		ВерсииФорматаОбмена = ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(ИмяПланаОбмена, "ВерсииФорматаОбмена");
		#Вставка
		УП258_ПолучитьВерсиюФорматаОбмена(ВерсииФорматаОбмена, УзелИнформационнойБазы);
		#КонецВставки
	Иначе
		ОбменДаннымиПереопределяемый.ПриПолученииДоступныхВерсийФормата(ВерсииФорматаОбмена);
	КонецЕсли;

	Если ВерсииФорматаОбмена.Количество() = 0 Тогда
		Если ЗначениеЗаполнено(УзелИнформационнойБазы) Тогда

			ШаблонОписанияОшибки = НСтр("ru = 'Не заданы версии формата обмена.
			|Имя плана обмена: %1
			|Процедура: %2';
			|en = 'Exchange format versions not set.
			|Exchange plan name: %1
			|Procedure: %2'");

			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияОшибки,
			ИмяПланаОбмена,
			"ПолучитьВерсииФорматаОбмена(<ВерсииФорматаОбмена>)");

			ВызватьИсключение ТекстОшибки;

		Иначе

			ШаблонОписанияОшибки = НСтр("ru = 'Не заданы версии формата обмена.
			|Процедура: %1';
			|en = 'Exchange format versions not set.
			|Procedure: %1'");

			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияОшибки,
			"ОбменДаннымиПереопределяемый.ПриПолученииДоступныхВерсийФормата(<ВерсииФорматаОбмена>)");

			ВызватьИсключение ТекстОшибки;

		КонецЕсли;
	КонецЕсли;

	Результат = Новый Соответствие;

	Для Каждого Версия Из ВерсииФорматаОбмена Цикл

		Результат.Вставить(СокрЛП(Версия.Ключ), Версия.Значение);

	КонецЦикла;

	Возврат Результат;

КонецФункции

Процедура УП258_ПолучитьВерсиюФорматаОбмена(ВерсииФормата, Знач УзелИнформационнойБазы) 
	
	Если УзелИнформационнойБазы.Наименование = "Бухгалтерия предприятия, редакция 3.0" Тогда
		ИмяОбработки = "C:\Exchange\МенеджерОбменаЧерезУниверсальныйФорматERPТестовый.epf";
		МенеджерОбмена = ВнешниеОбработки.Создать(ИмяОбработки);
		ВерсииФормата.Вставить("1.10", МенеджерОбмена);                                          
	КонецЕсли;
	
КонецПроцедуры
Показать
SergeySemendyaev; +1 Ответить
Оставьте свое сообщение

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