ЗаписьТекста.ЗаписатьСтроку

Методы · WriteLine

Записывает строку текста в файл. В конце строки записывается разделитель.

Синтаксис

ЗаписатьСтроку(<Строка>, <Разделитель>)

Примеры платформы

Текст.ЗаписатьСтроку("Добро пожаловать!");
Полное описание, параметры и ограничения

ЗаписьТекста.ЗаписатьСтроку (TextWriter.WriteLine)

ЗаписьТекста (TextWriter)

ЗаписатьСтроку (WriteLine)

Доступен, начиная с версии 8.0.

Синтаксис:
ЗаписатьСтроку(<Строка>, <Разделитель>)
Параметры:

<Строка> (обязательный)
Тип: Строка.
Записываемая строка. После записи строки в файл помещается разделитель строк.

<Разделитель> (необязательный)
Тип: Строка.
Разделитель строк. Если не указан, то совпадает с указанным при открытии файла.
Значение по умолчанию: ПС.
Описание:

Записывает строку текста в файл. В конце строки записывается разделитель.

Доступность:

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Пример:

Текст.ЗаписатьСтроку("Добро пожаловать!");

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Сохранить архив учебного отчёта с собственным маленьким файлом

Создаём новый временный текстовый файл с Книгой и количеством 3, прикладываем его к отчёту и сохраняем интерактивно в другой новый временный файл.

Где и как запускать

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

Подготовка

  1. Используйте собственную пустую учебную базу УчебнаяКонфигурацияСинтаксиса и отдельного учебного пользователя. Создайте управляемую обработку с командой ВыполнитьПример. Полный код каждого урока вставляйте в отдельную копию модуля формы.

  2. Запускайте в тонком клиенте Windows или поддерживаемом толстом клиенте. Здесь не пример мобильного сервера: методы записи/отправки отчёта по справке клиентские.

  3. Создаётся только контролируемое исключение с учебным сообщением. Не провоцируйте аварийное завершение 1С и не подменяйте его реальной рабочей ошибкой, содержащей персональные данные.

  4. Отчёт автоматически использует настройки пользователя. До опыта вручную настройте в собственной базе запрет включения имени пользователя, сведений базы, подробного текста, системной информации и снимков. Просматривайте интерактивный отчёт перед сохранением/отправкой; сам конструктор не является анонимизацией.

  5. Этот урок реально создаёт два собственных временных файла при ручном запуске в 1С. Каталог определяется клиентом; не заменяйте пути файлом рабочей базы, выгрузкой или документами сотрудников.

  6. В интерактивном окне проверьте состав и подтвердите только собственный учебный отчёт. Содержимое архива может зависеть от политики: после сохранения откройте архив вручную и проверьте учебное вложение. Метод не гарантирует фиксированные имена файлов внутри архива.

&НаКлиенте
Процедура ВыполнитьПример(Команда)
    ПутьТекста = ПолучитьИмяВременногоФайла("txt");
    ТекстовыйФайл = Новый Файл(ПутьТекста);
    Если ТекстовыйФайл.Существует() Тогда
        ВызватьИсключение "Временный путь уже занят; существующий файл не перезаписываем";
    КонецЕсли;
    Запись = Новый ЗаписьТекста(ПутьТекста, КодировкаТекста.UTF8);
    Попытка
        Запись.ЗаписатьСтроку("Учебная книга;Количество=3;Ключ=guide-book");
    Исключение
        Запись.Закрыть();
        ВызватьИсключение;
    КонецПопытки;
    Запись.Закрыть();
    Отчет = СоздатьСобственныйУчебныйОтчет();
    Отчет.Описание = "Только собственный учебный текстовый файл; не рабочие документы";
    Если Отчет.ДополнительныеФайлы.Количество() <> 0 Тогда
        ВызватьИсключение "Есть неожиданные вложения; архив не сохраняем";
    КонецЕсли;
    Отчет.ДополнительныеФайлы.Добавить(ПутьТекста);
    Сообщить(Отчет.ДополнительныеФайлы.Количество() = 1);
    ПутьАрхива = ПолучитьИмяВременногоФайла("zip");
    Архив = Новый Файл(ПутьАрхива);
    Если Архив.Существует() Тогда
        ВызватьИсключение "Путь архива уже занят; существующий файл не перезаписываем";
    КонецЕсли;
    Отчет.Записать(ПутьАрхива, Истина);
    Если Архив.Существует() Тогда
        Сообщить("Архив создан: " + ПутьАрхива);
        Сообщить("Размер архива в байтах: " + Строка(Архив.Размер()));
    Иначе
        Сообщить("По заданному пути архив не создан; возможны отмена или другой результат интерактивной формы");
    КонецЕсли;
    Сообщить("Собственное вложение сохранено здесь: " + ПутьТекста);
КонецПроцедуры

&НаКлиенте
Функция СоздатьСобственныйУчебныйОтчет()
    Попытка
        ВызватьИсключение "Учебная ошибка проверки книги guide-book";
    Исключение
        Информация = ИнформацияОбОшибке();
        Возврат Новый ОтчетОбОшибке(Информация);
    КонецПопытки;
КонецФункции

Разбор по шагам

  1. ПолучитьИмяВременногоФайла даёт новый путь, затем проверяем отсутствие существующего файла. Эта проверка не является защитой от конкурентного захвата пути; упражнение выполняется одним пользователем в собственной базе.

  2. ЗаписьТекста пишет ровно одну учебную строку UTF-8. Закрытие в обоих исходах завершает работу с текстовым файлом.

  3. ДополнительныеФайлы только для чтения как свойство, но возвращает изменяемый Массив. Добавляем в него путь, не новый массив и не содержимое рабочего файла.

  4. Записать(ПутьАрхива, Истина) показывает интерактивную форму. Отмена не выдаётся за успешное сохранение: после возврата проверяем наличие файла.

  5. Архив, вложение и дополнительные категории данных проверяйте вручную. Размер архива не равен длине JSON или размеру единственного вложения.

  6. Пример не удаляет файлы автоматически, чтобы их можно было проверить. После опыта удалите вручную только эти два собственных временных файла по напечатанным путям.

Как проверить результат

  1. Один собственный путь в ДополнительныеФайлы; перед обоими записями существующие файлы не найдены.

  2. После подтверждения откройте созданный архив и проверьте собственную строку Книга/Количество=3. При отмене код не сообщает фиктивный размер несуществующего архива.

Ожидаемый результат

Подготовлен полный пример вложения и интерактивного сохранения архива без перезаписи рабочего файла.

На что обратить внимание

  1. Добавление произвольного пути может раскрыть содержимое этого файла. Прикладывайте только созданный здесь учебный текст.

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

  3. Временный каталог не означает автоматическое немедленное удаление: завершите уборку только собственных файлов вручную.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Создать текстовый журнал, дописать строку и прочитать его

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

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используйте учебную файловую базу под Windows. Служебная учётная запись 1С должна иметь доступ к своему временному каталогу.

  2. Пример создаёт только уникальные учебные файлы через ПолучитьИмяВременногоФайла. Не подставляйте пути к рабочим документам.

  3. Все текстовые файлы читаются с явно указанной кодировкой UTF-8. Пустая строка не означает конец файла.


ИмяФайла = ПолучитьИмяВременногоФайла("txt");
Запись = Неопределено;
Чтение = Неопределено;
Попытка
    Запись = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
    Запись.ЗаписатьСтроку("Начало учебного обмена");
    Запись.ЗаписатьСтроку("");
    Запись.Записать("Товар A-01: 3");
    Запись.Закрыть();
    Запись = Неопределено;
    Запись = Новый ЗаписьТекста;
    Запись.Открыть(ИмяФайла, КодировкаТекста.UTF8, Символы.ПС, Истина);
    Запись.ЗаписатьСтроку("");
    Запись.ЗаписатьСтроку("Обмен завершён");
    Запись.Закрыть();
    Запись = Неопределено;
    Чтение = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8);
    Номер = 0;
    СтрокаЖурнала = Чтение.ПрочитатьСтроку();
    Пока СтрокаЖурнала <> Неопределено Цикл
        Номер = Номер + 1;
        Сообщить(СтрШаблон("%1: [%2]", Номер, СтрокаЖурнала));
        СтрокаЖурнала = Чтение.ПрочитатьСтроку();
    КонецЦикла;
    Чтение.Закрыть();
    Чтение = Неопределено;
    УдалитьФайлы(ИмяФайла);
Исключение
    Если Запись <> Неопределено Тогда
        Запись.Закрыть();
    КонецЕсли;
    Если Чтение <> Неопределено Тогда
        Чтение.Закрыть();
    КонецЕсли;
    УчебныйФайл = Новый Файл(ИмяФайла);
    Если УчебныйФайл.Существует() Тогда
        УдалитьФайлы(ИмяФайла);
    КонецЕсли;
    ВызватьИсключение;
КонецПопытки;

Разбор по шагам

  1. ЗаписатьСтроку добавляет перевод строки; Записать оставляет курсор сразу после текста товара.

  2. Закрываем первую запись. Открыть с четвёртым параметром Истина сохраняет прежнее содержимое и дописывает в конец.

  3. Перед строкой завершения добавляем перевод строки, чтобы она не склеилась со строкой товара.

  4. Читаем до Неопределено: пустую строку выводим как [], а не считаем концом файла. Закрываем чтение и удаляем только свой файл.

Как проверить результат

  1. Первые четыре строки: [Начало учебного обмена], [], [Товар A-01: 3], [Обмен завершён]. Финальный перевод строки может давать дополнительную пустую строку; проверяйте поведение своей платформы.

  2. Замените Истина на Ложь в Открыть: исходные строки будут затёрты. Делайте это только в данном временном файле.

  3. Уберите ЗаписатьСтроку("") перед завершением: тексты товара и завершения склеятся в одну строку.

Ожидаемый результат

Учебный журнал прочитан по строкам, созданный временный файл удалён.

На что обратить внимание

  1. Не держите файл открытым для записи, когда пытаетесь открыть его для чтения.

  2. Это журнал текста, а не универсальный CSV-парсер: поля с кавычками и переводами строк требуют отдельного формата.

  3. В реальном приложении ошибка очистки не должна скрывать исходную ошибку; здесь демонстрируется простой учебный вариант.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.