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