Имя: Пароль:
1C
 
Сохранить результат запроса в файл
0 code10
 
09.07.24
20:21
Здравствуйте, возник такой вопрос: возможно ли в одной процедуре выполнить запрос, создать на его основании таблицу значений, а потом в другой процедуре записать результат запроса в файл?
1 code10
 
09.07.24
20:27
Собственно сам запрос:

Объект.товары.Очистить();
Запрос = новый Запрос;
Запрос.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
             |    ПриобретениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
             |    ПриобретениеТоваровУслуг.Дата КАК Дата,
             |    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод,
             |    ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура1
             |ИЗ
             |    Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
             |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
             |        ПО ПриобретениеТоваровУслугТовары.Ссылка = ПриобретениеТоваровУслуг.Ссылка
             |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
             |        ПО ПриобретениеТоваровУслугТовары.Номенклатура = ШтрихкодыНоменклатуры.Номенклатура
             |ГДЕ
             |    ПриобретениеТоваровУслуг.Дата МЕЖДУ &ПериодНачало И &ПериодКонец";    
Запрос.УстановитьПараметр("ПериодНачало", Объект.НачалоПериода);
Запрос.УстановитьПараметр("ПериодКонец", Объект.КонецПериода);
результат = запрос.Выполнить().Выбрать();
пока результат.Следующий() Цикл
    новыйэл = Объект.товары.добавить();
    новыйэл.номенклатура = результат.Номенклатура;
    новыйэл.дата = результат.Дата;
    новыйэл.штрихкод = результат.Штрихкод;
КонецЦикла;


Можно ли как-то это выгрузить в файл?
2 Garykom
 
гуру
09.07.24
20:31
Можно
3 code10
 
09.07.24
20:48
(2) если есть возможность, то скажите как, пожалуйста
либо скажите как искать, пытался найти никак не мог
4 Garykom
 
гуру
09.07.24
20:49
6 d4rkmesa
 
09.07.24
22:45
(0) Хорошее тестовое задание, пробуйте, это несложно.
Как пример вот: https://www.levindp.ru/1candjson/
Хотя, я предпочитаю массив структур в json сериализовывать без последовательной записи в цикле.
7 Garykom
 
гуру
09.07.24
22:56
(6) слабо
вот https://helpf.pro/faq/view/1373.html
последнюю строку заменяем на Записать ))
8 H A D G E H O G s
 
09.07.24
23:03
(6) Как то все через одно место. Почему не так?

    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ ПЕРВЫЕ 100
    |    Номенклатура.Ссылка КАК Ссылка,
    |    Номенклатура.Код КАК Код,
    |    Номенклатура.Наименование КАК Наименование
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура";
    ТаблицаДанных=Запрос.Выполнить().Выгрузить();
    
    Запись=Новый ЗаписьJSON();
    Запись.УстановитьСтроку();
    СериализаторXDTO.ЗаписатьJSON(Запись,ТаблицаДанных);
    Текст=Запись.Закрыть();
9 OldCondom
 
10.07.24
04:12
(8)ужас какой.
11 H A D G E H O G s
 
10.07.24
06:52
(9) мискузи?
12 Кирпич
 
10.07.24
08:29
(11) Это он свой ник прочитал.
Можно наверное и результат запроса в файл записывать. Без перевода в ТЗ. Типа память экономить.
13 H A D G E H O G s
 
10.07.24
09:15
(12) они одинаковы в памяти
14 maxab72
 
10.07.24
09:21
"Можно наверное и результат запроса в файл записывать." снимок памяти в бинарник?
15 Valdis2007
 
10.07.24
09:27
(14) "снимок памяти в бинарник?"...

ага потом зипануть и отправить в другую базу по почте))
16 ЖНЕЦ
 
10.07.24
10:58
ТаблицаДанных=Запрос.Выполнить().Выгрузить();

ИсточникДанных   = Новый ОписаниеИсточникаДанных(ТаблицаДанных);
                
ПостроительОтчета = Новый ПостроительОтчета;
ПостроительОтчета.ИсточникДанных = ИсточникДанных;
                
ПостроительОтчета.Выполнить();
                
ТП=Новый ТабличныйДокумент;
ПостроительОтчета.Вывести(ТП);
      
ТП.Записать(КаталогВременныхФайлов() +"ЖНЕЦ_МОЛОДЕЦ.XLSX", ТипФайлаТабличногоДокумента.XLSX);
17 Garykom
 
гуру
10.07.24
11:18
(16) баян, смотри (7)
18 Garykom
 
гуру
10.07.24
11:19
Но кстати да
Странно что у ТаблицаЗначений нет еще метода .Записать()
19 Garykom
 
гуру
10.07.24
11:20
(18)+ Который при указании типа файла "xls" работал аналогично (7)(16)
А если параметр "json" или "xml" аналогично (8)
20 youalex
 
10.07.24
11:21
(16) В Построитель можно сразу РезультатЗапроса запихать, без ТЗ
21 Garykom
 
гуру
10.07.24
11:23
(12) Типа
ЗначениеВСтрокуВнутр(Запрос.Выполнить())
?
22 ЖНЕЦ
 
10.07.24
11:26
ИсточникДанных   = Новый ОписаниеИсточникаДанных(Запрос.Выполнить());