Имя: Пароль:
1C
1С v8
Вопрос про запрос
0 НайдуУбъю
 
21.08.12
17:43
Народ подскажите кто может(хочет) пжл.

Нужно из двух регистров ПродажиОбороты по двум периодам вытащить данные по контрагенту и номенклатуре. Чтобы контрагенты и номенклатура первой и второй таблицы отображались в первой и второй колонках соответственно. Ни объединение ни соединение мне не помогло. Подскажите плиз где я туплю:)
1 ОператорПК
 
21.08.12
17:46
"Объединить все" - рулит и разруливает :) может запрос покажешь?
2 НайдуУбъю
 
21.08.12
17:47
ща..
3 НайдуУбъю
 
21.08.12
17:51
ВЫБРАТЬ
   ПродажиОбороты.Контрагент.Родитель.Родитель КАК КаталогДилера,
   ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.REMAN
           ТОГДА "Reman"
       ИНАЧЕ ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Родитель
   КОНЕЦ КАК РодительНГ,
   СУММА(ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот, 0)) КАК СтоимостьОборот,
   СУММА(0) КАК СтоимостьОборот2
ИЗ
   РегистрНакопления.Продажи.Обороты(&СДаты, &НаДату, , Контрагент В ИЕРАРХИИ (&КаталогДилеров)) КАК ПродажиОбороты

СГРУППИРОВАТЬ ПО
   ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.REMAN
           ТОГДА "Reman"
       ИНАЧЕ ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Родитель
   КОНЕЦ,
   ПродажиОбороты.Контрагент.Родитель.Родитель

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ПродажиОбороты.Контрагент.Родитель.Родитель,
   ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.REMAN
           ТОГДА "Reman"
       ИНАЧЕ ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Родитель
   КОНЕЦ,
   СУММА(0),
   СУММА(ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот, 0))
ИЗ
   РегистрНакопления.Продажи.Обороты(&СДаты2, &НаДату2, , Контрагент В ИЕРАРХИИ (&КаталогДилеров)) КАК ПродажиОбороты

СГРУППИРОВАТЬ ПО
   ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.REMAN
           ТОГДА "Reman"
       ИНАЧЕ ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Родитель
   КОНЕЦ,
   ПродажиОбороты.Контрагент.Родитель.Родитель
ИТОГИ
   СУММА(СтоимостьОборот),
   СУММА(СтоимостьОборот2)
ПО
   ОБЩИЕ
4 ОператорПК
 
21.08.12
17:53
(3) креативно написано. а что не выходит?
5 olegves
 
21.08.12
17:55
ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.REMAN
           ТОГДА "Reman"
       ИНАЧЕ ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Родитель
   КОНЕЦ КАК РодительНГ

Строку со ссылкой хочешь подружить? Ну,ну
6 НайдуУбъю
 
21.08.12
17:57
щас покажу
7 НайдуУбъю
 
21.08.12
17:59
8 НайдуУбъю
 
21.08.12
18:00
(5) ну даже ссылка с ссылкой почему не дружат?
9 olegves
 
21.08.12
18:04
(7)
ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.REMAN
           ТОГДА ПродажиОбороты.Номенклатура.REMAN
       ИНАЧЕ ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Родитель
   КОНЕЦ КАК РодительНГ
...
ИТОГИ ПО
   ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.REMAN
           ТОГДА ПродажиОбороты.Номенклатура.REMAN
       ИНАЧЕ ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Родитель
   КОНЕЦ, ОБЩИЕ
10 olegves
 
21.08.12
18:05
к (9) вместо ВЫБОР поставь Алиас
11 ОператорПК
 
21.08.12
18:22
попробуй все поместить во временную таблицу, потом ее сгруппировать.
12 НайдуУбъю
 
22.08.12
09:21
(9) непрокатило...
13 НайдуУбъю
 
22.08.12
09:24
(11) тут проблем еще в том что кроме ОБЩИЕ надо группировать по КаталогДилера...
...либо как вариант группировать перед выводом в макет по подтаблице.
14 olegves
 
22.08.12
09:28
(12) в секции ИТОГИ (9) конструкцию ВЫБОР замени на РодительНГ
15 НайдуУбъю
 
22.08.12
09:32
(14)вот так вот чтоли:

ВЫБРАТЬ
   ПродажиОбороты.Контрагент.Родитель.Родитель КАК КаталогДилера,
   ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.REMAN
           ТОГДА ПродажиОбороты.Номенклатура.REMAN
       ИНАЧЕ ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Родитель
   КОНЕЦ КАК РодительНГ,
   СУММА(ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот, 0)) КАК СтоимостьОборот,
   СУММА(0) КАК СтоимостьОборот2
ИЗ
   РегистрНакопления.Продажи.Обороты(&СДаты, &НаДату, , Контрагент В ИЕРАРХИИ (&КаталогДилеров)) КАК ПродажиОбороты

СГРУППИРОВАТЬ ПО
   ПродажиОбороты.Контрагент.Родитель.Родитель,
   ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.REMAN
           ТОГДА ПродажиОбороты.Номенклатура.REMAN
       ИНАЧЕ ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Родитель
   КОНЕЦ

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ПродажиОбороты.Контрагент.Родитель.Родитель,
   ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.REMAN
           ТОГДА ПродажиОбороты.Номенклатура.REMAN
       ИНАЧЕ ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Родитель
   КОНЕЦ,
   СУММА(0),
   СУММА(ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот, 0))
ИЗ
   РегистрНакопления.Продажи.Обороты(&СДаты2, &НаДату2, , Контрагент В ИЕРАРХИИ (&КаталогДилеров)) КАК ПродажиОбороты

СГРУППИРОВАТЬ ПО
   ПродажиОбороты.Контрагент.Родитель.Родитель,
   ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура.REMAN
           ТОГДА ПродажиОбороты.Номенклатура.REMAN
       ИНАЧЕ ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Родитель
   КОНЕЦ
ИТОГИ
   СУММА(СтоимостьОборот),
   СУММА(СтоимостьОборот2)
ПО
   ОБЩИЕ,
   РодительНГ
16 olegves
 
22.08.12
09:39
(15) угу
17 НайдуУбъю
 
22.08.12
09:44
(16)ничего хорошего из этого не вышло, вот гляди с группировками по все реквизитам:

http://pixs.ru/showimage/dfdfdjpg_5705661_5580204.jpg
18 olegves
 
22.08.12
09:48
(17) результат запроса выгружай в дерево или обходи по группировкам и будет тебе щастье
19 НайдуУбъю
 
22.08.12
09:51
(18) а потом каждую ветку группировать с итогами по суммовым полям что ли?
20 НайдуУбъю
 
22.08.12
09:52
а почему он не может подружится с себе подобным внутри запроса?? чтоб каждая отличная от других строка шла одной строкой а не двумя...
21 Rovan
 
гуру
22.08.12
09:52
(4) надо делать не ОБЪЕДИНИТЬ ВСЕ, а ПОЛНОЕ СОЕДИНЕНИЕ
22 НайдуУбъю
 
22.08.12
09:54
(21) ооо друг, ты ломаешь мой сложившийся за последние два дня стереотип о ПОЛНОМ СОЕДИНЕНИИ
23 Rovan
 
гуру
22.08.12
09:55
(22) пробовал - не получилось ?
24 НайдуУбъю
 
22.08.12
09:56
даже не то чтобы пробовал, а мучался....
25 НайдуУбъю
 
22.08.12
09:59
просто смысл в полном соединение в том что в первой таблице может не быть таких контрагентов и номенклатуры как во второй, поэтому в итоговой таблице будет фигурировать сумма без каталогаДилера и РодителяНГ, если например их брать из первой таблицы...
26 olegves
 
22.08.12
10:01
(20) он уже подружился, остается тебе с ним подружиться, немного включив голову. Если не поможет, посмотри примеры типовых по обходу запросов по группировкам.
27 НайдуУбъю
 
22.08.12
10:02
а если в конструктор добавлять еще две таблицы СпрКонтрагенты и СпрНоменклатура, чтобы иметь полное описание всех возможных данных в результирующей таблице, то контруктор не даст правильно задать связи, по каким причинам я так и не понял...
28 Rovan
 
гуру
22.08.12
10:11
(25) всё просто - в таких случаях пишут так:
ВЫБРАТЬ
ЕСТЬNULL( Таблица1.Контрагент, Таблица2.Контрагент ) КАК Контрагент,
...
29 НайдуУбъю
 
22.08.12
10:24
(28) о как, возьму на заметочку...))
30 Rovan
 
гуру
22.08.12
10:55
(29) давай уж добьем твой запрос!   делов на 5 минут !!
31 НайдуУбъю
 
22.08.12
11:06
да вот додумал все таки уже запрос, как грит olegves в (26), ведь итоги по родителюНГ уже и так являются одной строкой, что в общем то и нужно, просто не брать дальнейшую детализацию и все...оуе))
(30) а твой вариант тоже неплох, на будущее можно взять на вооружение!!)))
так что спасибо всем кто потратил свое время)))
Закон Брукера: Даже маленькая практика стоит большой теории.