1с как прочитать файл
Перейти к содержимому

1с как прочитать файл

  • автор:

1с как прочитать файл

« Как стать программистом 1С » Язык 1С » Текстовый файл 1С — ЧтениеТекста 1С, ЗаписьТекста 1С, ЗначениеВФайл 1С, ЗначениеИзФайла 1С

Текстовый файл 1С — ЧтениеТекста 1С, ЗаписьТекста 1С, ЗначениеВФайл 1С, ЗначениеИзФайла 1С

Для работы с текстовыми файлами 1С предназначены объекты ЧтениеТекста 1С и ЗаписьТекста 1С. Функция ЗначениеВФайл() позволяет быстро и просто сохранить в текстовый файл 1С «любое» значение 1С, в том числе такие объекты как таблица значений и прочие.

Чтение текстового файла 1С

Пример чтения текстового файла (про строки и работу с символами переноса строки см. подробнее «Работа со строками»).

Пример 1. Чтение текстового файла 1С целиком с помощью ЧтениеТекста 1С (в одну «строку с переносами»)
Файл = Новый ЧтениеТекста(«D:\Текстовый файл.txt»);
ВесьФайлОднойСтрокой = Файл.Прочитать();
Файл.Закрыть();

Пример 2. Чтение текстового файла 1С построчно с помощью ЧтениеТекста 1С (в данном примере в массив строк)
мСтрокФайла = Новый Массив();
Файл = Новый ЧтениеТекста(«D:\Текстовый файл.txt»);

//прочитать строку считывает одну строку из файла
//если достигнут конец файла, то возвращается значение НЕОПРЕДЕЛЕНО
Строка = Файл.ПрочитатьСтроку();
//а не был ли файл пуст?
Если Строка <> Неопределено Тогда
мСтрокФайла.Добавить(Строка);
КонецЕсли;

//цикл пока чтение строки не вернет НЕОПРЕДЕЛЕНО
//внутри цикла повторяем чтение
Пока Строка <> Неопределено Цикл
Строка = Файл.ПрочитатьСтроку();
Если Строка <> Неопределено Тогда
мСтрокФайла.Добавить(Строка);
КонецЕсли;
КонецЦикла;

Запись текстового файла 1С

Пример 3. Запись текстового файла 1С с помощью ЗаписьТекста 1С (пример – формирование xml файла текстом)

Только зарегистрированные пользователи VIP группы могут видеть этот контент.

Получившийся текстовый файл 1С с помощью ЗаписьТекста 1С:

Пример 4. Сохранение значения 1С в текстовый файл 1С с помощью ЗначениеВФайл 1С, чтение с помощью ЗначениеИзФайла 1С
//запросом выбираем все документы поступления товара
Запрос = Новый Запрос(«ВЫБРАТЬ * ИЗ Документ.ПоступлениеТоваров»);

//Запрос.Выполнить().Выгрузить() — выгружает в таблицу значений все выбранные запросом документы
//ЗначениеВФайл 1С — сохраняет таблицу значений в файл
ЗначениеВФайл(«D:\Текстовый файл.txt», Запрос.Выполнить().Выгрузить());

//ЗначениеИзФайла — считывает значение из файла обратно, в то значение, которое было сохранено, в данном случае в таблицу значений
//если выполнить этот код в другой базе, то ссылки на объекты не сохранятся, а простые типы данных (строка, число, дата, булево) — сохраняться
//вариант — проходить таблицу перед сохранением в цикле, заменяя все ссылочные значения на простые типы (подробнее см. «Работа с типами»)
тЗначений = ЗначениеИзФайла(«D:\Текстовый файл.txt»);
тЗначений.ВыбратьСтроку();

Проголосовать за этот пост:

1с как прочитать файл

Как можно прочитать все текстовые файлы в определенной папке, как это можно реализовать, подскажите плс.

сначала надо найти файлы?

МассивФайлов = НайтиФайлы(<Путь>, , );
Для Каждого Файл Из МассивФайлов Цикл
.
КонецЦикла;

Есть папка, в этой папке есть файлы, мне нужно открыть все их и прочитать данные.
МассивФайлов = НайтиФайлы(«C:\Temp»);
Для каждого Файл Из МассивФайлов Цикл
Сообщить(Файл);
КонецЦикла;
Не работает

да, в этом каталоге у тебя нет файлов удовлетворяющих пустой маске.. что тут удивительного?

1С — как прочитать / записать текстовый файл (.txt — расширение, блокнот)

Пример процедуры по чтению текстового файла

Работа с текстовыми файлами — это очень востребованная задача, которая часто возникает при обменах данными со сторонним программным обеспечением. Данная статься будет полезна программисту.

Вариант 1 — без разделения на строки (считать информацию целиком)

&НаКлиенте Процедура ВывестиСодержимое() Файл = Новый ЧтениеТекста("G:\РусланИЛюдмила.txt"); БлокнотТекст = Файл.Прочитать(); Сообщить(БлокнотТекст); Файл.Закрыть(); КонецПроцедуры 

Вариант 2 — с построчным разделением (обход строк текстового файла)

&НаКлиенте Процедура ВывестиСодержимое() // процедура обходит все строки файла и выводит сообщение с текстом строки Файл = Новый ЧтениеТекста("G:\РусланИЛюдмила.txt"); ТекущаяСтрока = Файл.ПрочитатьСтроку(); Пока ТекущаяСтрока > Неопределено Цикл Сообщить(ТекущаяСтрока); ТекущаяСтрока = Файл.ПрочитатьСтроку(); КонецЦикла; КонецПроцедуры 

Пример изменения текста файла и его записи (сохранения)

&НаКлиенте Процедура СохранитьИзменения() Содержимое = Новый ЗаписьТекста; Содержимое.Открыть("G:\РусланИЛюдмила.txt"); Содержимое.ЗаписатьСтроку("Наше сообщение"); Содержимое.Закрыть(); КонецПроцедуры 

Чтение табличного документа из файла XLS на клиенте

При работе в клиент-серверном варианте, клиент и сервер чаще всего на разных компьютерах и это необходимо учитывать при разработке обработок для загрузки данных из файлов. Многие процедуры можно выполнять исключительно на стороне сервера, поэтому необходимо правильно передавать информацию на сервер. Пример правильной передачи данных между клиентом и сервером:

&НаКлиенте Процедура ОткрытьФайл(Команда) ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогВыбораФайла.Заголовок = "Прочитать табличный документ из файла"; ДиалогВыбораФайла.Фильтр = "Лист Excel 2007+ (*.xlsx)|*.xlsx| Лист Excel 2003 (*.xls)|*.xls|"; Если ДиалогВыбораФайла.Выбрать() Тогда Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ДиалогВыбораФайла.ПолноеИмяФайла)); ЗагрузитьТабличныйДокументИзФайла(Адрес, ДиалогВыбораФайла.ПолноеИмяФайла); КонецЕсли; КонецПроцедуры &НаСервере Процедура ЗагрузитьТабличныйДокументИзФайла(Адрес, ИмяФайла) //Необходимо чтение файлов XLS или XLSX Расширение = Прав(ИмяФайла, 4); Расширение = СтрЗаменить(Расширение, ".", ""); ФайлПриемник = ПолучитьИмяВременногоФайла(Расширение); ДанныеХранилища = ПолучитьИзВременногоХранилища(Адрес); ДанныеХранилища.Записать(ФайлПриемник); ТабличныйДокумент.Очистить(); ТабличныйДокумент.Прочитать(ФайлПриемник); КонецПроцедуры

Добавить комментарий Отменить ответ

Рубрики

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *