Пустые банковские документы приходят в БП3 из УНФ

Клиент обратился с проблемой — при загрузке из УНФ в БП3 у него создаются пустые документы поступления на расчетный счет, привязанные к реализациям. Пользователь продвинутый и в настройках обмена выключил галочки передачи банковских документов из УНФ в БП3, но документы все равно создаются.

Похоже, БП3 создает банковские документы, которым были оплачены эти реализации.

Посмотрел файл выгрузки и действительно, увидел подозрительные данные погашения задолженности — по документам:

Посмотрел — в УНФ есть такой банковский документ, и используется он как раз в расходной накладной:

Видимо, загрузка в БП3 и создает документ поступления на счет, т.к. видит, что нужно создать взаиморасчеты по документам и предполагает, что документ будет подгружен позже.

Разработчикам можно было бы создать опцию «Не передавать данные погашения задолженности», но это же УНФ, зачем от него хотеть много!?

Поэтому берем инициативу в свои руки.

Делаю в УНФ расширение для МенеджерОбменаЧерезУниверсальныйФормат18:

&Вместо("ЗаполнитьСпособПогашенияЗадолженности")
Процедура ТР_ЗаполнитьСпособПогашенияЗадолженности(КомпонентыОбмена, ДанныеИБ, ДанныеXDTO)
	ПродолжитьВызов(КомпонентыОбмена, ДанныеИБ, ДанныеXDTO);   
	
	//Осипов - корректируем, чтобы в БП3 не загружались данные по документам расчетов  2022-01-15
	Если ДанныеИБ.Метаданные().Имя = "РасходнаяНакладная" 
		ИЛИ ДанныеИБ.Метаданные().Имя = "АктВыполненныхРабот"
		ИЛИ ДанныеИБ.Метаданные().Имя = "ПриходнаяНакладная"
		Тогда
		СпособПогашенияЗадолженности = "Автоматически";
		ДанныеXDTO.Вставить("СпособПогашенияЗадолженности", СпособПогашенияЗадолженности);
		Сообщить("У документа " + ДанныеИБ + " отключена выгрузка документов расчета");
	КонецЕсли;

КонецПроцедуры

&После("ПКО_Документ_РасходнаяНакладная_Отправка_ПриОтправкеДанных")
Процедура ТР_ПКО_Документ_РасходнаяНакладная_Отправка_ПриОтправкеДанных(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки)
	//Осипов - корректируем, чтобы в БП3 не загружались данные по документам расчетов  2022-01-15
	//Директивно очищаем тег выгрузки	
	ДанныеXDTO.Удалить("ПогашениеЗадолженности"); //Удаляем
КонецПроцедуры

&После("ПКО_Документ_АктВыполненныхРабот_Отправка_ПриОтправкеДанных")
Процедура ТР_ПКО_Документ_АктВыполненныхРабот_Отправка_ПриОтправкеДанных(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки)
	//Осипов - корректируем, чтобы в БП3 не загружались данные по документам расчетов  2022-01-15
	//Директивно очищаем тег выгрузки	
	ДанныеXDTO.Удалить("ПогашениеЗадолженности"); //Удаляем
КонецПроцедуры

&После("ПКО_Документ_ПриходнаяНакладная_Отправка_ПриОтправкеДанных")
Процедура ТР_ПКО_Документ_ПриходнаяНакладная_Отправка_ПриОтправкеДанных(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки)
	//Осипов - корректируем, чтобы в БП3 не загружались данные по документам расчетов  2022-01-15
	//Директивно очищаем тег выгрузки	
	ДанныеXDTO.Удалить("ПогашениеЗадолженности"); //Удаляем
КонецПроцедуры

В результате ненужные нам данные по погашению задолженности удаляются:

Сначала я хотел обойтись без отладки. Поэтому думал, что ДанныеXDTO — это какой-то ОбъектXDTO, поэтому вместо Удалить делал просто пустую вставку, на что получил ошибку:

Также в отладчике я только случайно заметил, что помимо погашений долга по расходным накладным передаются еще и погашения по актам выполненных работ — в УНФ это два разных документа. Поэтому корректирую их оба.

Сделал 3-4 тестовые выгрузки по минут 10 каждая, прежде чем она добиралась до выгрузки реализации или акта. Если бы можно было бы проверить для теста выгрузку только одного документа, было бы быстрее. Но это надо сохранять зарегистрированные изменения, потом регистрировать только один документ и пробовать. Сложно!

Думал, что всё работает, но решил поставить точки останова в БП3 и словил загрузку документа «Списание с расчетного счета»! Забыл, что в поступлении возможна такая же ситуация, поправил, добавил его в код, изначально там поступлений не было.

Остался еще момент с документами «Корректировка долга», но там другая схема корректировки, документов мало, я предложил клиенту сделать в другой раз, т.к. мы с ним занимались этой задачей в начале сотрудничества.

Не пускаю ненужные документы в БП3!

Среда: УНФ 1.6.26.172 Платформа: 8.3.19.1150
Объем: 2 час.

fixin

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

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

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

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