Быстрый старт · 10 мин
Как открыть текстовый документ в 1С
Как открыть текстовый документ в 1С: через меню Файл, кодом на встроенном языке, чтение и запись TXT-файлов. Способы, ошибки и решения.
Текстовые файлы в 1С используются повсеместно: это выгрузки из банковских клиентов, обменные файлы между системами, логи, макеты печатных форм и просто заметки. В зависимости от задачи открыть такой документ можно двумя принципиально разными способами — через интерфейс программы, как обычный файл, или программно, средствами встроенного языка 1С.
Первый способ подходит бухгалтеру или менеджеру, которому нужно просмотреть содержимое файла, например проверить выгрузку из клиент-банка перед загрузкой. Второй — разработчику или внедренцу, который настраивает автоматический обмен данными: чтение файла построчно, разбор строк, запись результатов.
Ниже разобраны оба подхода с конкретными действиями, примерами кода, типичными ошибками (кодировка, путь к файлу, права доступа) и способами проверки результата.
Как открыть текстовый файл через интерфейс 1С
Самый простой сценарий — открыть TXT-файл прямо из окна программы. В большинстве конфигураций (Бухгалтерия, Управление торговлей, Зарплата и управление персоналом) доступно стандартное меню «Файл» в левом верхнем углу главного окна. Выберите пункт «Файл — Открыть», в диалоге укажите тип файла «Текстовые документы (*.txt)» либо переключите фильтр на «Все файлы», найдите нужный файл и подтвердите открытие.
Файл откроется во встроенном редакторе текстовых документов. Это полноценный просмотрщик с возможностью редактирования: можно изменить содержимое и сохранить его через «Файл — Сохранить» или «Сохранить как». Учтите, что объёмные файлы (сотни мегабайт) могут открываться медленно — встроенный редактор не рассчитан на большие объёмы.
Если файл открылся, но вместо русских букв отображаются «кракозябры» — проблема в кодировке. Текстовый редактор 1С пытается определить кодировку автоматически, но не всегда угадывает. О способах справиться с этим рассказано в разделе про кодировки ниже.
- 1Откройте меню «Файл» в главном окне 1С.
- 2Выберите пункт «Открыть» (Ctrl+O).
- 3В диалоге выберите тип «Текстовые документы» или «Все файлы».
- 4Укажите файл и нажмите «Открыть».
- 5Проверьте, что текст отображается без искажений; при «кракозябрах» разберитесь с кодировкой.
Открытие текстового документа в конфигураторе
Разработчики чаще работают с текстовыми документами через конфигуратор. Здесь текстовый документ — это отдельный объект, который можно создать командой «Файл — Новый — Текстовый документ». Такой документ используется для хранения макетов, шаблонов, произвольных текстов, которые потом программно считываются из общих макетов конфигурации.
Чтобы открыть существующий файл с диска, действуйте аналогично: «Файл — Открыть», выбор файла. В конфигураторе редактор текстов поддерживает подсветку синтаксиса встроенного языка, поэтому удобно открывать и файлы модулей, выгруженные в текстовый вид, и файлы обмена.
Отдельный случай — текстовый макет внутри конфигурации. Он открывается не с диска, а из дерева конфигурации: ветка «Общие — Макеты», двойной щелчок по макету типа «Текстовый документ». Такие макеты удобны для хранения шаблонов, которые не должны меняться пользователем.
Программное открытие и чтение файла
Для автоматизации обмена данными файл открывается кодом. Основной инструмент — объект «ЧтениеТекста», который читает файл построчно или целиком, либо «ТекстовыйДокумент», загружающий файл в память полностью. Первый вариант предпочтителен для больших файлов, второй — для небольших, когда нужен произвольный доступ к строкам.
ЧтениеТекста = Новый ЧтениеТекста("C:\Обмен\vygruzka.txt", КодировкаТекста.UTF8);
Строка = ЧтениеТекста.ПрочитатьСтроку();
Пока Строка <> Неопределено Цикл
// обработка строки
Строка = ЧтениеТекста.ПрочитатьСтроку();
КонецЦикла;
ЧтениеТекста.Закрыть();Альтернатива — объект ТекстовыйДокумент с методом «Прочитать»:
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать("C:\Обмен\vygruzka.txt", КодировкаТекста.UTF8);
Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл
Строка = Текст.ПолучитьСтроку(НомерСтроки);
КонецЦикла;Перед чтением полезно проверить существование файла, иначе код завершится ошибкой. Для этого служит объект «Файл» с методом «Существует». Также помните: в клиент-серверном режиме код на сервере видит файловую систему сервера, а не компьютера пользователя. Путь «C:\Обмен\...» будет искаться на сервере — это одна из самых частых причин «не открывается файл».
Запись и сохранение текстового документа
Обратная задача — создать текстовый файл из 1С — решается симметрично. Объект «ЗаписьТекста» пишет построчно, а ТекстовыйДокумент сохраняется методом «Записать» с указанием пути и кодировки. В диалоговых методах можно дать пользователю выбрать путь сохранения через «ДиалогВыбораФайла».
При записи важно явно указывать кодировку, особенно если файл заберёт сторонняя система: банковские выгрузки часто требуют ANSI (Windows-1251), а современные API — UTF-8. Если кодировку не указать, платформа использует значение по умолчанию, которое может не совпасть с ожиданиями принимающей стороны.
Кодировки: почему текст открывается «кракозябрами»
Кодировка — это таблица соответствия байтов символам. Один и тот же файл выглядит нормально в UTF-8 и превращается в набор нечитаемых знаков при открытии в Windows-1251, и наоборот. В 1С кодировка задаётся значением перечисления «КодировкаТекста»: UTF8, ANSI, OEM, UTF16 и другие.
Практическое правило: файлы, созданные в старых программах и банковских клиентах под Windows, чаще всего в ANSI (Windows-1251); файлы из Linux-систем, веб-сервисов и современных обменников — в UTF-8. Если при чтении русский текст искажён, попробуйте сменить кодировку и прочитать файл заново — это безопасно, содержимое файла на диске не меняется.
Быстрый способ определить кодировку без кода — открыть файл в редакторе Notepad++: кодировка отображается в строке состояния. Зная её, укажите соответствующее значение в параметрах чтения в 1С.
Как выбрать кодировку
Типичные ошибки и их устранение
Большинство проблем при открытии текстовых файлов в 1С сводится к нескольким повторяющимся ситуациям. Разбор каждой экономит время на диагностике.
Отдельно стоит сказать про файлы, открытые другой программой. Если текстовый файл занят, например, открыт в Excel с монопольным доступом, 1С может не смочь его прочитать или записать. Закройте файл в стороннем приложении и повторите операцию.
Проверка результата и выбор подходящего способа
После открытия или чтения файла убедитесь, что всё прошло корректно: текст читаем, количество строк соответствует ожиданию, данные загрузились без пропусков. Для программного чтения полезно вывести первые несколько строк в сообщение или журнал — это сразу покажет и проблему с кодировкой, и неверную структуру файла.
Как проверить результат
Русский текст читаем, структура строк сохранена
Кракозябры, квадраты вместо символов — неверная кодировка
Совпадает с числом строк в исходном файле
Строк меньше — возможен обрыв чтения или неверный разделитель
Файл можно открыть и изменить в другой программе
Файл заблокирован — объект чтения/записи не закрыт
Выбор способа зависит от задачи. Разовый просмотр — интерфейсное меню «Файл — Открыть». Регулярный обмен — программное чтение с проверками и обработкой ошибок. Хранение неизменяемых шаблонов — текстовый макет в конфигурации.
Сравнение способов
Подходит для разового просмотра и ручного редактирования. Не требует кода, но не автоматизируется.
Оптимален для больших файлов и построчной обработки. Требует кода и явного закрытия.
Удобен для небольших файлов, когда нужен доступ к произвольной строке. Загружает файл целиком в память.
Для шаблонов, которые не должен менять пользователь. Не подходит для файлов, приходящих извне.
Что важно запомнить
Для ручного просмотра используйте «Файл — Открыть», для автоматизации — ЧтениеТекста или ТекстовыйДокумент с явным указанием кодировки. Проверяйте существование файла, закрывайте объекты чтения/записи и помните, что в клиент-серверном режиме пути разрешаются на стороне сервера.
Частые вопросы
Почему 1С не видит файл, хотя он точно лежит в указанной папке?
Чаще всего код выполняется на сервере, а путь указывает на диск вашего компьютера. Проверьте, где исполняется код (директива &НаСервере), и либо положите файл в доступный серверу каталог, либо передавайте его с клиента через временное хранилище. Также проверьте права учётной записи сервера 1С на папку.
Как открыть CSV-файл в 1С?
CSV — это обычный текстовый файл с разделителями. Откройте его тем же ЧтениеТекста, читайте построчно и разбивайте каждую строку функцией СтрРазделить по символу-разделителю (точка с запятой или запятая). Учтите, что Excel часто сохраняет CSV в кодировке ANSI.
Можно ли открыть текстовый файл в тонком клиенте без сохранения на диск?
Да, через механизм «НачатьПомещениеФайла» или диалог выбора файла содержимое передаётся на сервер в виде двоичных данных или строки, после чего его можно обработать без постоянного хранения на диске. Файл при этом временно размещается во временном хранилище.
Что делать, если файл очень большой и 1С «зависает» при открытии?
Не используйте ТекстовыйДокумент — он загружает файл целиком в память. Читайте файл построчно через ЧтениеТекста и обрабатывайте данные порциями. Для интерфейсного просмотра больших файлов используйте внешние редакторы, рассчитанные на большие объёмы.
Как узнать, в какой кодировке записан файл, не открывая его в 1С?
Откройте файл в Notepad++ — кодировка показана в правой части строки состояния. Затем укажите соответствующее значение КодировкаТекста при чтении в 1С. Если редактора нет, переберите наиболее вероятные варианты: UTF-8 и ANSI покрывают подавляющее большинство случаев.
Можно ли открыть текстовый документ из макета конфигурации программно?
Да. Используйте ПолучитьОбщийМакет("ИмяМакета") — для макета типа «Текстовый документ» метод вернёт объект ТекстовыйДокумент, из которого можно читать строки или получить текст целиком методом ПолучитьТекст().