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

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