1С — как прочитать / записать текстовый файл (.txt — расширение, блокнот)
Пример процедуры по чтению текстового файла
Работа с текстовыми файлами — это очень востребованная задача, которая часто возникает при обменах данными со сторонним программным обеспечением. Данная статься будет полезна программисту.
Вариант 1 — без разделения на строки (считать информацию целиком)
&НаКлиенте Процедура ВывестиСодержимое() Файл = Новый ЧтениеТекста("G:\РусланИЛюдмила.txt"); БлокнотТекст = Файл.Прочитать(); Сообщить(БлокнотТекст); Файл.Закрыть(); КонецПроцедуры
Вариант 2 — с построчным разделением (обход строк текстового файла)
&НаКлиенте Процедура ВывестиСодержимое() // процедура обходит все строки файла и выводит сообщение с текстом строки Файл = Новый ЧтениеТекста("G:\РусланИЛюдмила.txt"); ТекущаяСтрока = Файл.ПрочитатьСтроку(); Пока ТекущаяСтрока > Неопределено Цикл Сообщить(ТекущаяСтрока); ТекущаяСтрока = Файл.ПрочитатьСтроку(); КонецЦикла; КонецПроцедуры
Пример изменения текста файла и его записи (сохранения)
&НаКлиенте Процедура СохранитьИзменения() Содержимое = Новый ЗаписьТекста; Содержимое.Открыть("G:\РусланИЛюдмила.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С 8
Целью данной статьи будет изучение алгоритмов работы с текстовыми файлами, TXT и CSV. Очень часто приходится использовать данные форматы для обмена данными между несколькими базами, в том числе и отличными от 1С.
- Чтение текстового файла
- Если файл небольшой можно использовать объект ТекстовыйДокумент (пример чтения )
- Запись текстового файла
- Запись через «ТекстовыйДокумент»
- Чтение файла CSV
- Подведем итоги:
Чтение текстового файла
Открытие текстового файла для чтения описывается конструкцией:
Текст = Новый ЧтениеТекста ;
Текст . Открыть ( ПолноеИмяФайла );В данной конструкции создается неинициализированный объект ЧтениеТекста, а для инициализации используется метод Открыть()
Пример:
Процедура ПрочитатьФайл ( Команда )
// Вставить содержимое обработчика.
//Открываем диалог выбора файла для чтения
ВыборФайла = Новый ДиалогВыбораФайла ( РежимДиалогаВыбораФайла . Открытие );
ВыборФайла . МножественныйВыбор = Ложь;
ВыборФайла . Заголовок = НСтр ( «ru = ‘Выбор файла’» );
ВыборФайла . Фильтр = НСтр ( «ru = ‘Все файлы (*.*)|*.*’» );
Если ВыборФайла . Выбрать () Тогда
ПолноеИмяФайла = ВыборФайла . ПолноеИмяФайла ;
Текст = Новый ЧтениеТекста ;
Текст . Открыть ( ПолноеИмяФайла );
Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки
Стр = Текст . ПрочитатьСтроку ();
Сообщить ( Стр );
КонецЦикла;
Текст . Закрыть ();
КонецПроцедуры
Перебор строк в текстовом документе реализован при помощи функции ПрочитатьСтроку().
После чтения файла не забываем его закрыть функцией Закрыть().
Объект ЧтениеФайлов подходит даже для больших объектов.Если файл небольшой можно использовать объект ТекстовыйДокумент (пример чтения )
Текст = Новый ТекстовыйДокумент ;
ПолноеИмяФайла = «D:\1C\Пример.txt» ;
Текст . Прочитать ( ПолноеИмяФайла ) ;КоличествоСтрок = Текст . КоличествоСтрок ( ) ;
Для Счетчик = 1 по КоличествоСтрок Цикл
ТекСтрока = Текст . ПолучитьСтроку ( Счетчик ) ;
Сообщить ( ТекСтрока ) ;
КонецЦикла ;Запись текстового файла
Запись в текстовый файл происходит приблизительно по тому же сценарию:
Процедура ЗаписатьФайл ( Команда )
//Открываем диалог выбора файла для записи
СохранениеФайла = Новый ДиалогВыбораФайла ( РежимДиалогаВыбораФайла . Сохранение );
СохранениеФайла . Заголовок = НСтр ( «ru = ‘Сохранить файл’» );
СохранениеФайла . Фильтр = НСтр ( «ru = ‘Все файлы (*.txt)|*.txt’» );
Если СохранениеФайла . Выбрать () Тогда
Текст = Новый ЗаписьТекста ;
Текст . Открыть ( СохранениеФайла . ПолноеИмяФайла , КодировкаТекста . ANSI );
Текст . ЗаписатьСтроку ( «Программируем в 1С 8.2» );
Текст . Закрыть ();
КонецПроцедурыЗаписать текст в документ можно при помощи функции ЗаписатьСтроку() — в данном случае после записанной строки автоматически добавится разделитель строк и следующая запись начнется с новой строки. Если же необходимо добавить в строку дополнительно текст, то можно воспользоваться функцией без переноса строки — Записать().
Запись через «ТекстовыйДокумент»
Пример не содержит проверок на наличие файла, файл перезаписывается. При необходимости добавления используйте метод Прочитать().
Текст = Новый ТекстовыйДокумент ;
Текст . ДобавитьСтроку ( «1» ) ;
Текст . ДобавитьСтроку ( «2» ) ;
Текст . Записать ( ) ;Чтение файла CSV
CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Каждая строка файла — это одна строка таблицы. Значения отдельных колонок разделяются разделительным символом (delimiter) — запятая (,) или точка с запятой (;). (Википедия)
Такой формат часто используют для выгрузки данных из различных баз отличных от 1С. Ниже представлен алгоритм чтения данного формата на основе обычного чтения текстового файла с анализом строки и разбиением ее на поля.
Пример:
Процедура ПрочитатьЦСВ ( Команда )
// Вставить содержимое обработчика.
Перем Стр , Сч ;
//Открываем диалог выбора файла для чтения
ВыборФайла = Новый ДиалогВыбораФайла ( РежимДиалогаВыбораФайла . Открытие );
ВыборФайла . МножественныйВыбор = Ложь;
ВыборФайла . Заголовок = НСтр ( «ru = ‘Выбор файла’» );
ВыборФайла . Фильтр = НСтр ( «ru = ‘Все файлы (*.csv)|*.csv’» );
Если ВыборФайла . Выбрать () Тогда
ПолноеИмяФайла = ВыборФайла . ПолноеИмяФайла ;
Иначе Возврат;
Текст = Новый ЧтениеТекста ;
Текст . Открыть ( ПолноеИмяФайла );
Пока Стр <> Неопределено Цикл
Стр = Текст . ПрочитатьСтроку ();
//Создаем массив в который будем добавлять выбранные поля
МассивПолей = Новый Массив ();
//Цикл разбивает строку на подстроки по разделителю «;» и заносит их в массив
Пока СтрДлина ( Стр ) > 0 Цикл
//Находим позицию первого вхождения символа «;»
ПозицияРазделителя = Найти ( Стр , «;» );
//Считываем символы до первого найденного символа «;»
МассивПолей . Добавить ( Лев ( Стр , ПозицияРазделителя — 1 ));
//Удаляем из строки найденную подстроку и повторяем цикл с оставшейся строкой
Стр = Прав ( Стр , СтрДлина ( Стр ) — ПозицияРазделителя );
КонецЦикла;
//Выводим на экран первое прочитанное поле
Попытка Сообщить ( МассивПолей [ 0 ]); Исключение КонецПопытки;
КонецЦикла;
Текст . Закрыть ();
КонецПроцедурыДля типовых конфигураций для «парсинга» строки возможно использование функции общего назначения РазложитьСтрокуВМассивПодстрок(Текст, «.»), в которой можно задать произвольный разделитель..
Подведем итоги:
Для чтения и записи текстового файла в 1С существуют 3 объекта ЧтениеФайла, ЗаписьФайла, ТекстовыйДокумент.
Последний более универсальный, но медлительный, т.к. считывает файл сразу. Если памяти мало, его использование может вызвать ошибку нехватки памяти. Данный объект является основой для интерфейсного объекта «ПолеТекстовогоДокумента»
Возможно использовать данные функции для чтения/записи HTML и log файлов.
Для работы с XML (хотя они тоже текстовые) рекомендуется использовать специализированные объекты ЧтениеXML, ЗаписьXML.
Вся реклама — это хорошие новости.
— Маршалл Маклюэн
Текстовые файлы в 1С: как создать, записать и прочитать
В программах 1С время от времени требуется работать с текстовыми файлами (файлами типа .txt), поскольку часть выгрузок из разных программ может быть представлена, к примеру, в виде текста с разделителями.
Если вы работаете на платформе 8.3, то создание, чтение и запись текстового файла в 1С производится только «на клиенте».
Для того чтобы создать текстовый файл в 1С, нам нужен объект вида Текстовый документ. ФайлTXT= Новый ТекстовыйДокумент;
Затем нужно записать текстовый файл в 1С. В зависимости от платформы команда записи может отличаться. Для 8.2 это будет команда Записать(): ФайлTXT.Записать(Путь);
В 8.3 тоже возможно использовать эту команду, если включить режим модальности и режим использования синхронных вызовов. Но поскольку в 8.3 уходят от модальности, то правильно использовать команду НачатьЗапись() ФайлTXT.НачатьЗапись(новый ОписаниеОповещения, Путь);
В каждой из этих команд также можно установить кодировку и разделители за именем файла. Например, для 8.3: ФайлTXT.НачатьЗапись(новый ОписаниеОповещения, Путь, КодировкаТекста.UTF8, Символы.ПС);
Если речь о 8.2: ФайлTXT.Записать(Путь,КодировкаТекста.UTF8,Символы.ПС);
Заполнять текстовый файл в 1С можно с помощью команды УстановитьТекст(«Текст»): ФайлTXT.УстановитьТекст(«Печеньки»);
Или построчно, с помощью команды ДобавитьСтроку(«Текст»): ФайлTXT.ДобавитьСтроку(«Нужно больше печенек»);
Строки в текстовый файл в 1С можно добавлять, удалять, вставлять, заменять, считать и получать. Пример всех команд: ФайлTXT.ДобавитьСтроку(«Нужно больше печенек»);
ФайлTXT.ДобавитьСтроку(«Печенек все еще недостаточно!»);
ФайлTXT.ЗаменитьСтроку(3,»Ну ладно, печенек достаточно»);
ФайлTXT.ВставитьСтроку(4,»И вообще, надоели мне печеньки!»);
ФайлTXT.УдалитьСтроку(2);
ФайлTXT.КоличествоСтрок();
ФайлTXT.ПолучитьСтроку(3);
Сам файл можно очистить: ФайлTXT.Очистить();
Теперь собственно чтение уже созданного файла. Его мы также осуществляем в двух вариантах. Для 8.2 и 8.3 с использованием режима модальности и режима использования синхронных вызовов это команда Прочитать(): ФайлTXT.Прочитать(Путь);
А для 8.3 без использования режима модальности это команда НачатьЧтение() ФайлTXT.НачатьЧтение(новый ОписаниеОповещения,Путь);
Прочитать текстовый файл в 1С также можно с указанием кодировки и разделителей: ФайлTXT.Прочитать(Путь,КодировкаТекста.UTF8, Символы.ПС);
ФайлTXT.НачатьЧтение(новый ОписаниеОповещения,Путь, КодировкаТекста.UTF8, Символы.ПС);
Из текстового файла в 1С 8 можно получить текст с помощью соответствующей команды: ФайлTXT.ПолучитьТекст();
И содержимое текстового файла в 1С можно просто показать, как макет: ФайлTXT.Показать(«Наш файл»,Путь);
Также можно отдельно запустить файл с помощью команды ЗапуститьПриложение (работает только в толстом клиенте или на 8.2): ЗапуститьПриложение(Путь);
А вот скриншоты работающей программы с большей частью используемых команд

Специалист компании ООО «Кодерлайн» Евгения Скунцева.
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) —> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) —>
Вас могут заинтересовать следующие вебинары:
1С: Конвертация данных [1] => Конвертация данных [2] => Программирование в 1С [3] => Как сделать в 1С [4] => 1С:Бухгалтерия [5] => Отчеты в 1С [6] => Обмен между базами [7] => Закрытие месяца [8] => 1С:Управление производственным предприятием [9] => 1С: Розница [10] => 1С: CRM [11] => Оценка задач [12] => СКД [13] => РСБУ [14] => Администрирование 1С [15] => Оптимизация [16] => 1С: ERP [17] => Моделирование [18] => Продажи [19] => 1С: Управление торговлей [20] => Бюджетирование [21] => HTTP [22] => Управление проектами [23] => MS SQL Server [24] => МСФО [25] => БУ [26] => Внедрение ERP [27] => com-объекты [28] => 1С: WMS Управление складом [29] => Перенос данных [30] => Торговое оборудование [31] => 1С: Сценарное тестирование [32] => 1С: Колледж [33] => Запросы 1С [34] => LINUX [35] => WEB [36] => Лицензии 1С [37] => 1С:Зарплата и Управление Персоналом [38] => 1С: Документооборот [39] => Excel [40] => ADO [41] => Транспортная логистика [42] => Внедрение [43] => Техническое задание [44] => Отчетность [45] => Ценообразование [46] => 1С:Комплексная автоматизация [47] => Производство [48] => Интеграция 1С [49] => Планирование [50] => Налоги [51] => Отпуск [52] => Полезные обработки [53] => Расширение конфигурации [54] => XML [55] => Word [56] => WEB-сервисы 1С [57] => Лизинг [58] => 1С:Управление нашей фирмой [59] => 1С:Управление корпоративными финансами [60] => 1С: Аренда и управление недвижимостью [61] => Правила обмена [62] => 1С: Платформа [63] => Финансовый учет ) —>
