Modber Сообщество
профессионалов по 1С

Работа с текстовыми файлами



Платформы: 1С: Предприятие 8.3, 1С: Предприятие 8.2, 1С: Предприятие 8.1
Конфигурации: Все конфигурации
2013-01-20
2922 

 

Для формирования отчетов, лог файлов или обмена информацией через CVS файлы, требуется работать напрямую с текстовыми файлами.

Пример:

Процедура ЗаписатьЛог(ИмяФайла, Текст)
    Файл = Новый ЗаписьТекста(ИмяФайла,,,истина,);
    Файл.ЗаписатьСтроку(Текст);
    Файл.Закрыть();      
КонецПроцедуры

Дописывает в файл (переменная ИмяФайла которая содержит полный путь к файлу) новую строку (из переменной Текст).

 

ЛокальныйФайл = "c:\123.csv";
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ЛокальныйФайл);
Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл
        МассивСтр = РазложитьСтрокуВМассив(Текст.ПолучитьСтроку(НомерСтроки),";");
        СоздатьЗаказ(Стр);  
КонецЦикла;   

Читаем CSV файл, берем его строку и и через функцию "РазложитьСтрокуВМассив" преобразуем ее в массив, далее на основе массива создает документ Заказ покупателя.

 

PS

Вот функция которая разбирает строку на основе разделителей.


Функция РазложитьСтрокуВМассив(Знач Стр, Разделитель = ",") Экспорт
    МассивСтрок = Новый Массив();
    Если Разделитель = " " Тогда
        Стр = СокрЛП(Стр);
        Пока 1=1 Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = СокрЛ(Сред(Стр,Поз));
        КонецЦикла;
    Иначе
        ДлинаРазделителя = СтрДлина(Разделитель);
        Пока 1=1 Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = Сред(Стр,Поз+ДлинаРазделителя);
        КонецЦикла;
    КонецЕсли;        
КонецФункции




Бесплатная юридическая
консультация по телефону

8 (499) 350-80-26(Москва)
8 (812) 627-15-62(Спб)

звонок бесплатный

В центре внимания

Комментарии (1)