Выгрузка результата запроса в текстовый файл с разделителями

regsermalp 5 1
Процедура ВыгрузитьВыборкуЗапросаВТекстовыйФайл(ВыборкаЗапроса, стрИменаКолонок, стрАдресФайла, Разделитель = Неопределено) Экспорт
  //Выгрузка результата запроса в текстовый файл с разделителями
  //ВыборкаЗапроса = Запрос.Выполнить().Выбрать(); 
  //стрИменаКолонок - строка, имена колонок через запятую из которых нужно сохранить данные в файл + порядок колонок
  //стрАдресФайла - строка
  //Разделитель -  по-умолчанию: Символы.Таб; можно использовать Символы. ВК (CR),ВТаб (VTab),НПП (NBSp),ПС (LF),ПФ (FF),Таб (Tab)
  //    При загрузке строку можно будет разложить в массив для дальнейшей работы, РазложитьСтрокуВМассивПодстрок( ТекСтр, Символы.Таб).
  
  Если Разделитель = Неопределено Тогда
    Разделитель = Символы.Таб;
  КонецЕсли; 
  
  Текст = Новый ЗаписьТекста(стрАдресФайла, КодировкаТекста.ANSI);
  
  стрИменаКолонок = РазложитьСтрокуВМассивПодстрок(стрИменаКолонок, ",");
  чКоличествоКолонок = стрИменаКолонок.Количество();
  чНомерКолонки = 1;
  
  Пока ВыборкаЗапроса.Следующий() Цикл  
    ОбработкаПрерыванияПользователя();
    Для каждого стрИмяПоля Из стрИменаКолонок Цикл
      Значение = ВыборкаЗапроса[стрИмяПоля];
      
      Если ТипЗнч(Значение) = Тип("Дата") Тогда
        Значение = Формат(Значение,"ДЛФ=D");
      КонецЕсли; 
      
      стрРазделитель = ?(чКоличествоКолонок = чНомерКолонки, "", Разделитель);
      Текст.ЗаписатьСтроку(Строка(Значение) + стрРазделитель); 
      
      чНомерКолонки = чНомерКолонки + 1;
    КонецЦикла; 
  КонецЦикла;  
  
  Текст.Закрыть();
  
КонецПроцедуры
0

См. также

Выгрузка запроса в XML. Выгрузка объекта

ПредставлениеЗаписиРезультатовВыполненияОпераций (БСП)

РазделительПакетаЗапросов (БСП)

РезультатЗапросаВСтруктуру (БСП)

Прочитать текст из файла

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

ИзвлечьТекстИзТекстовогоФайла (БСП)

Запрос в SQL базу

Модератору