1С Последовательное чтение файлов
Прочитать данные из текстового файла можно с помощью двух методов «Текстовый документ» и «Чтение текста». Первый метод используется для чтение небольших файлов, так как в этом случае все данные из файла считываются сразу, а уже потом обрабатываются. Если файл очень больше то оптимальней использовать второй вариант «Чтение текста», в этом случае будет происходит чтение файла построчно. Эта статья является дополнение к предыдущей «Как загрузить данные в 1С из текстового файла«, там кстати описан первый вариант.
Как в 1С последовательно прочитать файл
Для того чтобы загружать данные из текстового файла построчно нужно написать следующий код.
Объект.ДанныеФайла.Очистить();
Текст = Новый ЧтениеТекста;
Текст.Открыть(Объект.ВыбратьФайл, КодировкаТекста.UTF8);
ТекСтрока = Текст.ПрочитатьСтроку();
Пока ТекСтрока <>Неопределено Цикл
МассивСлов = СтрРазделить(ТекСтрока, ";");
Если МассивСлов.Количество() < 3 Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = Объект.ДанныеФайла.Добавить();
НоваяСТрока.Наименование = МассивСлов[0];
НоваяСтрока.Расшифровка = МассивСлов[1];
НоваяСтрока.ИНН = МассивСлов[2];
ТекСтрока = Текст.ПрочитатьСтроку();
КонецЦикла;
Немного поясню.
Объект.ДанныеФайла.Очистить(); — каждый раз перед загрузкой очищаем форму чтобы данные не задвоились.
Текст = Новый ЧтениеТекста; — используем метод чтения.
Текст.Открыть(Объект.ВыбратьФайл, КодировкаТекста.UTF8); — указываем путь к файлу и кодировку
ТекСтрока = Текст.ПрочитатьСтроку(); — получаем строку.
Пока ТекСтрока <>Неопределено Цикл — проверяем наличие строк.
МассивСлов = СтрРазделить(ТекСтрока, «;»); — указываем разделитель
Если МассивСлов.Количество() < 3 Тогда — проверяем количество слов в строке, если меньше трех пропускаем.
Дальше собственно устанавливаем соответствие.
В результате выполнения этого кода будет происходить чтение каждой строки по отдельности, т.е программа сначала загрузить первую строку, потом вторую и т.д.
Сохраняем и проверяем работоспособность, для пользователя внешне абсолютно ничего не поменяется, но такой код будет намного оптимальней.
Вот так достаточно просто можно реализовать последовательную загрузку данных из текстового файла в 1С.