Имя: Пароль:
1C
 
Выгрузить Данные из запроса, но не все
0 Point
 
22.05.09
10:01
Есть Запрос, в звпросе 3 группировка:
1. Поставщик
2. Товар
3. Движение

Обход результата идет по группировкам. Перед обходом группировки ТОВАР необходимо выгрузить все товары (куда угодно: Массив,ТЗ,СЗ). Можно ли это сделать, если да то как?????
1 СуперМега Монстр
 
22.05.09
10:02
Выполнить().Выгрузить()
?
2 Point
 
22.05.09
10:03
(1) Выполнить().Выгрузить(), это выгрузка всех данных
3 Ненавижу 1С
 
гуру
22.05.09
10:05
написать еще один запрос, где только товары
4 Господин ПЖ
 
22.05.09
10:05
пакетный запрос
5 Point
 
22.05.09
10:06
(3) нельзя, т.к. накладываются определенные условия
6 Point
 
22.05.09
10:06
(4) это как?
7 Aleksey_3
 
22.05.09
10:07
(2) А если потом свернуть?
8 Ненавижу 1С
 
гуру
22.05.09
10:07
(5) да ладно
9 Господин ПЖ
 
22.05.09
10:08
(6)

file:///C:/Program%20Files/1cv81/AddDoc/RU/V8AddDoc81.htm#Book_AK_Chap5_ProcWithQuery_Paket

а там доступна работа с результатами отдельных пакетов и врем. таблицы
10 Mitriy
 
22.05.09
10:09
(9) это про пакетные запросы, а в сабже обычный...
11 СуперМега Монстр
 
22.05.09
10:09
Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
12 Point
 
22.05.09
10:09
(8) во-первых отбираются не все документы, во вторых зачем мене нужен еще 1 запрос
13 Mitriy
 
22.05.09
10:10
(0) что мешает заполнить массив при обходе?
14 Господин ПЖ
 
22.05.09
10:10
(10) пускай заменит запрос. какие проблемы...
15 Point
 
22.05.09
10:10
(11) не в тему пишешь, читай (0) внимательнее
16 СуперМега Монстр
 
22.05.09
10:12
к (11)
Пока Выборка.Следующий() Цикл
                           
       //Сообщить(Выборка.НомерСтроки);
       
       ВыборкаПоСтроке = Выборка.Выбрать();
(15)это почему это?
17 Aleksey_3
 
22.05.09
10:14
(15) Выполнить().Выгрузить().Свернуть("Товар",)?
18 Point
 
22.05.09
10:16
Почему мне это надо!

В группировке товар происходит вычисление цены товара:

ЦенаПродажи = глВернутьЦенуДня(Товар, Константы.ОсновнаяКатегорияЦенПродажи.Получить(),РабочаяДата);
Если ЦенаПродажи > 0 Тогда
СуммаПрибыли = ОбъемЗакупкиСЗаказами*(ЦенаПродажи);
СуммаПрибылиПоПоставщику = СуммаПрибылиПоПоставщику+СуммаПрибыли;  
КонецЕсли;

Функция глВернутьЦенуДня - работает очень медленно, хотелось бы выдрать все товары из группировки и выполнить заполнение цен 1раз для одной группировки
19 СуперМега Монстр
 
22.05.09
10:19
(18)а про выборка.сбросить() ты знаешь? ))))
20 Point
 
22.05.09
10:27
(19) да, но это же придется каждую Группировку проходить 2 раза, а кол-во записей в каждой группировке примерно 500-600, думаю что это не подходит
21 Point
 
22.05.09
10:29
(18)+ может как-то можно выгрузить все товары из результата запроса?
22 73
 
22.05.09
10:32
(21) См. пакетный запрос - ВыполнитьПакет().
Суть: несколько запросов выполняются пакетом, возвращается массив результатов.
23 СуперМега Монстр
 
22.05.09
11:28
(21) ты  (11) (16) смотрел?
Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Выборка.Следующий() Цикл
                           
       //Сообщить(Выборка.НомерСтроки);

       
       ВыборкаПоСтроке = Выборка.Выбрать();

///и тут выгрузи
24 Point
 
22.05.09
11:30
(23) каким образом? Обходом?
Если обходом, читай внимательно (18)
25 Point
 
22.05.09
11:35
(24)+ Во избежании повторений, делаем акцент на слово ВЫГРУЗИТЬ, а не Выбрать
26 СуперМега Монстр
 
22.05.09
11:43
(25)во избежании непрофессионализма советую изучить что есть выборка с параметром ОбходРезультатаЗапроса.ПоГруппировкам

потрать время - не пожалеешь
27 Point
 
22.05.09
11:55
(26) хорошо, допустим я новичек.
Поясни мне тогда каким сбособом можно выгрузить из "ВыборкаПоСтроке" (взято из (23)), что означает "///и тут выгрузи"???
28 Point
 
22.05.09
11:57
(27)+ на сколько я помню, то Выгрузить() применимо только к РезультатуЗапроса, но не к ВыборкаИзРезультатаЗапроса