Имя: Пароль:
1C
1С v8
СКД - помогите связать наборы данных
,
0 grayshadow
 
25.03.13
23:05
конфа Комплексная автоматизация. Надо в одном отчете показать все заказы покупателей, привязанные к ним реализации, а также реализации, сделанные не по заказам. К одному заказу может быть привязано несколько реализаций. Нужны итоги по ресурсам Сумма заказа и Сумма продажи в разрезе контрагентов и договоров.

Делаю на СКД. Сначала выбрала все одним запросом - примерно так (не вдаваясь в детали):

ВЫБРАТЬ
Заказ,
Реализация,
СуммаЗаказа,
СуммаПродажи
Из РегистрНакопления.ЗаказыПокупателей.Обороты...
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты...
ОБЪЕДИНИТЬ
ВЫБРАТЬ
null,
Реализация,
null,
СуммаПродажи
ИЗ РегистрНакопления.Продажи.Обороты...
где ЗаказПокупателя есть null

Есть проблема - в итогах суммы заказов двоятся. Пытаюсь перейти на наборы данных. Создала набор-объединение, в нем наборы Заказы и РеализацииБезЗаказов. Не пойму, как к Заказам левым соединением прицепить РеализацииПоЗаказам? Это вообще-то возможно?:)
1 shuhard
 
25.03.13
23:06
(0)[ВЫБРАТЬ
null,]
не взлетит
2 grayshadow
 
25.03.13
23:14
все взлетает, могу написать полный код запроса:) только итоги кривые
3 Max Street
 
25.03.13
23:29
В наборе-объединении левым соеднинением никак, т.к данные из запросов объединяются полностью, а не связываются.
Я бы создал 2 набора-запрос(1-заказы, 2-продажи). На закладке Связи наборов данных наборы связал левым соединением
4 grayshadow
 
25.03.13
23:33
(3) а как тогда в рез-т попадут продажи не по заказам?
5 grayshadow
 
25.03.13
23:34
(3) с левым соединением они пролетят мимо
6 grayshadow
 
25.03.13
23:38
(5) есть бредовая идея добавить в набор Заказы строчку с заказ = null, а потом левым соединением цеплять Продажи:) но чтобы отборы работали, надо таких строчек делать на всех контрагентов по всем договорам... как-то это криво...
7 grayshadow
 
25.03.13
23:47
или... что такое вложенные схемы компоновки? если это оно, то во вложенную загнать Заказы и ПродажиПоЗаказам, а потом делать объединение с ПродажиБезЗаказов?
8 zladenuw
 
25.03.13
23:54
так 1 запрос.  Заказы левое соединение РеализацииПоЗаказам объединить все реализациБезЗаказа
9 grayshadow
 
25.03.13
23:56
(8) я с этого начала, не канает
если по заказу 2 реализации, сумма этого заказа 2 раза лезет в итоги
10 grayshadow
 
25.03.13
23:57
повторюсь - мне нужны:
1) ВСЕ заказы
2) ВСЕ реализации по заказам
3) ВСЕ реализации без заказов
11 zladenuw
 
26.03.13
00:03
(5) полное и будут у тебя все реализации
12 grayshadow
 
26.03.13
00:04
что, вложенные схемы компоновки никто не юзал?
мне бы просто понять, есть смысл туда копать или нет...
13 grayshadow
 
26.03.13
00:05
(11) наборы данных между собой разве могут полным соединяться?
14 hhhh
 
26.03.13
00:52
ВЫБРАТЬ

0

делай, Зачем null?
15 grayshadow
 
26.03.13
00:55
(14) что ни выбирай, запрос из (0) мне не нужен, потому что двоит итоги:) двоит не в той части где объединить, а в начале где левое соединение
16 hhhh
 
26.03.13
01:01
(15) это называется детский сад. Смотри предложение ПО в левом соединении. Какое там условие. Значит, одна запись в регистре ЗаказыПокупателей соответствует двум записям регистра продажи. Вот и двоится.
17 grayshadow
 
26.03.13
01:03
(16) класс, я бы сама не догадалась... а как сделать чтобы не двоилось? хрусталева пишет, что для этого в СКД сделаны наборы данных...
18 grayshadow
 
26.03.13
01:16
з.ы. выбрать максимум(СуммаЗаказа), а также отключить расчет итогов - прошу не предлагать:)))
19 zladenuw
 
26.03.13
01:18
как ты соединяешь продажи
20 grayshadow
 
26.03.13
01:19
банальнейшим образом
ПО ЗаказыПокупателейОбороты.ЗаказПокупателя = ПродажиОбороты.ЗаказПокупателя
21 hhhh
 
26.03.13
01:25
(20) делай через ОБЪЕДИНИТЬ всё-таки
22 grayshadow
 
26.03.13
01:28
(21) а кого с кем?:)
23 grayshadow
 
26.03.13
01:46
кажется придумала!
набор-объединение
 заказы
 РеализацииБезЗаказов (о_О)
набор-запрос РеализацииПоЗаказам

и связь наборов - по заказу

завтра попробую, щас уже не в состоянии:)))

всем спасибо за прочистку мозгов (не промывку)!:)
24 grayshadow
 
26.03.13
02:02
з.ы. а самое веселое будет - вязать к этому щастью еще и оплаты:
набор-объединение
 заказы
 РеализацииБезЗаказов (о_О)
 ОплатыБезЗаказовБезРеализаций
набор-запрос РеализацииПоЗаказам
набор-запрос ОплатыПоЗаказам
набор-запрос ОплатыПоРеализациямНоНеПоЗаказам

(у них взаиморасчеты по документам расчетов...)

можно делать ставки, взлетит - не взлетит:)))