1С Чтение CSV
Подвох однако В интернетике полно примеров чтения CSV из 1С, но в большинстве из них при попытке использования ругается на «метод объекта не обнаружен ПолучитьСтроку». Секретик прост до безобразия: все эти статьи копипасты из одного какого-то источника, где команда ПолучитьСтроку написана в смеси английскиму-русскими буквами.
Вот нормальный рабочий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
//создаем таблицу, в которую будут записаны данные из файла Таблица = новый ТаблицаЗначений; // чтение сообщить("--читаем файл "+тПуть); ЗагружаемыйФайл = Новый ТекстовыйДокумент; ЗагружаемыйФайл.Прочитать(тПуть); // ИмяФайла - путь к файлу на диске сообщить("--ок"); //Формируем шапку таблицы. Шапка по умолчанию первая строчка сообщить("--получаем шапку"); Шапка = ЗагружаемыйФайл.ПолучитьСтроку(1); сообщить("--ок"); //раскладываем стрoку в массив Разделителем колонок в данном случае является точка с запятой МассивКол = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Шапка, ";"); //генерируем столбцы сообщить("--генерируем столбцы таблицы"); Для Каждого ИмяСтолбца Из МассивКол Цикл ИмяБезПробелов = СтрЗаменить(ИмяСтолбца," ",""); // убираем из имени пробелы Таблица.Колонки.Добавить(ИмяБезПробелов,,ИмяСтолбца); КонецЦикла; сообщить("--ок"); сообщить("--загружаем файл в таблицу"); Для НомерСтроки=2 по ЗагружаемыйФайл.КоличествоСтрок() Цикл // получить стрoку с указанным номером и преобразуем её в массив Строка = ЗагружаемыйФайл.ПолучитьСтроку(НомерСтроки); МассивКол = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Строка,";"); НоваяСтрочка= Таблица.Добавить(); Для НомерСтолбца= 1 по МассивКол.Количество() Цикл //заполняем строчку значениями ТекущееЗначение = МассивКол[НомерСтолбца-1]; ИмяКолонки = Таблица.Колонки[НомерСтолбца-1].Имя; НоваяСтрочка[ИмяКолонки] = ТекущееЗначение; КонецЦикла; КонецЦикла; сообщить("--ок"); |
P.S. Тем кто изначально разместил такой не рабочий код, посылаю лучи ненависти. Тоже тупил наверное минут 15.