ТекстовыйДокумент.Записать

Методы · Write

Записывает текстовый документ в файл с указанным именем.

Синтаксис

Записать(<ИмяФайла>, <ТипФайла>, <РазделительСтрок>)
Записать(<Поток>, <ТипФайла>, <РазделительСтрок>, <ЗаписатьBOM>)

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

ТекстДок.Записать("price.txt");
Полное описание, параметры и ограничения

ТекстовыйДокумент.Записать (TextDocument.Write)

ТекстовыйДокумент (TextDocument)

Записать (Write)

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

Вариант синтаксиса: В файл

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

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

<ТипФайла> (необязательный)
Тип: КодировкаТекста, Строка.
Тип кодировки файла. Тип файла может быть задан как в виде значения перечисления КодировкаТекста, так и в виде строки с указанием названия кодировки.
Поддерживаемые названия кодировок:
UTF-8

UTF-16

UTF-16BE

UTF-16LE

ISO-8859-1

US-ASCII

gb18030

iso-8859-2

iso-8859-3

iso-8859-4

iso-8859-5

iso-8859-6

iso-8859-7

iso-8859-8

iso-8859-9

iso-8859-13

iso-8859-15

Shift_JIS

EUC-JP

Big5

Big5-HKSCS

GBK

GB2312

GB_2312-80

EUC-KR

KSC_5601

windows-949

windows-874

cp866

KOI8-R

KOI8-U

windows-1250

windows-1251

windows-1252

windows-1253

windows-1254

windows-1255

windows-1256

windows-1257

windows-1258

macintosh

x-mac-cyrillic

ISO-2022-JP

ISO-2022-KR

ISO-2022-CN

ISO-2022-CN-EXT

HZ-GB-2312

Значение по умолчанию: UTF8.

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

ПС;

ВК + ПС (значение по умолчанию - может не указываться).
При использовании других строк в качестве разделителей будет вызвано исключение.
Значение по умолчанию: ВК + ПС.
Описание варианта метода:
Запись текстового документа в файл.
Вариант синтаксиса: В поток

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

<Поток> (обязательный)
Тип: Поток, ПотокВПамяти, ФайловыйПоток.
Поток для записи документа.

<ТипФайла> (необязательный)
Тип: КодировкаТекста, Строка.
Тип кодировки текста. Тип кодировки может быть задан как в виде значения перечисления КодировкаТекста, так и в виде строки с указанием названия кодировки.
Поддерживаемые названия кодировок:
UTF-8

UTF-16

UTF-16BE

UTF-16LE

ISO-8859-1

US-ASCII

gb18030

iso-8859-2

iso-8859-3

iso-8859-4

iso-8859-5

iso-8859-6

iso-8859-7

iso-8859-8

iso-8859-9

iso-8859-13

iso-8859-15

Shift_JIS

EUC-JP

Big5

Big5-HKSCS

GBK

GB2312

GB_2312-80

EUC-KR

KSC_5601

windows-949

windows-874

cp866

KOI8-R

KOI8-U

windows-1250

windows-1251

windows-1252

windows-1253

windows-1254

windows-1255

windows-1256

windows-1257

windows-1258

macintosh

x-mac-cyrillic

ISO-2022-JP

ISO-2022-KR

ISO-2022-CN

ISO-2022-CN-EXT

HZ-GB-2312

Значение по умолчанию: UTF8.

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

ПС;

ВК + ПС (значение по умолчанию - может не указываться).
При использовании других строк в качестве разделителей будет вызвано исключение.
Значение по умолчанию: ВК + ПС.

<ЗаписатьBOM> (необязательный)
Тип: Булево.
Определяет, будет ли добавлена метка порядка байт (BOM) при сохранении документа.
Значение по умолчанию: Ложь.
Описание варианта метода:
Запись текстового документа в поток.
Описание:

Записывает текстовый документ в файл с указанным именем.

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

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Примечание:
При работе на веб-клиенте вызов метода выполняет обращение к серверу.
Пример:

ТекстДок.Записать("price.txt");

См. также:
ТекстовыйДокумент, метод ЗаписатьАсинх
ТекстовыйДокумент, метод НачатьЗапись

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

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

Описание изменено в версии 8.3.18.

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

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

Отличить регистр букв от изменения учебных данных

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

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

Полный модуль своей ОБЫЧНОЙ формы внешней обработки. Только настольный толстый клиент Windows.

Подготовка

  1. В своей отдельной конфигурации УчебнаяКонфигурацияСинтаксиса создайте новую внешнюю обработку с ОБЫЧНОЙ формой. Эти уроки предназначены толстому клиенту Windows, не тонкому, веб-клиенту или серверу.

  2. Добавьте кнопку ПроверитьСравнение, её событию Нажатие назначьте одноимённую процедуру. Весь приведённый код — полный модуль обычной формы, без директив управляемого клиент-серверного модуля.

  3. Каждый запуск создаёт два новых собственных временных txt-файла на компьютере толстого клиента. Их точные пути выводятся до записи. В коде нет выбора, перезаписи или сравнения рабочих файлов.

  4. Учебные данные — вымышленная Книга и суммы. Не вставляйте секреты, пароли, коммерческие данные или пути рабочих конфигураций.

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

  6. Модальный опыт при запрете модальности отказывает до создания файлов. Для нового кода предпочтителен первый немодальный урок.

Процедура ПроверитьСравнение(Кнопка)
    ПервыйТекст = "Книга";
    ВторойТекст = "книга";
    ПервыйРазделитель = Символы.ВК + Символы.ПС;
    ВторойРазделитель = Символы.ВК + Символы.ПС;
    ПервыйПуть = ПолучитьИмяВременногоФайла("txt");
    ВторойПуть = ПолучитьИмяВременногоФайла("txt");
    ПервыйФайл = Новый Файл(ПервыйПуть);
    ВторойФайл = Новый Файл(ВторойПуть);
    Если ПервыйФайл.Существует() ИЛИ ВторойФайл.Существует() ИЛИ ПервыйПуть = ВторойПуть Тогда
        ВызватьИсключение "Нужны два разных новых собственных временных пути";
    КонецЕсли;
    Сообщить("Свой первый файл: " + ПервыйПуть);
    Сообщить("Свой второй файл: " + ВторойПуть);
    ПервыйДокумент = Новый ТекстовыйДокумент;
    ПервыйДокумент.УстановитьТекст(ПервыйТекст);
    ВторойДокумент = Новый ТекстовыйДокумент;
    ВторойДокумент.УстановитьТекст(ВторойТекст);
    ПервыйДокумент.Записать(ПервыйПуть, КодировкаТекста.UTF8, ПервыйРазделитель);
    ВторойДокумент.Записать(ВторойПуть, КодировкаТекста.UTF8, ВторойРазделитель);
    Сравнение = Новый СравнениеФайлов;
    Сравнение.ПервыйФайл = ПервыйПуть;
    Сравнение.ВторойФайл = ВторойПуть;
    Сравнение.СпособСравнения = СпособСравненияФайлов.ТекстовыйДокумент;
    Сравнение.ИгнорироватьПустоеПространство = Ложь;
    Сравнение.УчитыватьРегистр = Истина;
    Сравнение.УчитыватьРазделителиСтрок = Ложь;
    Строго = Сравнение.Сравнить();
    Сообщить(Строго = Ложь);
    Сравнение.УчитыватьРегистр = Ложь;
    БезРегистра = Сравнение.Сравнить();
    Сообщить(БезРегистра = Истина);
    Сообщить(Не Сравнение.ИгнорироватьПустоеПространство);
    Сообщить(Сравнение.СпособСравнения = СпособСравненияФайлов.ТекстовыйДокумент);
КонецПроцедуры

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

  1. Записать собственные слова Книга и книга одинаковой кодировкой и разделителем.

  2. При УчитыватьРегистр=Истина результат Ложь: первая буква отличается регистром.

  3. Изменить только правило сравнения на Ложь и сравнить те же файлы повторно: результат Истина.

  4. ИгнорироватьПустоеПространство остаётся Ложь. Это отдельное правило, его не следует путать с регистром.

  5. Ни один текст не заменяется нижним регистром и не перезаписывается после создания.

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

  1. Четыре сообщения Истина: строгое сравнение Ложь, без учёта регистра Истина, правило пробелов не менялось, способ текстовый.

  2. Файлы остаются с исходными Книга и книга, не превращаются в одинаковые байты.

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

Демонстрация изменения правил сравнения без изменения самих текстов.

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

  1. Текстовое равенство по выбранным правилам не означает байтового равенства.

  2. УчитыватьРегистр и ИгнорироватьПустоеПространство игнорируются в нетекстовых режимах.

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

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

Найти изменение количества и суммы в своих файлах и показать различия

Сравнить возвращает Истина, если файлы равны, и Ложь при различиях. Немодальное окно открывается только для действительно различных учебных данных.

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

Полный модуль своей ОБЫЧНОЙ формы внешней обработки. Только настольный толстый клиент Windows.

Подготовка

  1. В своей отдельной конфигурации УчебнаяКонфигурацияСинтаксиса создайте новую внешнюю обработку с ОБЫЧНОЙ формой. Эти уроки предназначены толстому клиенту Windows, не тонкому, веб-клиенту или серверу.

  2. Добавьте кнопку ПроверитьСравнение, её событию Нажатие назначьте одноимённую процедуру. Весь приведённый код — полный модуль обычной формы, без директив управляемого клиент-серверного модуля.

  3. Каждый запуск создаёт два новых собственных временных txt-файла на компьютере толстого клиента. Их точные пути выводятся до записи. В коде нет выбора, перезаписи или сравнения рабочих файлов.

  4. Учебные данные — вымышленная Книга и суммы. Не вставляйте секреты, пароли, коммерческие данные или пути рабочих конфигураций.

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

  6. Модальный опыт при запрете модальности отказывает до создания файлов. Для нового кода предпочтителен первый немодальный урок.

Процедура ПроверитьСравнение(Кнопка)
    ПервыйТекст = "Книга;3;250;750";
    ВторойТекст = "Книга;4;250;1000";
    ПервыйРазделитель = Символы.ВК + Символы.ПС;
    ВторойРазделитель = Символы.ВК + Символы.ПС;
    ПервыйПуть = ПолучитьИмяВременногоФайла("txt");
    ВторойПуть = ПолучитьИмяВременногоФайла("txt");
    ПервыйФайл = Новый Файл(ПервыйПуть);
    ВторойФайл = Новый Файл(ВторойПуть);
    Если ПервыйФайл.Существует() ИЛИ ВторойФайл.Существует() ИЛИ ПервыйПуть = ВторойПуть Тогда
        ВызватьИсключение "Нужны два разных новых собственных временных пути";
    КонецЕсли;
    Сообщить("Свой первый файл: " + ПервыйПуть);
    Сообщить("Свой второй файл: " + ВторойПуть);
    ПервыйДокумент = Новый ТекстовыйДокумент;
    ПервыйДокумент.УстановитьТекст(ПервыйТекст);
    ВторойДокумент = Новый ТекстовыйДокумент;
    ВторойДокумент.УстановитьТекст(ВторойТекст);
    ПервыйДокумент.Записать(ПервыйПуть, КодировкаТекста.UTF8, ПервыйРазделитель);
    ВторойДокумент.Записать(ВторойПуть, КодировкаТекста.UTF8, ВторойРазделитель);
    Сравнение = Новый СравнениеФайлов;
    Сравнение.ПервыйФайл = ПервыйПуть;
    Сравнение.ВторойФайл = ВторойПуть;
    Сравнение.СпособСравнения = СпособСравненияФайлов.ТекстовыйДокумент;
    Сравнение.ИгнорироватьПустоеПространство = Ложь;
    Сравнение.УчитыватьРегистр = Истина;
    Сравнение.УчитыватьРазделителиСтрок = Ложь;
    Равны = Сравнение.Сравнить();
    Сообщить(Равны = Ложь);
    Сообщить(Сравнение.ПервыйФайл = ПервыйПуть И Сравнение.ВторойФайл = ВторойПуть);
    Если НЕ Равны Тогда
        Сравнение.ПоказатьРазличия();
    КонецЕсли;
КонецПроцедуры

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

  1. Получить два собственных временных имени, проверить отсутствие обоих файлов до первой записи, вывести пути.

  2. Записать UTF8 с одинаковыми разделителями строк: 3/750 в первом и 4/1000 во втором.

  3. Установить текстовый способ, явные правила пробелов, регистра и разделителей.

  4. Сравнить даёт Ложь, потому что данные действительно различаются. Ветка НЕ Равны открывает немодальное окно различий.

  5. После просмотра закрыть только своё окно и вручную убрать два напечатанных файла.

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

  1. Две булевы проверки Истина: результат сравнения Ложь, пути принадлежат созданным файлам.

  2. В окне видна разница Книга;3;250;750 и Книга;4;250;1000. Код ничего не исправляет и не объединяет автоматически.

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

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

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

  1. Истина из Сравнить означает равенство, не наличие отличий.

  2. ПоказатьРазличия открывает окно, не возвращает изменённый документ.

  3. Не удаляйте файлы немедленно после открытия немодального окна: они оставлены на время просмотра.

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

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

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

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

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