8.х Выгрузка результата запроса в текстовый файл

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем sunnypearl, 23 дек 2009.

  1. TopicStarter Overlay
    sunnypearl
    Offline

    sunnypearl Опытный в 1С

    Регистрация:
    22 окт 2009
    Сообщения:
    59
    Симпатии:
    0
    Баллы:
    26
    Задача: данные запроса выгрузить в текстовый файл с разделителями табуляции.

    проблема в том, что строка получается достаточно длинная..
    когда пишу так:
    Код:
    Текст.ЗаписатьСтроку(РезультатДок.Контрагент, Формат((РезультатДок.Дата),"ДЛФ=D"), ...
    РезультатДок.Номер, РезультатДок.НоменклатураКод, РезультатДок.Номенклатура, ....
    РезультатДок.НоменклатураАртикул, РезультатДок.Количество, РезультатДок.Цена);
    
    
    ругается "слишком много параметров"

    поэтому попробовала иначе:
    Код:
    Текст.ЗаписатьСтроку(РезультатДок.Контрагент);
    Текст.ЗаписатьСтроку(Формат((РезультатДок.Дата),"ДЛФ=D"));
    Текст.ЗаписатьСтроку( РезультатДок.Номер);
    
    
    но это тоже не помогло....все сплошняком пишется...как перевести каретку на новую строку не могу нигде найти! подскажите!

    ниже вся процедура

    Код:
    Макет = ПолучитьМакет("Макет");
    
    Шапка	= Макет.ПолучитьОбласть("Шапка");
    Строка = Макет.ПолучитьОбласть("Строка");
    
    ТабДокумент = ЭлементыФормы.ТабДокумент;
    
    ТабДокумент.Очистить();
    
    Шапка.Параметры.Период = "с "+Формат(ДатаНач,"ДЛФ=DD")+" по "+Формат(ДатаКон,"ДЛФ=DD");
    
    ТабДокумент.Вывести(Шапка);
    
    
    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("ДатаНач",НачалоДня(ДатаНач));
    Запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаКон));
    Запрос.УстановитьПараметр("Организация",Организация);
    
    Запрос.Текст = 
    "ВЫБРАТЬ
    |	ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |	ПоступлениеТоваровУслугТовары.Количество КАК Количество,
    |	ПоступлениеТоваровУслугТовары.Цена КАК Цена,
    |	ПоступлениеТоваровУслугТовары.Ссылка.Номер КАК Номер,
    |	ПоступлениеТоваровУслугТовары.Ссылка.Дата КАК Дата,
    |	ПоступлениеТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
    |	ПоступлениеТоваровУслугТовары.Номенклатура.Код КАК НоменклатураКод,
    |	ПоступлениеТоваровУслугТовары.Номенклатура.Артикул КАК НоменклатураАртикул
    |ИЗ
    |	Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
    |ГДЕ
    |	ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |	И ПоступлениеТоваровУслугТовары.Ссылка.Организация = &Организация
    |
    |УПОРЯДОЧИТЬ ПО
    |	Контрагент,
    |	Номер,
    |	Дата,
    |	НоменклатураКод,
    |	Номенклатура,
    |	НоменклатураАртикул,
    |	Количество,
    |	Цена";
    
    
    
    Результат = Запрос.Выполнить().Выбрать();
    
    Текст = Новый ЗаписьТекста("c:\purchase.txt\", КодировкаТекста.ANSI, "	");
    
    
    РезультатДок = Запрос.Выполнить().Выбрать();
    Пока РезультатДок.Следующий() Цикл
    ОбработкаПрерыванияПользователя();
    Строка.Параметры.Конрагент = РезультатДок.Контрагент;
    Строка.Параметры.Дата = Формат((РезультатДок.Дата),"ДЛФ=D");
    Строка.Параметры.Номер = РезультатДок.Номер;
    Строка.Параметры.Неделя = НеделяГода(РезультатДок.Дата);
    Строка.Параметры.Код = РезультатДок.НоменклатураКод;
    Строка.Параметры.Наим = РезультатДок.Номенклатура;
    Строка.Параметры.Арт = РезультатДок.НоменклатураАртикул;
    Строка.Параметры.Колво = РезультатДок.Количество;
    Строка.Параметры.Цена = РезультатДок.Цена;
    
    Текст.ЗаписатьСтроку(РезультатДок.Контрагент);
    Текст.ЗаписатьСтроку(Формат((РезультатДок.Дата),"ДЛФ=D"));
    Текст.ЗаписатьСтроку( РезультатДок.Номер);
    ..................
    ТабДокумент.Вывести(Строка);
    КонецЦикла;
    
    
    Текст.Закрыть();
    
    
  2. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Код:
    Текст.ЗаписатьСтроку(РезультатДок.Контрагент);
    Текст.ЗаписатьСтроку(Символы.ПС);
    Текст.ЗаписатьСтроку(Формат((РезультатДок.Дата),"ДЛФ=D"));
    Текст.ЗаписатьСтроку(Символы.ПС);
    Текст.ЗаписатьСтроку( РезультатДок.Номер);
    Текст.ЗаписатьСтроку(Символы.ПС);
    
    
    Не проверял.
  3. TopicStarter Overlay
    sunnypearl
    Offline

    sunnypearl Опытный в 1С

    Регистрация:
    22 окт 2009
    Сообщения:
    59
    Симпатии:
    0
    Баллы:
    26
    lazy
    проверила, сработало!

    СПАСИБО

Поделиться этой страницей