Загрузить данные из CSV файла в 1С (например из Bitrix)

 
 // Загрузить CSV файл в 1С (например из Bitrix)
 // Файл должен быть в кодировке windows-1251 (ANSI)
 Функция ЗагрузитьCSV(каталогCSV,ФайлCSV) 
    
    // задаем кодировку
    charset = "windows-1251";
    //charset = "utf-8";
    
    Connection = Новый COMОбъект("ADODB.Connection");
    Connection.ConnectionString = ""
    + "Driver={Microsoft Text Driver (*.txt; *.csv)};"
    + "DriverId=27;"
    + "charset="    + charset    + ";"
    + "DefaultDir=" + каталогCSV + ";"
    + "Extensions=csv;" 
    + "HDR=NO;"  
    + "IMEX=1;"
    ;  
    
    //сообщить("cs:" + Connection.ConnectionString);
    Connection.open();
    
    sql = "SELECT * FROM " + ФайлCSV;
    
    Попытка
       adOpenStatic = 3;
       adLockOptimistic = 3;
       adCmdText = 1;
       
       //rs = Connection.Execute(sql,adOpenStatic, adLockOptimistic, adCmdText);  
       rs = Connection.Execute(sql);         
    Исключение            
       
    //ОбработатьОшибки(Connection.Execute)
    Для каждого ADOErr из  Connection.Errors   Цикл
       err = "*** Execute() ERROR:"    + Символы.ВК 
       + sql        + Символы.ВК
       + "Ошибка: " + ADOErr.Number    + Символы.ВК
       + " : " + ADOErr.Description + Символы.ВК
       + " : " + ADOErr.Source + Символы.ВК
       + " : " + ADOErr.SQLState + Символы.ВК
       + " : " + ADOErr.NativeError + Символы.ВК
       ;
       
       сообщить(err,СтатусСообщения.ОченьВажное);
       Возврат -1;
    КонецЦикла;   
       
    КонецПопытки;
    
    // Цикл по записям
    Пока Не rs.EOF Цикл 
       
       rec = ""
       + rs.Fields(1).value + " | "
       + rs.Fields(2).value + " | "
       + rs.Fields(3).value + " | "
       + rs.Fields(4).value + " | "
       + rs.Fields(5).value + " | "
       + rs.Fields(6).value + " | "
       + rs.Fields(7).value + " | "
       + rs.Fields(8).value + " | "
       + rs.Fields(9).value + " | "
       + rs.Fields(10).value + " | "
       + rs.Fields(11).value + " | "
       + ?(rs.Fields(15).value=Null,"",rs.Fields(15).value) + " | "
       + ?(rs.Fields(33).value=Null,"",rs.Fields(33).value)
       ;
       
       сообщить(rec);
       rs.MoveNext();
       
    КонецЦикла; 
    
    Connection.Close();
    
    Возврат rs;  
    
 КонецФункции 
 
 ЗагрузитьCSV("D:\csv","my.csv"); 

No news availble




Рекламный блок:

Предлагаем решение Ваших задач 1С.

Внедрение 1С:

Доработка и сопровождение 1С:

Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.

Пишите: j008@j008.ru

Звоните: 8 916 710 83 51 Ольга