Гарантированное исключение организации из обмена в УНФ 1.6

Как я ранее писал, я попробовал исключать организации из регистрации в плане обмена. Но это не помогло. Пользователи поправили документы, но все равно обмен не пошел. Тогда я начал искать другие документы, из которых тянутся эти организации.

Но увы, обмен после этого не заработал. В файле обмена я по-прежнему видел ненужную организацию.

Я попробовал разобраться, обнаружил, что в документе «Поступление на счет» фиксируется зачем-то банковский счет контрагента, хотя поступление идет на счет организации. А т.к. банковский счет контрагента задан только по одной организации, не по той, которая идет в обмен, выгружается этот счет и его организация. Очистил этот счет, но не помогло.

В конечном итоге я устал от борьбы и поиска ошибок и поставил условие, запрещающее выгрузку ненужных организаций, в расширение в модуль ОбменДаннымиXDTOСервер:

&Вместо("ПриОтправкеДанных")
Процедура дор_ПриОтправкеДанных(ДанныеИБ, ДанныеXDTO, Знач ИмяОбработчика, КомпонентыОбмена, СтекВыгрузки)
	//Осипов 2021-07-26 
	Если ТипЗнч(ДанныеИБ) = Тип("СправочникСсылка.Организации")
		И КомпонентыОбмена.Свойство("УзелКорреспондента")
		И ТипЗнч(КомпонентыОбмена.УзелКорреспондента) = Тип("ПланОбменаСсылка.СинхронизацияДанныхЧерезУниверсальныйФормат")
		И КомпонентыОбмена.УзелКорреспондента.ИспользоватьОтборПоОрганизациям
		И КомпонентыОбмена.УзелКорреспондента.Организации.Найти(ДанныеИБ, "Организация") = Неопределено Тогда
		Возврат; //Не выгружаем лишние организации
	КонецЕсли;
		
	ПродолжитьВызов(ДанныеИБ, ДанныеXDTO, ИмяОбработчика, КомпонентыОбмена, СтекВыгрузки);
КонецПроцедуры

Я поставил именно на это событие, потому что к моему удивлению, сама дальнейшая конвертация происходит в модуле «МенеджерОбменаЧерезУниверсальныйФормат16«, а ведь есть еще модули «МенеджерОбменаЧерезУниверсальныйФормат18«, т.е. лучше не ставить расширения на такие модули, которые зависят от версии Enterprise-данных. В них исполнение переходит уже после модуля » ОбменДаннымиXDTOСервер«.

Я поставил отладку в своем расширении и с удивлением обнаружил, что там еще одна организация пытается пролезть через фильтр. Она тоже не пошла.

Я думал, сработает ли так, если просто не давать выгружать организацию. Сработало. Данные загрузились в базу приемник. Понятно, что без организации ссылка на организацию не проставилась. Но по крайней мере, такой документ будет в непроведенном состоянии, но будет. И не будет стопорить остальной обмен.

Ужасно недоволен, как реализован обмен в типовых. Очень ненадежно.

Кстати, организация не загружалась в БП, потому что там была нетиповая БП (национализированная) и там не было какого-то регистра сведений. Но лишние организации там, в принципе и не нужны.

Объем: 1.5 час. Среда: УНФ 1.6.24.107

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *