Считывает текстовый документ из файла.
Синтаксис
Прочитать(<ИмяФайла>, <ТипФайла>, <РазделительСтрок>)Прочитать(<Поток>, <ТипФайла>, <РазделительСтрок>)Примеры платформы
ТекстДок.Прочитать("catalog.txt");
ТекстДок.Прочитать("catalog.txt","cp866");Полное описание, параметры и ограничения
ТекстовыйДокумент.Прочитать (TextDocument.Read)
ТекстовыйДокумент (TextDocument)
Прочитать (Read)
Доступен, начиная с версии 8.0.
Вариант синтаксиса: Из файла
Синтаксис:
Прочитать(<ИмяФайла>, <ТипФайла>, <РазделительСтрок>)
Параметры:
<ИмяФайла> (обязательный)
Тип: Строка.
Имя текстового файла.
<ТипФайла> (необязательный)
Тип: КодировкаТекста, Строка.
Указывается кодировка текста в открываемом файле.
В случае, если параметр не задан, формат текста будет определен автоматически (если он хранится в файле с сигнатурой BOM в начале). Если автоматически определить формат файла не удается, файл будет открыт в кодировке UTF8.
Тип файла может быть задан как в виде значения перечисления КодировкаТекста, так и в виде строки с указанием названия кодировки.
Поддерживаемые названия кодировок:
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
<РазделительСтрок> (необязательный)
Тип: Строка.
Задается строка, являющаяся разделителем строк, из которой при чтении файла будет сформирован символ ПС.
Если строка пустая, то разделители строк при чтении не конвертируются.
Допустимые варианты разделителей строк:
ВК;
ПС;
ВК + ПС (значение по умолчанию - может не указываться).
При использовании других строк в качестве разделителей будет вызвано исключение.
Значение по умолчанию: ВК + ПС.
Описание варианта метода:
Считывает текстовый документ из файла.
Вариант синтаксиса: Из потока
Синтаксис:
Прочитать(<Поток>, <ТипФайла>, <РазделительСтрок>)
Параметры:
<Поток> (обязательный)
Тип: Поток, ПотокВПамяти, ФайловыйПоток.
Поток для чтения.
<ТипФайла> (необязательный)
Тип: КодировкаТекста, Строка.
Указывается кодировка текста в потоке.
В случае, если параметр не задан, формат текста будет определен автоматически (если он хранится в файле с сигнатурой BOM в начале). Если автоматически определить формат файла не удается, файл будет открыт в кодировке UTF8.
Тип файла может быть задан как в виде значения перечисления КодировкаТекста, так и в виде строки с указанием названия кодировки.
Поддерживаемые названия кодировок:
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
<РазделительСтрок> (необязательный)
Тип: Строка.
Задается строка, являющаяся разделителем строк, из которой при чтении потока будет сформирован символ ПС.
Если строка пустая, то разделители строк при чтении не конвертируются.
Допустимые варианты разделителей строк:
ВК;
ПС;
ВК + ПС (значение по умолчанию - может не указываться).
При использовании других строк в качестве разделителей будет вызвано исключение.
Значение по умолчанию: ВК + ПС.
Описание варианта метода:
Считывает текстовый документ из потока.
Описание:
Считывает текстовый документ из файла.
Доступность:
Тонкий клиент, сервер, толстый клиент, внешнее соединение.
Пример:
// вариант 1
ТекстДок.Прочитать("catalog.txt");
// вариант 2
ТекстДок.Прочитать("catalog.txt","cp866");
См. также:
ТекстовыйДокумент, метод НачатьЧтение
ТекстовыйДокумент, метод ПрочитатьАсинх
Использование в версии:
Доступен, начиная с версии 8.0.
Описание изменено в версии 8.3.18.
Методическая информация
Практические примеры
Скопировать свой временный файл и проверить его атрибуты
Создаём тестовый текст, копируем, переименовываем копию и меняем атрибут Только чтение только у неё.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Используйте учебную файловую базу под Windows. Служебная учётная запись 1С должна иметь доступ к своему временному каталогу.
Пример создаёт только уникальные учебные файлы через ПолучитьИмяВременногоФайла. Не подставляйте пути к рабочим документам.
Все текстовые файлы читаются с явно указанной кодировкой UTF-8. Пустая строка не означает конец файла.
Учебный пример рассчитан на файловую систему Windows; атрибуты и точность времени на других ОС могут отличаться.
ИсходныйПуть = ПолучитьИмяВременногоФайла("txt");
ПутьКопии = ПолучитьИмяВременногоФайла("txt");
НовыйПуть = ПолучитьИмяВременногоФайла("txt");
СозданныеПути = Новый Массив;
СозданныеПути.Добавить(ИсходныйПуть);
СозданныеПути.Добавить(ПутьКопии);
СозданныеПути.Добавить(НовыйПуть);
Попытка
Документ = Новый ТекстовыйДокумент;
Документ.УстановитьТекст("Только учебные данные");
Документ.Записать(ИсходныйПуть, КодировкаТекста.UTF8);
КопироватьФайл(ИсходныйПуть, ПутьКопии);
ПереместитьФайл(ПутьКопии, НовыйПуть);
Копия = Новый Файл(НовыйПуть);
Сообщить(Копия.Существует());
Сообщить(Копия.ЭтоФайл());
Сообщить(Копия.ЭтоКаталог());
Сообщить(Копия.ПолноеИмя);
Сообщить(Копия.Путь);
Сообщить(Копия.Размер());
Копия.УстановитьВремяИзменения(Дата(2026, 9, 15, 12, 0, 0));
Сообщить(Формат(Копия.ПолучитьВремяИзменения(), "ДФ=yyyy-MM-dd HH:mm:ss"));
Копия.УстановитьТолькоЧтение(Истина);
Сообщить(Копия.ПолучитьТолькоЧтение());
Копия.УстановитьТолькоЧтение(Ложь);
Прочитанный = Новый ТекстовыйДокумент;
Прочитанный.Прочитать(НовыйПуть, КодировкаТекста.UTF8);
Сообщить(Прочитанный.ПолучитьТекст());
Исключение
Для Каждого Путь Из СозданныеПути Цикл
УчебныйФайл = Новый Файл(Путь);
Если УчебныйФайл.Существует() Тогда
УчебныйФайл.УстановитьТолькоЧтение(Ложь);
УдалитьФайлы(Путь);
КонецЕсли;
КонецЦикла;
ВызватьИсключение;
КонецПопытки;
Для Каждого Путь Из СозданныеПути Цикл
УчебныйФайл = Новый Файл(Путь);
Если УчебныйФайл.Существует() Тогда
УчебныйФайл.УстановитьТолькоЧтение(Ложь);
УдалитьФайлы(Путь);
КонецЕсли;
КонецЦикла;Разбор по шагам
Получаем три уникальных пути: источник, промежуточная копия и переименованный результат.
КопироватьФайл сохраняет источник; ПереместитьФайл переносит именно копию, поэтому промежуточного файла больше нет.
Проверяем тип пути и размер, задаём фиксированное время изменения и включаем Только чтение.
Снимаем атрибут перед очисткой; Прочитать проверяет, что содержимое копии сохранилось. Удаляем только три собственных пути.
Как проверить результат
Существует и ЭтоФайл — Истина, ЭтоКаталог — Ложь; текст копии Только учебные данные.
Время изменения: 2026-09-15 12:00:00 с учётом точности вашей файловой системы; Только чтение после установки — Истина.
Промежуточная копия отсутствует после перемещения. После завершения все три учебных пути отсутствуют.
Ожидаемый результат
Копия создана, переименована, проверена и удалена вместе с собственным источником.
На что обратить внимание
Установка атрибута или даты изменяет файл: используйте исключительно созданную учебную копию.
Копирование или перемещение может перезаписать существующий файл; уникальные пути здесь выбраны именно для предотвращения такой ситуации.
Это не резервное копирование рабочих данных и не гарантия атомарности между дисками.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Асинхронно выбрать два учебных текста и проверить весь набор
Ждать получает реальный результат Обещания: массив имён или Неопределено при отмене. Нельзя считать само Обещание массивом или использовать одиночное ПолноеИмяФайла вместо результата.
Где и как запускать
Полный модуль своей управляемой формы внешней обработки. Настольный тонкий клиент Windows 8.5.1.1343; файловая система именно клиента. Запуск и отображение в 1С не проверены.
Подготовка
Работайте в отдельной учебной базе 8.5.1.1343. Создайте внешнюю обработку УчебныйВыборФайла85 с новой управляемой формой; рабочие документы, настройки и формы не нужны.
Сами создайте на компьютере клиента собственный каталог C:\1CLab\FileDialog85. Не используйте существующий чужой каталог, сетевой диск, символическую ссылку или папку с рабочими файлами.
В этом каталоге самостоятельно создайте book.txt с единственной строкой Книга: 3 и pen.txt со строкой Ручка: 1. Сохраните как UTF-8. Это собственные маленькие учебные тексты, не выгрузка клиентских данных.
Для каждого урока используйте отдельную копию формы. Вставьте полный код на уровне модуля. Создайте указанную команду, назначьте её Действие точно указанной процедуре и перетащите команду на форму как кнопку.
Примеры не выполнялись. При будущем ручном запуске первый и второй уроки могут только прочитать два подготовленных текста; третий только проверяет каталог, четвёртый только выбирает имя. Код не записывает и не удаляет файлы, не вызывает сервер, сеть или печать.
Windows-клиент указан намеренно: правила масок, доступность методов и поведение свойств различаются на веб-клиенте, Linux, macOS и мобильных платформах. Этот модуль не переносится туда без проверки.
Команда формы: ВыбратьДваУчебныхТекста → ВыбратьДваУчебныхТекста. Другие обработчики вручную не создавайте.
&НаКлиенте
Асинх Процедура ВыбратьДваУчебныхТекста(Команда)
Каталог = Новый Файл("C:\1CLab\FileDialog85");
Если Не Каталог.Существует() Тогда
Сообщить("Сначала создайте свой учебный каталог и два текста по инструкции");
Возврат;
КонецЕсли;
Если Не Каталог.ЭтоКаталог() Тогда
Сообщить("Учебный путь должен быть собственным каталогом");
Возврат;
КонецЕсли;
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите собственные book.txt и pen.txt";
Диалог.Каталог = "C:\1CLab\FileDialog85";
Диалог.МножественныйВыбор = Истина;
Диалог.Фильтр = "Учебные тексты (*.txt)|*.txt";
Диалог.ПроверятьСуществованиеФайла = Истина;
Имена = Ждать Диалог.ВыбратьАсинх();
Если Имена = Неопределено Тогда
Сообщить("Множественный выбор отменён; чтение не выполнялось");
Возврат;
КонецЕсли;
Если Имена.Количество() < 1 Или Имена.Количество() > 2 Тогда
Сообщить("Выберите один или два собственных учебных текста");
Возврат;
КонецЕсли;
Для Каждого ИмяФайла Из Имена Цикл
Если ИмяФайла <> "C:\1CLab\FileDialog85\book.txt"
И ИмяФайла <> "C:\1CLab\FileDialog85\pen.txt" Тогда
Сообщить("Есть чужое имя: весь выбранный набор отклонён до чтения");
Возврат;
КонецЕсли;
КонецЦикла;
Сообщить("Собственных выбранных файлов: " + Строка(Имена.Количество()));
Для Каждого ИмяФайла Из Имена Цикл
ПрочитатьСвойТекст(ИмяФайла);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПрочитатьСвойТекст(ИмяФайла)
Если ИмяФайла = "C:\1CLab\FileDialog85\book.txt" Тогда
ОжидаемыйТекст = "Книга: 3";
ИначеЕсли ИмяФайла = "C:\1CLab\FileDialog85\pen.txt" Тогда
ОжидаемыйТекст = "Ручка: 1";
Иначе
Сообщить("Этот урок не читает файлы вне двух собственных учебных текстов");
Возврат;
КонецЕсли;
ФайлНаДиске = Новый Файл(ИмяФайла);
Если Не ФайлНаДиске.Существует() Тогда
Сообщить("Выбранный учебный файл уже отсутствует; восстановите свой образец");
Возврат;
КонецЕсли;
Если ФайлНаДиске.ЭтоКаталог() Тогда
Сообщить("Ожидался свой текстовый файл, а не каталог");
Возврат;
КонецЕсли;
Текст = Новый ТекстовыйДокумент;
Попытка
Текст.Прочитать(ИмяФайла, "UTF-8");
Исключение
Сообщить("Не удалось прочитать собственный образец; проверьте его наличие и права клиента");
Возврат;
КонецПопытки;
СтрокаОбразца = СтрЗаменить(СтрЗаменить(Текст.ПолучитьТекст(), Символы.ВК, ""), Символы.ПС, "");
Сообщить(СтрокаОбразца);
Сообщить(СтрокаОбразца = ОжидаемыйТекст);
КонецПроцедуры
Разбор по шагам
Асинх стоит в объявлении процедуры. Ждать применяется непосредственно к ВыбратьАсинх, а не к случайному массиву.
Отмена проверяется до Количество и перебора. Урок допускает один или два собственных файла, а не требует выдуманного фиксированного результата.
Первый цикл проверяет все имена и не читает содержимое. Если хотя бы одно имя вне двух точных образцов, весь набор отклоняется.
Второй цикл читает допущенные тексты. Порядок выбора не гарантируется, поэтому строки Книга и Ручка могут выводиться в любом порядке.
Ошибка чтения отдельного собственного файла не маскируется: помощник сообщает её. Этот урок не является атомарным импортом или записью набора в базу.
Как проверить результат
Выберите два образца: количество 2 и для каждого своя строка с Истина. Порядок строк произвольный.
Выберите только книгу: количество 1, Книга: 3, Истина. Отмена: только сообщение отмены.
Добавьте в выбор свой третий файл с другим именем: набор отклонён до любых вызовов ПрочитатьСвойТекст.
Ожидаемый результат
Проверяется весь выбранный набор до чтения; результат обещания не спутан с состоянием одиночного диалога.
На что обратить внимание
МножественныйВыбор не используется для Сохранение или ВыборКаталога.
Проверка имён и маска не заменяют проверки содержимого в настоящем импорте.
Настольные пути клиента не являются путями сервера; этот код не загружает файлы на сервер.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.