Имя: Пароль:
1C
1С v8
Объединение запросов: проблема с синтаксисом
,
0 ponaroshku
 
24.01.12
10:54
Здравствуйте! Подскажите по объединениям запросов, делаю запрос и объединение

ВЫБРАТЬ
   ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СчетДт.Код КАК СчетДт,
   ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СчетКт.Код КАК СчетКт,
   СУММА(ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.Сумма) КАК Сумма,
   NULL КАК СуммаВзаиморасчетовНачальныйОстаток,
   NULL КАК СуммаВзаиморасчетовКонечныйОстаток
ИЗ
...
ГДЕ
...
СГРУППИРОВАТЬ ПО
...
ОБЪЕДИНИТЬ
ВЫБРАТЬ
   NULL,
   NULL,
   NULL,
   СУММА(ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток) + СУММА(НДФЛКЗачетуОстаткиИОбороты.СуммаНДФЛКЗачетуНачальныйОстаток),
   СУММА(ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) + СУММА(НДФЛКЗачетуОстаткиИОбороты.СуммаНДФЛКЗачетуКонечныйОстаток)
ИЗ
...
ГДЕ
...


Далее заполняю макет, макет должен заполниться данными СуммаВзаиморасчетовНачальныйОстаток и СуммаВзаиморасчетовКонечныйОстаток

Заполняю через цикл
для......
   ОбластьЗаполнения.Параметры.НачальныйОстаток= ТекСтрока.СуммаВзаиморасчетовНачальныйОстаток;
...
конеццикла;


Однако в макет не выводит

Догадываюсь, что скорей всего не так стоит обращаться к данным запроса при объединении, но как правильно?
1 Wobland
 
24.01.12
10:55
(0) или выводит NULL?
2 DrShad
 
24.01.12
10:56
а где проблема с синтаксисом?
3 Wobland
 
24.01.12
10:56
(0) может, ты соединить как-то хочешь, а используешь объединение?
4 Wobland
 
24.01.12
10:56
(2) видал, сколько точек? ;)
5 Рэйв
 
24.01.12
10:57
(0)
//назови поля запроса как параметры в области
тРез=Запрос.Выполнить().Выгрузить();
Для Каждого Стр Из тРкз Цикл
  ОбластьЗаполнения.Параметры.Заполнить(Стр)
КонецЦикла;


Еще можно обратить внимание на условие ГДЕ.
Может у тебя вообще запрос пустой...
6 viktor_vv
 
24.01.12
10:58
Я так понимаю сверху надо еще ВЫБРАТЬ Сумма() и группировать.
7 DrShad
 
24.01.12
10:58
(4) но ведь запрос же у нее выполняется
8 viktor_vv
 
24.01.12
11:00
(6)+ Хотя нет. Во втором СчетДт нету. Это типа во втором подробные записи. Вы бы объяснили цель запроса.
9 Dmitrii
 
гуру
24.01.12
11:01
(0) >>  не так стоит обращаться к данным запроса при объединении

Работа с результатами запроса производится одинаково вне зависимости от того используется в запросе объединение или нет.

Скорее всего результат запроса пустой. Смотри отладчиком.
10 ponaroshku
 
24.01.12
11:02
(2) т.е. вывожу правильно? я решила, что я неправильно вывод делаю

(1) скорей всего

(5) запрос не пустой, другие значения проставляет (этого же запроса)

(6) сверху чего? не совсем поняла
11 Wobland
 
24.01.12
11:02
да вы что все? она в явном виде выбирает NULL КАК СуммаВзаиморасчетовНачальныйОстаток, а потом удивляется
12 DrShad
 
24.01.12
11:02
(9) тогда уж лучше консолью
13 Рэйв
 
24.01.12
11:03
(10)Пустой второй запрос. Из первого то значения могут быть, а если во второй ничего не попало, то сумм не будет
14 ponaroshku
 
24.01.12
11:03
(9) запрос в консоли выводится
по сути объединяется 2 запроса
результат первого выводится в макет, второго вывожу по аналогии- вывода нет
15 ponaroshku
 
24.01.12
11:04
(11) если я ставлю во втором запросе
(СУММА(ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток) + СУММА(НДФЛКЗачетуОстаткиИОбороты.СуммаНДФЛКЗачетуНачальныйОстаток)) как СуммаВзаиморасчетовНачальныйОстаток1,

далее в макет через
ОбластьЗаполнения.Параметры.НачальныйОстаток= ТекСтрока.СуммаВзаиморасчетовНачальныйОстаток1;

Получила
Поле объекта не обнаружено (СуммаВзаиморасчетовНачальныйОстаток1)
16 Wobland
 
24.01.12
11:05
(15) поля у тебя называются так, как ты их обозвала в первом запросе
17 Dmitrii
 
гуру
24.01.12
11:05
ИМХО, ТС неверно строит запрос. Подозреваю, что нужно соединение, а не объединение. Или два разных запроса, обрабатываемых отдельно.
18 ponaroshku
 
24.01.12
11:06
(16) воот, это я в СП прочитала, поэтому поставила СуммаВзаиморасчетовНачальныйОстаток просто

(17) скорей всего
19 Wobland
 
24.01.12
11:07
(18) да точно ;) делай соединение
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший