// выберем CSV файл ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогВыбора.Заголовок = “Выберите файл”; Если ДиалогВыбора.Выбрать() Тогда ИмяФайла = ДиалогВыбора.ПолноеИмяФайла; КонецЕсли; //Обработка данных из CSV // очищаем информацию в таблице и находим файл на диске, а потом считываем его: //очищаем таблицу и удаляем колонки Таблица.Очистить(); Таблица.Колонки.Очистить(); ЭлементыФормы.Таблица.Колонки.Очистить(); // чтение файла ЗагружаемыйФайл = Новый ТекстовыйДокумент; ЗагружаемыйФайл.Прочитать(ИмяФайла); //После того как мы получили все данные из файла, мы считываем 1 строку файла // и формируем колонки на форме с наименованиями из файла //шапка по умолчанию 1 строка, из первой строки делаем колонки таблицы Шапка = ЗагружаемыйФайл.ПолучитьСтроку(1); //раскладываем строку в массив МассивКолонок = РазложитьСтрокуВМассивПодстрок(Шапка,Разделитель); // процедура из типовой конфигурации, разбивает строку в массив по разделителям //генерируем колонки Для Каждого ИмяКолонки Из МассивКолонок Цикл ИмяБезПробелов = СтрЗаменить(ИмяКолонки,” “,”"); // убираем из имени колонок пробелы Таблица.Колонки.Добавить(ИмяБезПробелов,,ИмяКолонки); НоваяКолонка = ЭлементыФормы.Таблица.Колонки.Добавить(ИмяБезПробелов, ИмяКолонки); НоваяКолонка.Данные = ИмяБезПробелов; КонецЦикла; // После того, как шапка сформирована можно приступать к обработке самих данных Для НомерСтроки=2 по ЗагружаемыйФайл.КоличествоСтрок() Цикл Состояние(“Обрабатывается “+Строка(Формат(?(ЗагружаемыйФайл.КоличествоСтрок()=0,0,((100*НомерСтроки)/ ЗагружаемыйФайл.КоличествоСтрок())),”ЧЦ=3; ЧДЦ=0″))+” %”); ОбработкаПрерыванияПользователя(); //указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break // получить строку файла с указанным номером и преобразуем её в массив Строка = ЗагружаемыйФайл.ПолучитьСтроку(НомерСтроки); МассивКолонок = РазложитьСтрокуВМассивПодстрок(Строка,Разделитель);// процедура из типовой конфигурации, разбивает строку в массив по разделителям НоваяСтрока = Таблица.Добавить(); Если МассивКолонок.Количество() <> Таблица.Колонки.Количество() Тогда Сообщить(“Ошибка со строкой ” + Строка); Продолжить; // скорее всего в тексте содержит разделитель КонецЕсли; Для НомерКолонки = 1 по МассивКолонок.Количество() Цикл //заполняем строку значениями ТекущееЗначение = МассивКолонок[НомерКолонки-1]; ИмяКолонки = Таблица.Колонки[НомерКолонки-1].Имя; НоваяСтрока[ИмяКолонки] = ТекущееЗначение; КонецЦикла; КонецЦикла;