Home 1C 1с внешние приложения 1С Текстовый файл - Создать, Записать, Читать
1С Текстовый файл - Создать, Записать, Читать PDF Печать E-mail
Автор: А.Волос   

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

- объектом ЗаписьТекста - его конструктор и методы: Записать() и Закрыть(). Этот объект создает новый файл и записывает в него.

- объектом ЧтениеТекста - его конструктор, методы: Прочитать() и Закрыть(). Этот объект читает из файла.

- объектом ДиалогВыбораФайла и его свойствами.

- объектом Файл.

 

 

 

Организуем форму тонкого клиента 1С

Добавляем реквизит в обработку — Имя: Текст, Тип: Строка (неограниченная т.е. длина = 0). Только что добавленный реквизит вытаскиваем на форму.

Чтобы открыть его свойства — нажмите на вытащенном реквизите правой кнопкой мыши. Свойство Вид: Поле текстового документа. (Свойство КнопкаВыбора установите Да.)

Тонкий клиент не добавляет автоматически кнопку. Поэтому нам нужно самостоятельно на форму обработки добавить кнопку Записать. Для этого на закладке Команды добавьте новую команду Записать и нажмите в ее свойствах лупу, чтобы добавить обработчик. Также перетащите добавленную команду на форму (влево).

В модуле у нас также две функции – одна обработчик нажатия кнопки «Записать», который мы добавили. Другая – добавленный нами обработчик события при выборе. Программируем выбор [имени и места записи] файла В Windows есть общепринятый диалог работы с выбором файла. Из 1С есть доступ к управлению этим диалогом. Для этого существует специальный объект «ДиалогВыбораФайла».

Вот пример кода для нашего случая:

Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Заголовок = "Выберите имя файла для сохранения";
Диалог.МножественныйВыбор = Ложь;
Диалог.Фильтр = "Текстовый файл(*.txt)|*.txt";

//Вызов собственно диалога на экран
Если Диалог.Выбрать() Тогда

   //Сюда попадем только если пользователь нажал ОК
   //Сохранение выбранного имени файла (полного имени, значит включая путь к нему)

   ИмяФайла = Диалог.ПолноеИмяФайла;
   Объект.ИмяФайла = ИмяФайла;

КонецЕсли;

Если Вы хотите дать возможность выбирать несколько расширений файлов, например txt и rtf, то нужно написать так:

Диалог.Фильтр = "Документ Microsoft Word (*.txt)|*.txt|"
+ "Документ Microsoft Excell (*.rtf)|*.rtf|";

Программируем запись файла на диск Для записи текстовых файлов в 1С есть объект «ЗаписьТекста». Работа с ним очень простая. Вот пример кода для нашего случая:

Файл = Новый ЗаписьТекста(ИмяФайла);
Файл.ЗаписатьСтроку("Привет!");
Файл.ЗаписатьСтроку("Как дела?");
Файл.Закрыть();

Ниже на странице вы можете скачать готовый пример такой обработки для изучения.

Программа:


&НаКлиенте
Процедура Записать(Команда)
        Файл = Новый ЗаписьТекста(Объект.ИмяФайла);
        Файл.ЗаписатьСтроку(Текст);
        Файл.Закрыть(); 
КонецПроцедуры

&НаКлиенте
Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
        
        Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
        Диалог.Заголовок = "Выберите имя файла для сохранения";
        Диалог.МножественныйВыбор = Ложь;
        Диалог.Фильтр = "Текстовый файл(*.txt)|*.txt";

        //Вызов собственно диалога на экран
        Если Диалог.Выбрать() Тогда

                //Сюда попадем только если пользователь нажал ОК
                //Сохранение выбранного имени файла (полного имени, значит включая путь к нему)
                ИмяФайла = Диалог.ПолноеИмяФайла;
           
                ВыбФайл = Новый Файл(ИмяФайла);
                Если ВыбФайл.Существует() Тогда

                        Объект.ИмяФайла = ИмяФайла; //Отобразим имя файла в поле ввода
                Иначе
                        Режим = РежимДиалогаВопрос.ДаНет;
                        ТекстВОкне = "ru = ""Вы действительно хотите создать новый файл?"";";
                        Ответ = Вопрос(НСтр(ТекстВОкне), Режим, 0);

                        Если Ответ = КодВозвратаДиалога.Нет Тогда
                                Возврат;
                        Иначе   
                                //Создать новый файл для записи  
                                ФайлНов = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI, , Истина); 
                                ФайлНов.Записать(""); 
                                ФайлНов.Закрыть();                      
                                Объект.ИмяФайла = ИмяФайла; //Отобразим имя файла в поле ввода
                        КонецЕсли;
                КонецЕсли;

        КонецЕсли;

КонецПроцедуры


&НаКлиенте
Процедура Прочитать(Команда)
        // Вставить содержимое обработчика.
        Файл = Новый ЧтениеТекста(Объект.ИмяФайла);
        ВесьФайлОднойСтрокой = Файл.Прочитать();
        ЧтениеИзФайла = ВесьФайлОднойСтрокой;
        Файл.Закрыть(); 
КонецПроцедуры

В статье использован материал:
http://howknow1c.ru/programmirovanie-1c/kak-zapisat-v-tekstovyj-fajl-iz-1s.html#more-1406

 

 

Скачать внешнюю обработку: "1С Текстовый файл - Создать, Записать, Читать"

 

Обновлено 23.09.2014 15:38