Имя: Пароль:
1C
 
Возможно ли левое соединение в обычном запросе 7.7?
0 igork1966
 
06.07.06
11:42
Собственно сложные запросы никогда в 7.7 неписал. А тут понадобилось...
Не догоню можно ли сделать что-то вроде левого соединения.

Есть запрос типа:


"Период с ВыбНачПериода по ВыбКонПериода;
|Аналитика1 = Регистр.МойРегистр.Аналитика1;
|Аналитика2 = Регистр.МойРегистр.Аналитика2;
|Док = Регистр.МойРегистр.ТекущийДокумент;
|Количество = Регистр.МойРегистр.Количество;
|Функция КоличествоРасход = Расход(Количество);
|Группировка МойДок Упорядочить по ТТН.НомерДок;
|Группировка Аналитика1 Упорядочить по Аналитика1.Код Все ВошедшиеВЗапрос;
|Условие(Аналитика2 = ВыбАналитика2);
|"
)

Требуется подцепить левым соединением МойРегистр2 по Документу.
Получить Сумму _по_всем_ записям в МойРегистр2 по документу.
1 igork1966
 
06.07.06
11:43
"|Группировка МойДок Упорядочить по ТТН.НомерДок;"
=
"|Группировка МойДок Упорядочить по МойДок.НомерДок;"
2 Ёпрст2
 
06.07.06
11:46
Ниасилил, что есть "левое" соединение?
3 Alka
 
06.07.06
11:49
(2) возможно это этот вариант:

|Док = Регистр.МойРегистр.ТекущийДокумент,Регистр.МойРегистр2.ТекущийДокумент;

и так далее?
4 Alka
 
06.07.06
11:50
Кстати, чтобы не создавать тему, вопрос, можно ли в запросе написать типа этого

|Док = Документ.ПриходнаяНакладная.МойРеквизит,ЗаданныйРеквизит;


где ЗаданныйРеквизит = 0; - перед запросом?
5 igork1966
 
06.07.06
11:51
(3) Это я пробовал.
При обходе по группировке Аналитика1 получаем 1 запись с пустым Аналитика1.
Которое мне как-бы нафик ненужен.
6 Ёпрст2
 
06.07.06
11:52
(4) Тогда уж и в вычисление функции нужно воткнуть второй регистр:
|Количество = Регистр.МойРегистр.Количество,Регистр.МойРегистр2.Количество;
|Функция КоличествоРасход = Расход(Количество);
7 igork1966
 
06.07.06
11:52
(2) Это "left join" из SQL.
8 Ёпрст2
 
06.07.06
11:53
(5) Документы в выборке получаются только при вычислении функции при запросе к регистру.
9 igork1966
 
06.07.06
11:53
(6) В МойРегистр2 нет количества, там сумма.
10 igork1966
 
06.07.06
11:57
(8) ?

Ну вот так я пробовал:

"Период с ВыбНачПериода по ВыбКонПериода;
|Аналитика1 = Регистр.МойРегистр.Аналитика1;
|Аналитика2 = Регистр.МойРегистр.Аналитика2;
|Количество = Регистр.МойРегистр.Количество;
|Док = Регистр.МойРегистр.ТекущийДокумент,Регистр.МойРегистр2.ТекущийДокумент;
|Сумма = Регистр.МойРегистр2.Количество;
|Функция КоличествоРасход = Расход(Количество);
|Функция СуммаРасход = Расход(Сумма);
|Группировка МойДок Упорядочить по ТТН.НомерДок;
|Группировка Аналитика1 Упорядочить по Аналитика1.Код Все ВошедшиеВЗапрос;
|Условие(Аналитика2 = ВыбАналитика2);
|"

В результате получаю "лишний"(для меня) обход по Аналитика1.
11 Ёпрст2
 
06.07.06
11:59
(9) Вот так должно взлететь:
|Док = Регистр.МойРегистр.ТекущийДокумент,Регистр.МойРегистр2.ТекущийДокумент;
|Количество = Регистр.МойРегистр.Количество;
|Сумма = Регистр.МойРегистр2.Сумма;
|Функция КоличествоРасход = Расход(Количество);
|Функция СуммаРасход = Расход(Сумма);
|Группировка Док;
12 Ёпрст2
 
06.07.06
12:00
(10) Что есть МойДок ?
13 igork1966
 
06.07.06
12:04
(12) Да это я описался "МойДок" = "Док"

(11) Ну и чем это отличается от (10)?  Отсутствием вложенной группировки по Аналитика1? А мне она нужна.
14 Ёпрст2
 
06.07.06
12:06
(13) Когда отправлял, не было 10...
ЗЫ:Попробуй  ВсеВошедшие в запрос уберать
15 Alka
 
06.07.06
12:07
(14) А на (4) не можете ответить?
16 Ёпрст2
 
06.07.06
12:08
(15) Имхо,так не прокатит.
(13) Да, а нахрена 2 регистра остатков? И какие измерения в них?
17 igork1966
 
06.07.06
12:11
(14) Мысль. ;-)
Однако мне нужно "ВсеВошедшие в запрос" чтобы развернуть по вертикали отчет,
невыгружая его в таблицу.
Ну идело принципа, хочу понять как работает.
18 igork1966
 
06.07.06
12:14
(16) Один регистр это остатки на складах, а второй расчеты с покупателем. ;-)
По вертикали разворачиваю отчет по документам(документ,сумма по доку и др.) а по горизонтали по товарам. ;-)
19 igork1966
 
06.07.06
12:30
(14) Все равно получалю лишний обход по Аналитике1.
(без "всевошедшие в запрос")
20 evGenius
 
06.07.06
12:42
(19) Нет в 1С такого счастья. Можно только типа UNION сделать.
21 igork1966
 
06.07.06
12:55
(20) Ага, тогда понятно почему лишний обход по аналитике получаем. ;-)
Обидно, но ладно. ;-)

Спасибо.
Основная теорема систематики: Новые системы плодят новые проблемы.