2025-10-07 13:11:18 +05:00

3.3 KiB
Raw Blame History

title, slug
title slug
Чтение TXT, CSV общие-обмен-данными-чтение-файлов-примеры/чтение-txt-csv

Вариант с ЧтениеТекста


&НаКлиенте
Асинх Процедура ПрочитатьФайл(Команда)
    
    Расширение = "txt";

    ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;
    ПараметрыДиалога.Заголовок = "Выберите файл";
    ПараметрыДиалога.Фильтр = ФильтрПоРасширению(Расширение);
    
    ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(,,,ПараметрыДиалога);
    Если ОписаниеФайла = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    АдресДанных = ОписаниеФайла.Адрес;

    Расширение = ОписаниеФайла.СсылкаНаФайл.Файл.Расширение;

    ПрочитатьФайлНаСервере(АдресДанных, Расширение);

КонецПроцедуры

&НаСервере
Процедура ПрочитатьФайлНаСервере(АдресДанных, Расширение)

    ПутьКФайлу = ПолучитьИмяВременногоФайла(Расширение);
    
    ДанныеФайла = ПолучитьИзВременногоХранилища(АдресДанных);
    ДанныеФайла.Записать(ПутьКФайлу);
    
    Текст = Новый ЧтениеТекста;
    Текст.Открыть(ПутьКФайлу, КодировкаТекста.UTF8);
    
    ТекСтрока = Текст.ПрочитатьСтроку();
    
    НомерСтроки = 1;     
    
    Пока ТекСтрока <> Неопределено Цикл

        // обработка

        ТекСтрока = Текст.ПрочитатьСтроку(); 
        НомерСтроки = НомерСтроки + 1;
        
    КонецЦикла;
    
    Текст.Закрыть();  

    УдалитьФайлы(ПутьКФайлу);

КонецПроцедуры 

Вариант с ТекстовыйДокумент

&НаКлиенте
Асинх Процедура ПрочитатьФайл(Команда)
    Текст = Новый ТекстовыйДокумент;
    
    Оповещение = Новый ОписаниеОповещения("ПрочитатьФайлЗавершение", ЭтотОбъект, Текст);
    Текст.НачатьЧтение(Оповещение, Объект.ПутьКФайлу, КодировкаТекста.UTF8);
КонецПроцедуры 

&НаКлиенте
Процедура ПрочитатьФайлЗавершение(Текст) Экспорт
    
    КоличествоСтрок = Текст.КоличествоСтрок();
    
    Для НомерСтроки = 1 По КоличествоСтрок Цикл
        
        ТекСтрока = Текст.ПолучитьСтроку(НомерСтроки);
        
        // Обработка
            
    КонецЦикла;
    
КонецПроцедуры