Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут! (в рабочие часы)

Работа с файлами в 1С 8.3 (8.2)

В 1С 8.3 (8.2) для работы с файлами существует два объекта: Файл и ДиалогВыбораФайла.

Рассмотрим каждый по отдельности.

Объект 1С — файл

Объект Файл служит для управления параметрами файлов.

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

Например, прочитаем параметры некоторого файла, находящегося на диске C:

ПолноеИмяФайла = "C:\Работа с файлами\статья.txt";
ВыбранныйФайл = Новый Файл(ПолноеИмяФайла);
Если ВыбранныйФайл.Существует() Тогда
СтрокаПараметров = "Параметры файла:"+Символы.ПС +
"Полное имя файла: "+ ВыбранныйФайл.ПолноеИмя + Символы.ПС +
"Имя: "+ ВыбранныйФайл.Имя + Символы.ПС +
"Имя без расширения: "+ ВыбранныйФайл.ИмяБезРасширения+Символы.ПС+
"Расширение: "+ ВыбранныйФайл.Расширение+ Символы.ПС+
"Путь без имени: "+ ВыбранныйФайл.Путь+Символы.ПС+
"Размер: "+ ВыбранныйФайл.Размер()+ Символы.ПС+
"Это файл: "+ ВыбранныйФайл.ЭтоФайл()+ Символы.ПС+
"Изменен: "+ ВыбранныйФайл.ПолучитьВремяИзменения()+Символы.ПС+
"Только чтение: "+ ВыбранныйФайл.ПолучитьТолькоЧтение()+Символы.ПС+
"Невидимость: "+ ВыбранныйФайл.ПолучитьНевидимость();
Сообщить(СтрокаПараметров);
Иначе
Предупреждение("Файл не найден!");
КонецЕсли;

В результате мы получим следующую информацию (если файл найден):

Параметры файла:
Полное имя файла: C:\Работа с файлами\статья.txt
Имя: статья.txt
Имя без расширения: статья
Расширение: .txt
Путь без имени: C:\Работа с файлами\
Размер: 899
Это файл: Да
Изменен: 18.05.2015 16:21:28
Только чтение: Нет
Невидимость: Нет

Запись в файл

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Теперь, когда мы выбрали и открыли файл, можно с ним работать, т.е. прочитать его содержимое или записать в него что-нибудь.
Рассмотрим пример:

Если ЗначениеЗаполнено(ПутьКФайлу) Тогда
ТекстовыйДокИзФайла = Новый ТекстовыйДокумент;
ТекстовыйДокИзФайла.Прочитать(ПутьКФайлу);
НашТекстИзФайла = ТекстовыйДокИзФайла.ПолучитьТекст();
Сообщить(НашТекстИзФайла);
КонецЕсли;

Чтение файла в 1С

Часто бывает необходимо прочитать текст файла построчно, например, для анализа каждой строки. Для этого используем объект ЧтениеТекста.

Пример:

ПрочитанныйТекст = Новый ЧтениеТекста(ПутьКФайлу);
СтрокаТекстовогоФайла = ПрочитанныйТекст.ПрочитатьСтроку();
Сообщить(СтрокаТекстовогоФайла);
Пока СтрокаТекстовогоФайла <> Неопределено Цикл
СтрокаТекстовогоФайла = ПрочитанныйТекст.ПрочитатьСтроку();
Сообщить(СтрокаТекстовогоФайла);
КонецЦикла;

ПрочитанныйТекст.Закрыть();

Запись текста из 1С в файл

Если ЗначениеЗаполнено(ПутьКФайлу) Тогда

ТекстовыйДокИзФайла = Новый ТекстовыйДокумент;
ТекстовыйДокИзФайла.ДобавитьСтроку("В траве сидел кузнечик");
ТекстовыйДокИзФайла.ДобавитьСтроку("Совсем как огуречик");
ТекстовыйДокИзФайла.ДобавитьСтроку("Зелененький он был");
ТекстовыйДокИзФайла.Записать(ПутьКФайлу, КодировкаТекста.UTF8);

Конецесли;

Заметим, что при записи текстового файла можно установить кодировку.

Копирование файла

Здесь все очень просто

КопироватьФайл(ПутьКФайлуИсточнику, ПутьКФайлуПриемнику);

Перемещение

ПереместитьФайл(ПутьКФайлуИсточнику, ПутьКФайлуПриемнику);

Удаление

Попытка
УдалитьФайлы("C:\Работа с файлами\статья.txt");
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;

Диалог выбора файла

В указанных выше примерах есть одно неудобство. Путь к файлу прописан жестко в коде. Чтобы выбрать файл интерактивно, существует объект ДиалогВыбораФайла, о котором речь пойдет ниже.

Объект ДиалогВыбораФайла служит для открытия файла (файлов), сохранения файла или выбора каталога в диалоге специального вида.

Например, выберем и откроем некоторый файл с расширением txt:
Задаем режим диалога выбора. Доступны три варианта: ВыборКаталога, Открытие, Сохранение

Режим = РежимДиалогаВыбораФайла.Открытие;

Создаем диалог

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

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Остались вопросы?

СПРОСИТЕ в комментариях!

Комментариев: 7 на “Работа с файлами в 1С 8.3 (8.2)
  1. Подскажите пожалуйста , как вывести значение в выбранной строке документа ( к примеру мне нужно запомнить лишь значение, которое располагается на 3 строчке txt-документа)

    Ответить

    • Цикл и условие: при значении строки равной 3 значение в строке присваиваете переменной.

      Ответить

    • Читаете файл. Если номер строки файла=3, то запоминаете значение.

      Ответить

  2. А как поместить файл на управляемую форму?

    Ответить

  3. А есть возможность открыть внешний файл из 1С под учетными данными (учетной записью ОС) другого пользователя. ВОт ситуация что нужно открыть для просмотра текстовый файл, но у пользователя нет прав на папку в которой этот файл находится. Могу я програмно в 1С указать под какой учеткой открывать файл?

    Ответить

  4. Добрый день. Подскажите, 1С поддерживает возможность загрузки файла с помощью обычного перетаскивания, как это можно сделать например при написании электронного письма, т.е. ты берешь файл и перетаскиваешь его в письмо, всё, ничего больше не надо нажимать или открывать каких-то окон, и не требуется нажатия доп. кнопок. Может есть такая форма для 1С?

    Ответить

  5. Добрый день. Подскажите — а можно в 1 С предприятие из нескольких строк, к которым прикреплены документы, вытащить сразу эти документы либо одним архивом, либо нужном количестве поштучно. Например, есть котрагент ООО «Лютик», по нему проведены 12 документов за весть 2023 год и к каждой проводке прикреплены «закрывашки». Появилась необходимость иметь эти «закрывашки» отдельно от 1С и кому-то их переслать. Можно ли скачать сразу все, прикрепленные «закрывашки» и не «выцарапывать» каждую отдельно?

    Ответить

Добавить комментарий:

Ваш адрес email не будет опубликован.