|
пакеты запроса из СКД в массив? | ☑ | ||
|---|---|---|---|---|
|
0
zippygrill
13.05.11
✎
13:38
|
Всем привет,
ести запрос в СКД. в нем несколько пакета запроса. если сформировать отчет программно то можно выгрузить эти пакеты запросов в массиве как-то? |
|||
|
1
zippygrill
13.05.11
✎
13:40
|
+(0) для дальнейшей работы с массивом ))
|
|||
|
2
detec
13.05.11
✎
13:41
|
1. Выгпузить пакет нельзя.
2. Непонятно, зачем это нужно, если СКД выводит результат в готовом виде. |
|||
|
3
zippygrill
13.05.11
✎
13:47
|
в Хрусталевой написанно что только в дерево значений но ничего про пакетов.
(2)ну вот нужно )) |
|||
|
4
zippygrill
13.05.11
✎
13:55
|
up
|
|||
|
5
Necessitudo
13.05.11
✎
13:58
|
РезультатЗапроса (QueryResult)
Выгрузить (Unload) Синтаксис: Выгрузить(<ТипОбхода>) Параметры: <ТипОбхода> (необязательный) Тип: ОбходРезультатаЗапроса. Задает тип обхода записей в получаемой выборке. Значение по умолчанию: Прямой Возвращаемое значение: Тип: ТаблицаЗначений; ДеревоЗначений. Если тип обхода задан Прямой, результат выгружается в таблицу значений, в противном случае в дерево значений. Описание: Создает таблицу значений (или дерево значений) и копирует в нее все записи набора. Доступность: Сервер, толстый клиент, внешнее соединение. Пример: ТаблицаРезультатов = РезультатЗапроса.Выгрузить(); |
|||
|
6
Necessitudo
13.05.11
✎
13:59
|
Другое дело, что можно преобразовать ту же таблицу значений в массив.
|
|||
|
7
zippygrill
13.05.11
✎
14:02
|
(6) хорошо а как быть с пакетами запроса из запрос?
|
|||
|
8
Necessitudo
13.05.11
✎
14:03
|
Так ты делаешь все через скд или Построитель отчета?
|
|||
|
9
zippygrill
13.05.11
✎
14:03
|
скд
|
|||
|
10
Necessitudo
13.05.11
✎
14:09
|
Ну а как ты его формируешь? Просто открываешь форму да передаешь параметры?
|
|||
|
11
zippygrill
13.05.11
✎
14:15
|
пока что вот так ))
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; //ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ЭлементыФормы.Результат.Очистить(); ДокументРезультат = ЭлементыФормы.Результат; ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); |
|||
|
12
Necessitudo
13.05.11
✎
14:21
|
Я вот думаю - зачем высасывать результаты запроса из компоновщика , если куда проще создать его заново? Или так уж критично для производительности это?
|
|||
|
13
zippygrill
13.05.11
✎
14:25
|
ммммм могу показать как у меня сейчас работает и как хочу делать.
|
|||
|
14
Necessitudo
13.05.11
✎
14:28
|
Ну попробуй. Может заодно кто-нить проходящий мимо и подскажет что)
|
|||
|
15
zippygrill
13.05.11
✎
14:35
|
Вот как у меня сейчас. Выгружаю пакеты в массив. потом нужный мне пакет и массива выгружаю в тз для дальнеищей работы.
теперь как тот же запрос(который ниже), только в СКД, выгрузить в массиве? )) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВзаиморасчетыСКонтрагентамиОбороты.Контрагент, | ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента, | ВзаиморасчетыСКонтрагентамиОбороты.Регистратор КАК Документ, | ВзаиморасчетыСКонтрагентамиОбороты.Период, | ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот, 0) КАК Оборот, | ЕСТЬNULL(_СведенияОДокументе.НакладнаяДнейОтсрочки, 0) КАК Отсрочка, | ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиОбороты.Период, ДЕНЬ, ЕСТЬNULL(_СведенияОДокументе.НакладнаяДнейОтсрочки, 0)) КАК ДатаОплатыПоДоговору, | ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.Номер КАК НомерДокРеализации |ПОМЕСТИТЬ общданные |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты( | &Нач, | &Кон, | Регистратор, | ДоговорКонтрагента.ВидДоговора = &ВидДоговора | И Контрагент В ИЕРАРХИИ (&Контрагент) | И Организация = &Организация | И ДоговорКонтрагента = &Договор) КАК ВзаиморасчетыСКонтрагентамиОбороты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений._СведенияОДокументе КАК _СведенияОДокументе | ПО ВзаиморасчетыСКонтрагентамиОбороты.Регистратор = _СведенияОДокументе.Документ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | общданные.Контрагент КАК Контрагент, | общданные.ДоговорКонтрагента, | общданные.Документ КАК Документ, | общданные.Период КАК ДатаДокумента, | общданные.Отсрочка, | общданные.ДатаОплатыПоДоговору, | общданные.Оборот КАК СтоимостьТовара, | общданные.НомерДокРеализации |ИЗ | общданные КАК общданные |ГДЕ | общданные.Оборот > 0 | |УПОРЯДОЧИТЬ ПО | Контрагент, | ДатаДокумента |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | общданные.Контрагент КАК Контрагент, | общданные.ДоговорКонтрагента, | общданные.Документ КАК ДокПлатежа, | общданные.Период КАК ДатаПлатежа, | -общданные.Оборот КАК СуммаПлатежа |ИЗ | общданные КАК общданные |ГДЕ | общданные.Оборот < 0 | |УПОРЯДОЧИТЬ ПО | Контрагент, | ДатаПлатежа |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | общданные.Контрагент КАК Контрагент, | общданные.ДоговорКонтрагента, | 0 КАК СуммаВзаиморасчетовОстаток |ПОМЕСТИТЬ оборотконтрагентидоговор |ИЗ | общданные КАК общданные |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | ВложенныйЗапрос.ДоговорКонтрагента, | ВложенныйЗапрос.Контрагент, | СУММА(ЕСТЬNULL(ВложенныйЗапрос.СуммаВзаиморасчетовОстаток, 0)) КАК СуммаВзаиморасчетовОстаток |ИЗ | (ВЫБРАТЬ | ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента КАК ДоговорКонтрагента, | ВзаиморасчетыСКонтрагентамиОстатки.Контрагент КАК Контрагент, | ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетовОстаток | ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки( | &ДатаВхОстатков, | ДоговорКонтрагента.ВидДоговора = &ВидДоговора | И Контрагент В ИЕРАРХИИ (&Контрагент) | И Организация = &Организация | И ДоговорКонтрагента = &Договор) КАК ВзаиморасчетыСКонтрагентамиОстатки | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | оборотконтрагентидоговор.ДоговорКонтрагента, | оборотконтрагентидоговор.Контрагент, | NULL | ИЗ | оборотконтрагентидоговор КАК оборотконтрагентидоговор) КАК ВложенныйЗапрос | |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.ДоговорКонтрагента, | ВложенныйЗапрос.Контрагент"; Запрос.УстановитьПараметр("ВидДоговора", ВидДоговора); Запрос.УстановитьПараметр("Кон", ТекущаяДата()); Запрос.УстановитьПараметр("Контрагент", Контрагент); Запрос.УстановитьПараметр("Нач", Нач); Граница = Новый Граница(Нач, ВидГраницы.Исключая); Запрос.УстановитьПараметр("ДатаВхОстатков", Граница); Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Договор", Договор); МассивРезультатов = Запрос.ВыполнитьПакет(); тзРеализации = МассивРезультатов[1].Выгрузить(); тзОплаты = МассивРезультатов[2].Выгрузить(); тзКонтрагентыДоговорыИОстаток = МассивРезультатов[4].Выгрузить(); |
|||
|
16
detec
13.05.11
✎
15:00
|
(15) Зачем в снеговике выгружать результаты пакетного запроса в кучу таблиц значений "для дальнейшей работы"? Не будет ли более правильным так построить алгоритм, чтобы в запросе сделать все расчёты и выгрузить в одну итоговую ТЗ, скажем, для заполнения набора записей при проводку?
|
|||
|
17
zippygrill
13.05.11
✎
15:05
|
(16) ааааа распределение платежей к документам отгрузке по методу фифо, в запросе, это нереально для меня :)
|
|||
|
18
IronDemon
13.05.11
✎
15:13
|
(17) Как два пальца
|
|||
|
19
zippygrill
13.05.11
✎
15:55
|
(17) покажите как-то?
|
|||
|
20
IronDemon
13.05.11
✎
16:03
|
||||
|
21
zippygrill
13.05.11
✎
16:32
|
я их уже давно смотрел но это не решение для моего отчета (:
|
|||
|
22
Леха Дум
13.05.11
✎
16:53
|
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(СКД, КомпоновщикНастроекСклада.Настройки,,,); ЗапросСклада = Новый Запрос; Для каждого Параметр Из Макет.ЗначенияПараметров Цикл ЗапросСклада.УстановитьПараметр(Параметр.Имя, Параметр.Значение); КонецЦикла; ЗапросСклада.Текст = Макет.НаборыДанных[0].Запрос; РезультатСклада = ЗапросСклада.ВыполнитьПакет(); |
|||
|
23
zippygrill
17.05.11
✎
14:47
|
(22)четко четко.
а не подскажите еще как временные таблицы выгрузить? |
|||
|
24
detec
17.05.11
✎
14:50
|
(23) СП украли?
|
|||
|
25
Aprobator
17.05.11
✎
14:56
|
(23) тоже из СКД что ли? Во народ зажигает вначале недели то.
|
|||
|
26
zippygrill
17.05.11
✎
15:19
|
(24)я бы не стал спрашивать если ответ в СП )
(25) нда СКД. |
|||
|
27
Aprobator
17.05.11
✎
15:26
|
(26) а вот нафига? Ни разу такой потребности на свое практике не встречал.
|
|||
|
28
zippygrill
17.05.11
✎
15:29
|
конечно это опционально в данном случае, но вот интереса ести).
|
|||
|
29
Aprobator
17.05.11
✎
15:32
|
а типа можно ли почесать правой ногой за левым ухом? Попробуй.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |