Работа с CSV
Чтение файла CSV в 1С 8.3:
Загрузка CSV файла (в Таблицу значений) в 1С 8.3:
✍️ @odin1C_rus
Чтение файла 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