1С импорт данных из csv файла

Опубликовано Опубликовано в рубрике 1C Программирование, Разное

Поскольку csv файл — является текстовым форматом данных с разделителем мы можем получать данные из него потем запроса с помощью Microsoft Text Driver, ну и конечно же 1cpp.dll

ЗагрузитьВнешнююКомпоненту("1cpp.dll");
 DB = СоздатьОбъект("ODBCDatabase");
 RS = СоздатьОбъект("ODBCRecordSet");
 ТЗ = СоздатьОбъект("ТаблицаЗначений");
 DB.Соединение("Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" + Каталог + "");
 RS.SetDatabase(DB);
 ТекстЗапроса = "
 |SELECT *
 |FROM
 |    [" + Файл + "] AS file";
 RS.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ,1);
 ТЗ.ВыбратьСтроку();

В данном примере мы получим ТаблицуЗначений (ТЗ) содержащую все данные, но что делать если нам необходимы не все, а только часть данных?

Во первых нам необходимо разобраться со структурой csv файла.

После того как мы разобрались с структурой файла мы можем совершать запросы к определенным данным, например так:

ЗагрузитьВнешнююКомпоненту("1cpp.dll");
 DB = СоздатьОбъект("ODBCDatabase");
 RS = СоздатьОбъект("ODBCRecordSet");
 ТЗ = глТЗ();
 DB.Соединение("Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" + Каталог + "");
 RS.SetDatabase(DB);
 ТекстЗапроса = "
 |SELECT Code, KD
 |FROM
 |    [" + Файл + "] AS file";
 RS.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ,1);
 ТЗ.ВыбратьСтроку();

Поля Code и KD описаны в файле shema.ini, поэтому мы можем использовать их в запросе к нашему файлу. Результатом будет ТаблицаЗначений содержащая 2 колонки с данными.