Ошибка передачи БИК из УНФ 3.0 в БП 3.0

При обмене происходит сбой из-за длинного (более 9 символов БИК):

Направление: Отправка.
ПОД: Справочник_БанковскиеСчета_Отправка.
ПКО: Справочник_БанковскиеСчета_Отправка.
Объект: Справочник объект: Банковские счета, ***).

Ошибка формирования объекта XDTO: Тип свойства <КлючевыеСвойства>. Имя свойства: <КлючевыеСвойства>.

Ошибка формирования объекта XDTO: Тип свойства <КлючевыеСвойства>. Имя свойства: <Банк>.

Ошибка формирования объекта XDTO: Тип свойства <ОбщееСоставноеСвойство>. Имя свойства: <ДанныеКлассификатораБанков>.

Ошибка формирования объекта XDTO: Тип свойства <ОбычноеСвойство>. Имя свойства: <БИК>

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Несоответствие типов XDTO
по причине:
Ошибка проверки данных XDTO:
Значение: 'BK*****  ' не соответствует простому типу: 
Несоответствие фасету MaxLength = '9'

Процедура отправки банка выглядит так в модуле МенеджерОбменаЧерезУниверсальныйФормат:

Видно, что есть ошибка. Длина кода банка — 11 символов, они все и выгружаются с пробелом.

Соответственно, исправление выглядит так:

&Вместо("ПКО_Справочник_Банки_ПриОтправкеДанных")
Процедура дор_ПКО_Справочник_Банки_ПриОтправкеДанных(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки)
	ПродолжитьВызов(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки);
	Если ДанныеXDTO.Свойство("БИК") Тогда
		ДанныеXDTO.БИК = Лев(ДанныеXDTO.БИК, 9);
	КонецЕсли;
КонецПроцедуры

Но, оказалось, что так не работает, потому что расширять надо модуль ОбменДаннымиXDTOСервер:

&Вместо("ОбъектXDTOИзДанныхXDTO")
Функция дор_ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, Знач Источник, Знач ТипXDTO, СсылкиИзОбъекта, ПроведеноЗаполнениеСвойств, Знач Расширения)
	//Ориентируюсь просто на название свойства, в будущем  можно проверять тип объекта, конечно
	//Тип XDTO (ТипОбъектаXDTO) {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10}ОбщиеСвойстваДанныеКлассификатораБанков
	Если ТипЗнч(Источник) = Тип("Структура") И Источник.Свойство("БИК") Тогда
		Источник.БИК = Лев(Источник.БИК, 9);
	КонецЕсли;
	Результат = ПродолжитьВызов(КомпонентыОбмена, Источник, ТипXDTO, СсылкиИзОбъекта, ПроведеноЗаполнениеСвойств, Расширения);
	Возврат Результат;
КонецФункции

Каким-то образом БИК выгружается из другого места. Выявил только отладкой по точке останова возникновения ошибки с текстом XDTO.

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

fixin

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

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

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

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