Чтение файла на сервере в режиме управляемого приложения 1С:Предприятие 8.*
При работе с файлами в режиме управляемого приложение необходимо иметь ввиду, что выполнить какие-либо действия с данными файла нужно на сервере (например создать и заполнить элемент справочника), а сам файл доступен на клиенте. Т.о. необходимо либо считать данные файла в массив информации и в обрабатывать его на сервере или передать файл на сервер. В статье описан второй способ.
Задача: Заполнить справочник из файла в режиме управляемого приложения 1С.
Необходимо выполнить несколько этапов:
1) Поместить файл во временное хранилище
&НаКлиенте Процедура ЗагрузитьСДиска(Команда) АдресВХранилище = ""; ВыбранноеИмяФайла = ""; Если ПоместитьФайл(АдресВХранилище,,ВыбранноеИмяФайла,,УникальныйИдентификатор) Тогда Файл = Новый Файл(ВыбранноеИмяФайла); Объект.СсылкаНаФайлВоВременномХранилище = АдресВХранилище; ЗагрузитьВСправочник(); КонецЕсли; КонецПроцедуры
2) Непосредственная загрузка в справочник. Из временного хранилища создадим временный файл и прочитаем его
&НаСервере Процедура ЗагрузитьВСправочник() ДвоичныеДанные = ПолучитьИзВременногоХранилища(Объект.СсылкаНаФайлВоВременномХранилище); ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt"); ДвоичныеДанные.Записать(ИмяВременногоФайла); Текст = Новый ЧтениеТекста(ИмяВременногоФайла); Стр = Текст.ПрочитатьСтроку(); Пока Стр > Неопределено Цикл //код обработки строки, например создание и заполнение элемента справочника Стр = Текст.ПрочитатьСтроку(); КонецЦикла; Текст.Закрыть(); УдалитьФайлы(ИмяВременногоФайла); КонецПроцедуры
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С — как прочитать / записать текстовый файл (.txt — расширение, блокнот)
Пример процедуры по чтению текстового файла
Работа с текстовыми файлами — это очень востребованная задача, которая часто возникает при обменах данными со сторонним программным обеспечением. Данная статься будет полезна программисту.
Вариант 1 — без разделения на строки (считать информацию целиком)
&НаКлиенте Процедура ВывестиСодержимое() Файл = Новый ЧтениеТекста("G:\РусланИЛюдмила.txt"); БлокнотТекст = Файл.Прочитать(); Сообщить(БлокнотТекст); Файл.Закрыть(); КонецПроцедуры
Вариант 2 — с построчным разделением (обход строк текстового файла)
&НаКлиенте Процедура ВывестиСодержимое() // процедура обходит все строки файла и выводит сообщение с текстом строки Файл = Новый ЧтениеТекста("G:\РусланИЛюдмила.txt"); ТекущаяСтрока = Файл.ПрочитатьСтроку(); Пока ТекущаяСтрока > Неопределено Цикл Сообщить(ТекущаяСтрока); ТекущаяСтрока = Файл.ПрочитатьСтроку(); КонецЦикла; КонецПроцедуры
Пример изменения текста файла и его записи (сохранения)
&НаКлиенте Процедура СохранитьИзменения() Содержимое = Новый ЗаписьТекста; Содержимое.Открыть("G:\РусланИЛюдмила.txt"); Содержимое.ЗаписатьСтроку("Наше сообщение"); Содержимое.Закрыть(); КонецПроцедуры
1с как прочитать файл
Как можно прочитать все текстовые файлы в определенной папке, как это можно реализовать, подскажите плс.
сначала надо найти файлы?
МассивФайлов = НайтиФайлы(<Путь>, , );
Для Каждого Файл Из МассивФайлов Цикл
.
КонецЦикла;Путь>
Есть папка, в этой папке есть файлы, мне нужно открыть все их и прочитать данные.
МассивФайлов = НайтиФайлы(«C:\Temp»);
Для каждого Файл Из МассивФайлов Цикл
Сообщить(Файл);
КонецЦикла;
Не работает
да, в этом каталоге у тебя нет файлов удовлетворяющих пустой маске.. что тут удивительного?