Поскольку 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 колонки с данными.