При загрузке в программу банка файла Заявки на открытие лицевых счетов (1С ЗУП, версия 3.1.27.111) в последнее время стала выходить ошибка "Не удалось обработать файл". Причина – теперь банк считает лишней в теге <СчетаПК> строку «xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://v8.1c.ru/edi/edi_stnd/109" xsi:type="СчетПК"», присутствующую в выгруженном файле.
Для того, чтобы каждый раз не исправлять вручную файл выгрузки заявок, можно в программе исправить: добавить следующую строку в функцию УдалитьПространствоИмен в общем модуле ОбменСБанкамиПоЗарплатнымПроектам (если в зарплатном проекте вы используете Стандарт ЭОИ с банком версии 3.6):
Функция УдалитьПространствоИмен(ТекстXML, ФорматФайла, КодировкаФайла)
МассивИменСвойствСумм = Новый Массив;
Пакет = ФабрикаXDTO.Пакеты.Получить(Метаданные.ПакетыXDTO.ФорматОбменаСБанкамиПоЗарплатнымПроектам.ПространствоИмен);
Для Каждого КорневоеСвойство Из Пакет.КорневыеСвойства Цикл
КорневойОбъектXDTO = ФабрикаXDTO.Создать(КорневоеСвойство.Тип);
ДополнитьМассивИменСвойствСумм(МассивИменСвойствСумм, КорневойОбъектXDTO, КорневоеСвойство.Имя);
КонецЦикла;
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(ТекстXML);
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку(КодировкаФайла);
ЗаписьXML.ЗаписатьОбъявлениеXML();
ИмяЭлемента = "";
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ИмяЭлемента = ИмяЭлемента + ?(ИмяЭлемента = "", "", "\") + ЧтениеXML.Имя;
ЗаписьXML.ЗаписатьНачалоЭлемента(ЧтениеXML.Имя);
Если ЧтениеXML.КоличествоАтрибутов() > 0 Тогда
Пока ЧтениеXML.ПрочитатьАтрибут() Цикл
Если (ЧтениеXML.Имя = "xmlns"
Или ЧтениеXML.Имя = "xmlns:xs"
Или ЧтениеXML.Имя = "xmlns:xsi"
Или ЧтениеXML.Имя = "xsi:type")
И (ФорматФайла = Перечисления.ФорматыФайловОбменаПоЗарплатномуПроекту.Версия1
//Добавить строку
Или ФорматФайла = Перечисления.ФорматыФайловОбменаПоЗарплатномуПроекту.Версия36
//
Или ФорматФайла = Перечисления.ФорматыФайловОбменаПоЗарплатномуПроекту.Версия3)Тогда
Продолжить;
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут(ЧтениеXML.Имя, ЧтениеXML.Значение);
КонецЦикла;
КонецЕсли;
ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
Если МассивИменСвойствСумм.Найти(ИмяЭлемента) = Неопределено Тогда
ЗаписьXML.ЗаписатьТекст(ЧтениеXML.Значение);
Иначе
ЗаписьXML.ЗаписатьТекст(Формат(Число(ЧтениеXML.Значение), "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=; ЧГ=0"));
КонецЕсли;
ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
ЗаписьXML.ЗаписатьКонецЭлемента();
ИмяЭлемента = Лев(ИмяЭлемента, СтрДлина(ИмяЭлемента) - СтрДлина(ЧтениеXML.Имя) - 1);
Иначе
ЗаписьXML.ЗаписатьАтрибут(ЧтениеXML.Имя, ЧтениеXML.Значение);
КонецЕсли;
КонецЦикла;
ЧтениеXML.Закрыть();
Возврат ЗаписьXML.Закрыть();
КонецФункции
После этого данный тег не будет выходить в выгруженном файле, и ошибка уйдет.