По примеру из документации настроили шаблон экспорта в клиент-банк. Экспорт в "формате 1С", работаем с секциями.
На выходе получаем файл (условно) такой:
Цитата:
1CClientBankExchange
ВерсияФормата=1.0
Кодировка=Windows
СекцияДокумент
Номер=Т000084
Сумма=5000.00
КонецДокумента
КонецФайла
Т.е. перед секциями с документами идет пустая строка, клиент-банк такое не понимает и не загружает файл.
Кто-нибудь сталкивался?
Судя по коду, в методе BankClientExportFormatSection_RU.fillCommonFields() неверная обработка:
X++:
if (strStartsWith(tmpStr, #RecDelim))
{
tmpStr = substr(tmpStr, strlen(#RecDelim) + 1, strlen(s));
}
т.е. проверяем, нет ли "перевода строки" в начале секции, а не после. Исходя из кода всего метода, "перевод строки" в начале секции ну никак не может появиться, а вот в конце - вполне может. Также вызывает вопрос "strlen(s)" - это длина последней добавленной строки, а по логике этой проверки - нужна длина всей строки "tmpStr" за вычетом длины "перевода строки".
В итоге исправил так (см. ниже), файл формируется корректно:
X++:
//+ IF 29.06.2012
/*
if (strStartsWith(tmpStr, #RecDelim))
{
tmpStr = substr(tmpStr, strlen(#RecDelim) + 1, strlen(s));
}
*/
if (strEndsWith(tmpStr, #RecDelim))
{
tmpStr = substr(tmpStr, 1, strlen(tmpStr) - strlen(#RecDelim));
}
//- IF 29.06.2012