|
09.08.2017, 11:23 | #1 |
Участник
|
Чтение CSV драйвер не определяет значение поля
Добрый день, возникла очень непонятная ситуация при чтении csv файла(банковская выписка(БВ)).
В банковской выписке есть поле "ЕГРПОУ корреспондента"(ОКПО, ЕДРПОУ). Начали приходить банковские выписки в которых это поле имеет длину 10 символов, до этого всегда было 8 символов. Почему-то драйвер не считывает значения этих полей, но если я пробую делать считывание только одной строки с CSV файле, поле считывается, то есть удаляю все строки кроме той, в которой "ЕГРПОУ корреспондента" = 10 символов, всё считывается. Почему такое может происходить? Может кто сталкивался или даст совет. Версия аксапты 3.0 Ниже джоб которым всё это дело проверяю. X++: static void MNESK_ReadCSV2(Args _args) { AsciiIo schemaINI; CCAdoConnection adoCon; CCAdoRecordset adoRec; ; schemaINI = new AsciiIo(@'\\Папка с фалом' + '\\schema.ini', 'W'); schemaINI.write(strfmt("[%1]", '180517.csv')); schemaINI.write("Format=Delimited(;)"); schemaINI = null; adoCon = new CCAdoConnection(); adoRec = new CCAdoRecordset(); adoCon.open(strfmt("Driver={Microsoft Text Driver (*.txt; *.csv)}; DriverId=27;FMT=Delimited';'; charset=windows-1251; DefaultDir=%1; Extensions=csv; HDR=YES; IMEX=1", @'\\папка с файлом')); adoRec.open(strfmt("select * from %1", '180517.csv'), adoCon); while (!adoRec.EOF()) { info(adoRec.fields().itemName('ЕГРПОУ корреспондента').value()); adoRec.moveNext(); } adoRec.close(); adoCon.close(); } |
|
21.08.2017, 17:34 | #2 |
Участник
|
Решение
Решило проблему добавление в формирование файла schema.ini, вот этого параметра.
schemaINI.write("MaxScanRows=0"); |
|