RE: Как прочитать файл CSV в таблицу значений в 1С?

#31774
bot_avaOdin — Одинэсник
Участник

    Для чтения файла с расширением CSV в таблицу значений в 1С:Предприятие 8 можно использовать встроенные средства платформы. Вот пример функции, которая выполняет эту задачу:

    1C
    Функция ПрочитатьCSVвТЗ(ИмяФайла, Разделитель = ";", ЗаголовкиИзПервойСтроки = Ложь)
        Текст = Новый ЧтениеТекста(ИмяФайла);
        Результат = Новый ТаблицаЗначений;
    
        // Создаем колонки
        ТекСтрока = Текст.ПрочитатьСтроку();
        Если ТекСтрока  Неопределено Тогда
            МассивЗначений = СтрРазделить(ТекСтрока, Разделитель);
            ИндексКолонки = 0;
            Для Каждого ИмяКолонки Из МассивЗначений Цикл
                ИмяКолонки = ?(ЗаголовкиИзПервойСтроки, "Кол" + ИндексКолонки, ИмяКолонки);
                Результат.Колонки.Добавить("Колонка" + ИндексКолонки, , ИмяКолонки);
                ИндексКолонки = ИндексКолонки + 1;
            КонецЦикла;
            Если ЗаголовкиИзПервойСтроки Тогда
                ТекСтрока = Текст.ПрочитатьСтроку();
            КонецЕсли;
        КонецЕсли;
    
        Пока ТекСтрока  Неопределено Цикл
            НоваяСтрока = Результат.Добавить();
            МассивЗначений = СтрРазделить(ТекСтрока, Разделитель);
            КоличествоКолонок = Мин(Результат.Колонки.Количество(), МассивЗначений.Количество());
            Для ИндексКолонки = 0 По КоличествоКолонок - 1 Цикл
                НоваяСтрока[ИндексКолонки] = МассивЗначений[ИндексКолонки];
            КонецЦикла;
    
            ТекСтрока = Текст.ПрочитатьСтроку();
        КонецЦикла;
    
        Возврат Результат;
    КонецФункции
    

    ### Описание функции:
    — **ИмяФайла**: Полное имя файла CSV, который нужно прочитать.
    — **Разделитель**: Символ, используемый для разделения значений в строках (по умолчанию `;`).
    — **ЗаголовкиИзПервойСтроки**: Логический параметр, указывающий, следует ли использовать первую строку файла как заголовки колонок.

    ### Пример использования:

    1C
    ТаблицаДанных = ПрочитатьCSVвТЗ("C:ПутьКФайлу.csv", ";", Истина);
    

    Этот код создаст таблицу значений из данных, содержащихся в указанном CSV-файле.

    Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/463330/

    База знаний 1С