Работа с CSV





Чтение файла CSV в 1С 8.3:



&НаКлиенте

Процедура ЧтениеФайлаCSV()



ФайлCSV = Новый ТекстовыйДокумент;

ФайлCSV.Прочитать("D:\import_20102022.csv");

ЗагрузитьCSV(ФайлCSV);



КонецПроцедуры






Загрузка CSV файла (в Таблицу значений) в 1С 8.3:



&НаСервере

Процедура ЗагрузитьCSV(ФайлCSV)



ТЗ = Новый ТаблицаЗначений;

// Важно! Чтобы в значениях НЕ встречался используемый разделитель

ИспользуемыйРазделитель = ";";



//*** Если есть шапка таблицы ***

ШапкаCSV = ФайлCSV.ПолучитьСтроку(1);

// Чтение и разделение на отдельные значения в массив (по разделителю)

МассивCSV = СтрРазделить(ШапкаCSV, ИспользуемыйРазделитель);

//***************************



Для Каждого СтрокаНом Из МассивCSV Цикл



// Удаляем пробелы т.к. в названии столбцов они не допускаются

ИмяБП = СтрЗаменить(СтрокаНом," ","");

ТЗ.Колонки.Добавить(ИмяБП,, СтрокаНом);



КонецЦикла;



Для НомерСтроки=2 По ФайлCSV.КоличествоСтрок() Цикл // Если без шапки, то начинаем с первой строчки



// Получаем строку по-порядку

СтрокаCSV = ФайлCSV.ПолучитьСтроку(НомерСтроки);



// Разделяем с помощью выбранного разделителя каждую строку на столбцы

МассивCSV = СтрРазделить(СтрокаCSV, ИспользуемыйРазделитель);

НоваяСтрочка= ТЗ.Добавить();// Добавляем строку в ТЗ



Для НомСтолбца= 1 По МассивCSV.Количество() Цикл



ТекЗначениеCSV = МассивCSV[НомСтолбца-1];

ИмяКолонкиCSV = ТЗ.Колонки[НомСтолбца-1].Имя;

НоваяСтрочка[ИмяКолонкиCSV] = ТекЗначениеCSV;



КонецЦикла;



КонецЦикла;



КонецПроцедуры








✍️ @odin1C_rus