Модуль формы. Тонкий клиент

&НаКлиенте
Процедура ПриОткрытии(Отказ)
Разделитель	=	";";
КонецПроцедуры

&НаКлиенте
Процедура ЗагрузитьПереводыИзCSV(Команда)
ПолноеИмяВыбранногоФайла	=	"";
ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбора.Заголовок = "Выберите файл";
ДиалогВыбора.Фильтр	="Документ CSV (*.csv)|*.csv|";
Если ДиалогВыбора.Выбрать() Тогда
ПолноеИмяВыбранногоФайла = ДиалогВыбора.ПолноеИмяФайла;
ОбработатьЗагруженныйФайл()
КонецЕсли;
КонецПроцедуры

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