|
Объединить два запроса в ТЗ | ☑ | ||
---|---|---|---|---|
0
Радужный_пони
26.11.14
✎
11:47
|
Добрый день! Может мой вопрос покажется вам слишком легким,но у меня он вызвал затруднения. Проблема такая: Мне необходимо было две таблицы значений,объединить в третью.Я это сделал,но данные выводятся не красиво.
ТЗ1= Новый ТаблицаЗначений; ТабДок= Новый ТабличныйДокумент; Макет= ПолучитьМакет("Макет1"); Шапка= Макет.ПолучитьОбласть("Шапка"); ТабДок.Вывести(Шапка); СтрокаОтчета= Макет.ПолучитьОбласть("ДоходыРасходы"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТиповойОбороты.Субконто3 КАК Подразделения, | ТиповойОбороты.Субконто1 КАК СтатьиДоходов, | ТиповойОбороты.СуммаОборотКт КАК СуммаДохода |ИЗ | РегистрБухгалтерии.Типовой.Обороты(&НачалоПериода, &КонецПериода, , Счет В (&СчетДох), , Организация = &Организация, , ) КАК ТиповойОбороты |ИТОГИ | СУММА(СуммаДохода) |ПО | ОБЩИЕ, | Подразделения"; Запрос.УстановитьПараметр("ВыбСчетРасх", ПланыСчетов.Типовой.НайтиПоКоду("7010")); Запрос.УстановитьПараметр("ВыбСчетРасх", ПланыСчетов.Типовой.НайтиПоКоду("7210")); Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода)); Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); Запрос.УстановитьПараметр("Организация", Справочники.Организации.НайтиПоКоду("000000001")); Запрос.УстановитьПараметр("Счет7010", ПланыСчетов.Типовой.НайтиПоКоду("7010")); Запрос.УстановитьПараметр("СчетДох", ПланыСчетов.Типовой.НайтиПоКоду("6010")); Результат1 = Запрос.Выполнить(); ТЗ1= Результат1.Выгрузить(); Запрос2 = Новый Запрос; Запрос2.Текст = "ВЫБРАТЬ | ВЫБОР | КОГДА ТиповойОбороты.Счет = &Счет7010 | ТОГДА ТиповойОбороты.Субконто3 | ИНАЧЕ ТиповойОбороты.Субконто2 | КОНЕЦ КАК Подразделения, | ТиповойОбороты.Субконто1 КАК СтатьиРасходов, | ТиповойОбороты.СуммаОборотДт КАК СуммаРасхода |ИЗ | РегистрБухгалтерии.Типовой.Обороты(, , , Счет В (&ВыбСчетРасх), , , , ) КАК ТиповойОбороты |ИТОГИ | СУММА(СуммаРасхода) |ПО | Подразделения"; Запрос2.УстановитьПараметр("ВыбСчетРасх", ПланыСчетов.Типовой.НайтиПоКоду("7010")); Запрос2.УстановитьПараметр("ВыбСчетРасх", ПланыСчетов.Типовой.НайтиПоКоду("7010")); Запрос2.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода)); Запрос2.УстановитьПараметр("НачалоПериода", НачалоПериода); Запрос2.УстановитьПараметр("Организация", Справочники.Организации.НайтиПоКоду("000000001")); Запрос2.УстановитьПараметр("Счет7010", ПланыСчетов.Типовой.НайтиПоКоду("7010")); Запрос2.УстановитьПараметр("СчетДох", ПланыСчетов.Типовой.НайтиПоКоду("6010")); Результат2 = Запрос2.Выполнить(); ТЗ2=Результат2.Выгрузить(); ТЗ3= Новый ТаблицаЗначений; ТЗ3=ТЗ1.Скопировать(); ТЗ3.Колонки.Добавить("СтатьиРасходов"); ТЗ3.Колонки.Добавить("СуммаРасхода"); Для Каждого Строка ИЗ ТЗ2 Цикл Стр = ТЗ3.Добавить(); Стр.Подразделения= Строка.Подразделения; Стр.СтатьиРасходов= Строка.СтатьиРасходов; Стр.СуммаРасхода= Строка.СуммаРасхода; КонецЦикла; Возврат ТЗ3; http://s019.radikal.ru/i624/1411/bc/c3f8a84e7864.jpg Получается Сначала выводится ТЗ1,а потом ТЗ2,а нужно одновременно. Подскажите что делать? Может есть способ как это дело объединить? |
|||
1
Радужный_пони
26.11.14
✎
11:48
|
||||
2
Господин ПЖ
26.11.14
✎
11:48
|
>Может есть способ как это дело объединить?
можно. причем сразу в запросе |
|||
3
Euguln
26.11.14
✎
11:48
|
Один запрос и ОБЪЕДИНИТЬ
|
|||
4
busy1
26.11.14
✎
11:49
|
||||
5
mehfk
26.11.14
✎
11:49
|
UNION ALL
|
|||
6
busy1
26.11.14
✎
11:49
|
Собственно говоря, у Вас нет решающего слова ОБЪЕДИНИТЬ ВСЕ
|
|||
7
Господин ПЖ
26.11.14
✎
11:49
|
ОБЪЕДИНИТЬ ВСЕ
тогда уж |
|||
8
Радужный_пони
26.11.14
✎
11:50
|
делал,не получается потом это все выглядит вот так
http://s019.radikal.ru/i621/1411/ac/8f6ff14f568d.jpg |
|||
9
Господин ПЖ
26.11.14
✎
11:50
|
>Собственно говоря, у Вас нет решающего слова ОБЪЕДИНИТЬ ВСЕ
человеку нужна походу некая шахматка... "а нужно одновременно" |
|||
10
Радужный_пони
26.11.14
✎
11:51
|
Может возможно это объединить не в запросе?
|
|||
11
Ёпрст
26.11.14
✎
11:53
|
(0) используй полное соединение в тексте запроса.
|
|||
12
Радужный_пони
26.11.14
✎
11:53
|
Что ни у кого нет идей на этот счет?
|
|||
13
Ёпрст
26.11.14
✎
11:54
|
заместо юниона
|
|||
14
busy1
26.11.14
✎
11:54
|
Попробуйте прочитать информацию по ссылкам, это важно. Получите минимальный ликбез, потом используя консоль запросов попробуйте сделать запрос с словом ОБЪЕДИНИТЬ ВСЕ. Так то готового решения Вам тут не предоставят. Но если Вам будет спокойнее объединить это можно и в запросе и с помощью ТЗ. (11) будет не очень красиво.
|
|||
15
an-korot
26.11.14
✎
11:55
|
1 - сделать 1 запрос через объеденить
2 - после 2 запроса добавить 2 колонки в 1 таблицу и туда добавить новыестроки из 2 запроса, свернуть таблицу по окончании. |
|||
16
busy1
26.11.14
✎
11:56
|
(15) +1
|
|||
17
Радужный_пони
26.11.14
✎
11:59
|
Делал через Объединить и Объединить ВСЕ,опять же криво получается,поэтому пришлось делать два разных запроса,в две разные ТЗ и потом их "смешивать" в третью ТЗ
|
|||
18
busy1
26.11.14
✎
12:02
|
я пас.
|
|||
19
Радужный_пони
26.11.14
✎
12:03
|
Ладно,буду искать иные пути решения) Спасибо всем за участие)
|
|||
20
Господин ПЖ
26.11.14
✎
12:03
|
(17) тебе вредно программировать
|
|||
21
Радужный_пони
26.11.14
✎
12:05
|
(20) да я пока только учусь))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |