Имя: Пароль:
1C
1С v8
Выгрузка результата запроса в текстовый файл.
0 1Cancer
 
18.08.15
17:58
Суть задания такова, сделать запрос, и вывести его в текстовый файл.
Запрос сидит на стороне сервера, а текстовый файл хочет получить клиент.
Все перечитал, ничего не работает... Видимо нужно идти каким - то другим путем. И так, как же дать пользователю возможность получить этот текстовый файл.
&НаСервере
Процедура Команда1НаСервере()
            Запрос = Новый Запрос;
    Запрос.Текст ="ВЫБРАТЬ ПЕРВЫЕ 33
                  |    ""1     ДОГОВОР"" КАК ДОГОВОР,
                  |    ПаспортПроекта.НомерКредитногоДоговора как Номер,
                  |    ПаспортПроекта.ДатаКредитногоДоговора КАК Дата,
                  |    ПаспортПроекта.СрокВыдачи как Срок,
                  |    ПаспортПроекта.Договора как Сумма,
                  |    ПаспортПроекта.Ссылка КАК Ссылка
                  |ИЗ
                  |    Справочник.ПаспортПроекта КАК ПаспортПроекта
           .........
...........................
.............................
                              
Результат = Запрос.Выполнить().Выгрузить();
ЗначениеВРеквизитФормы(Результат, "ТЗ")  ;
      
    Конецпроцедуры

&НаКлиенте
???
???
???
1 Живой Ископаемый
 
18.08.15
18:02
это типовая?
2 mogul
 
18.08.15
18:04
&НаКлиенте
Процедура ПолучитьФайл()
  ПолучитьИзВременногоХранилища(ПолучитьФайлНаСервере()).Записать("c:\temp\1.txt");
КонецПроцедуры

&НаСервере
Функция ПолучитьФайлНаСервере()
  ..
  имя = ПолучитьИмяВременногоФайла();
  т =  Новый  ЗаписьТекста(имя);
  выб = Запрос.Выполнить.Выбрать();
  Пока выб.Следующий() Цикл
    т.ДобавитьСтроку(выб.Договор+";"+выб.НОмер+...)
  КонецЦикла;
  т.Закрыть();
  Возврат ПоместитьВоВременноеХранилище(Новый  ДвоичныеДанные(имя), УникальныйИдентификатор)
КонецФункции
3 Живой Ископаемый
 
18.08.15
18:09
Ну либо код
  выб = Запрос.Выполнить.Выбрать();
  Пока выб.Следующий() Цикл
    т.ДобавитьСтроку(выб.Договор+";"+выб.НОмер+...)
  КонецЦикла;

Заменить на
Результат = Запрос.Выполнить().Выгрузить();
СтрокаХМЛ = ТиповыеОтчеты.СериализоватьОбъектXDTO(Результат);
т.ДобавитьСтроку(СтрокаХМЛ)
4 1Cancer
 
18.08.15
18:34
(2) спасибо, почему то пишет, что Поле объекта не обнаружено
5 Живой Ископаемый
 
18.08.15
18:41
Вместо двух точек - твой запрос
6 1Cancer
 
18.08.15
18:48
(5) это я понял ;D
7 Живой Ископаемый
 
18.08.15
18:52
2(6) Ну тогда пойми и то, что тут ни у кого нет хрустального шара чтобы угадать, какое поле у твоего объекта не обнаружено
8 1Cancer
 
18.08.15
18:59
(7) да, думал, что написал. Поля выполнить. П.с. спасиб за помощь =3
9 Живой Ископаемый
 
18.08.15
19:00
Запрос.Выполнить().Выбрать();
10 1Cancer
 
18.08.15
19:16
(9) да, пропустил скобочки, теперь он говорит "метод объекта не обнаружен(добавить строку)"
хотя это текстовый документ и этот метод у него есть =/
11 1Cancer
 
18.08.15
19:35
(9)  т.ЗаписатьСтроку(выб.Договор+";"+выб.НОмер)
Вот так все работает, у этого элемента есть только такой метод =3 (2) всем спасиб. =3
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс