Имя: Пароль:
1C
 
запрос к двум ТЧ разных документов
0 dron4ikkk
 
21.10.14
10:03
Есть два документа : док1 и док2 у каждого этого дока есть ТЧ1 у док1 и ТЧ2 у док2. Необходимо получить данные из 2-ух документов: оборудование и номенклатура. Каким образом это сделать как объединить результаты запроса?

Вот запрос, который получает из док1 ТЧ1 данные: оборудование и номенклатуру, НО как объединить допустим этот результат запроса с другим аналогичным запросом?
"ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    док1.Оборудование КАК Об,
    |    док1.Номенклатура КАК Ном
    |ИЗ
    |    Документ.док1.ТЧ1 КАК ТаблЧасть1
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.док1 КАК документ
    |        ПО (ТаблЧасть1.Ссылка = документ.Ссылка)
    |ГДЕ
    |    документ.Ссылка.Склад.Ссылка = &Ссылка";
1 VladZ
 
21.10.14
10:04
Зачем "вот эти нелепые телодвижения": ЛЕВОЕ СОЕДИНЕНИЕ Документ.док1 КАК документ ?
2 Нахожусь в оппозиции
 
21.10.14
10:05
3 dron4ikkk
 
21.10.14
10:06
(1) ну как оптимизировать запрос тогда, подскажи
4 an-korot
 
21.10.14
10:11
(2) все правильно сказал, примеров полно, тебе походу готовый код нужен ? ))) хитрый ты наш.
5 an-korot
 
21.10.14
10:14
и судя по тому что ты с таким вопросом обращаешься,  про то что через команду "объединить" нельзя совмещать табличные части ты уже знаешь ))))
6 an-korot
 
21.10.14
10:17
самое главное ты даже не покажешь по каким элементам ты хочешь совместить свои документы :(
лично я хрустальный шар с собой не взял, извини бро.
7 dron4ikkk
 
21.10.14
10:21
(6) связать по оборудованию и номенклатуре
8 Ёпрст
 
21.10.14
10:21
(0) замени левое соединение на объеденить все с запросом к второму документу..
9 an-korot
 
21.10.14
10:23
(8) схожу за попкорном
10 Kamas
 
21.10.14
10:26
(5) а почему нельзя??
11 Skom
 
21.10.14
10:32
выбрать
док.ном,
док.об,
из док1 как док

объединить все

выбрать
док.ном,
док.об,
из док2 как док
12 Skom
 
21.10.14
10:33
как то так
13 Ёпрст
 
21.10.14
10:37
(10) религия видать, не разрешает использовать union
14 Kerk
 
21.10.14
10:37
(11) Не так, но попытка хорошая :)
15 Kamas
 
21.10.14
10:38
(13) аа ну тогда понятно
16 Kamas
 
21.10.14
10:39
(0) нарисуй табличку что ты хочешь видеть в итоге твоих мучений
17 Skom
 
21.10.14
10:39
(14) ну я же код весь не буду приводить
18 Kerk
 
21.10.14
10:41
(17) Оно то понятно, за полную версию запроса нужно отправить смс на номер iLove1C, но запрос не полон по ТЗ из (0). :)
19 Skom
 
21.10.14
10:42
(18) не нуди, я показал пример использования ОБЪЕДИНИТЬ
20 an-korot
 
21.10.14
10:50
(10) (13) потому что нарисуйте запрос и вы увидете что вам напишет ситсема, когда вы попытаетесь 1 имя присвоить переменным из 2х запросов :))) что ты там про религию говорил (13)?
А иначе вы получите в каждой строке не значение элемента из строки документа, а таблицу внутри которой будут находится значения, дорогие мои атеисты. и много толку от такого?
21 Skom
 
21.10.14
10:51
(20) фигню пишешь
22 ВРедная
 
21.10.14
10:52
(20) О.О
23 Skom
 
21.10.14
10:52
А.А
24 Любопытная
 
21.10.14
10:52
(20) Если нужны данные из ТЧ документа, всегда лучше обращаться напрямую к таблице ТЧ документа, а не самого документа. Тогда таких чудес не случится.
Или я не о том?
25 Ёпрст
 
21.10.14
10:53
(20) бредите
26 an-korot
 
21.10.14
10:56
(25) (21) ребята )) да код в студию и скрин с результатом ;) раз я в бреду. Накидать его дело 10 секунд ;)
27 Ёпрст
 
21.10.14
10:57
На вот, развлекайся

     "ВЫБРАТЬ
     |    Док.Количество КАК Количество,
     |    Док.Номенклатура КАК Номенклатура
     |ИЗ
     |    Документ.РеализацияТоваровУслуг.Товары КАК Док
     |
     |ОБЪЕДИНИТЬ ВСЕ
     |
     |ВЫБРАТЬ
     |    Док.Номенклатура,
     |    Док.Количество
     |ИЗ
     |    Документ.ПоступлениеТоваровУслуг.Товары КАК Док"
28 an-korot
 
21.10.14
10:57
(24) напрямую? это не 77 с прямыми запросами ))) тут запросы восмерки в обсуждении.
29 Ёпрст
 
21.10.14
10:58
Ну только, во втором запросе (или в первом) нужно строки выборки поменять местами
30 Любопытная
 
21.10.14
11:00
(28) Вы бредите, мсье?
31 Ёпрст
 
21.10.14
11:01
(30) бухает видать, или побочное явление с кагорчика
32 an-korot
 
21.10.14
11:01
(27) дату отфильтруй ) с 10 по 12 число
33 an-korot
 
21.10.14
11:03
(27) да просто фильтр на дату доков
34 Любопытная
 
21.10.14
11:03
35 Ёпрст
 
21.10.14
11:03
(32) чего ?
36 Любопытная
 
21.10.14
11:04
(31) Ну а вдруг мы просто чего не знаем? Что уж так сразу... бухает. Мож фича какая новая, а я не в курсе
37 Skom
 
21.10.14
11:04
38 Skom
 
21.10.14
11:04
ах, опередили, я тормоз((
39 Skom
 
21.10.14
11:06
(35) он переживает что фильтр не накладывается, видимо
40 an-korot
 
21.10.14
11:07
(34) а фильтр через дату а не ссылку на документ
41 Skom
 
21.10.14
11:08
(32),(33) каждый запрос фильтруй отдельно, как надо
Есть одно НО!
При использовании "ОБЪЕДИНИТЬ ВСЕ"
необходимо, что бы селект лист был одинаковым.
т.е. одинаковое количество полей должно быть.
42 Kamas
 
21.10.14
11:08
(32) в чем проблема есть ссылка у тч сможешь через точку к дате добраться можеш сначала левое соединение отобраных доков с тч в врт запхать
43 Kamas
 
21.10.14
11:09
(41) конструктор автоматом нул нарисует
44 Skom
 
21.10.14
11:09
ВЫБРАТЬ ПЕРВЫЕ 5
    Реализация.Номенклатура,
    ИСТИНА КАК Реализация
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК Реализация
ГДЕ
        <Твои условия по первому доку>
ОБЪЕДИНИТЬ ВСЕ     

ВЫБРАТЬ ПЕРВЫЕ 5
    Поступление.Номенклатура,
    ЛОЖЬ КАК Реализация
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК Поступление
45 Skom
 
21.10.14
11:09
ГДЕ
        <Твои условия по второму доку>
46 Skom
 
21.10.14
11:10
(40), смотри (44) и (45) как одно целое
47 an-korot
 
21.10.14
11:10
вы обращаетесь сразу к табличной части документа, вы не делаете фильтрацию на контрика или дату, потому что у вас нету таких элементов  :)
48 Любопытная
 
21.10.14
11:11
(40) а какая хрен разница?
49 Любопытная
 
21.10.14
11:11
(47) Чего?
50 Skom
 
21.10.14
11:12
(47)
ВЫБРАТЬ ПЕРВЫЕ 5
    Реализация.Номенклатура,
    ИСТИНА КАК Реализация
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК Реализация
ЛЕВОЕ СОЕДИНЕНИЕ ДОК ПО ДОК.ССЫЛКА = Реализация.ССылка
ГДЕ
        <Твои условия по первому доку>
ОБЪЕДИНИТЬ ВСЕ    

ВЫБРАТЬ ПЕРВЫЕ 5
    Поступление.Номенклатура,
    ЛОЖЬ КАК Реализация
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК Поступление
ЛЕВОЕ СОЕДИНЕНИЕ ДОК ПО ДОК.ССЫЛКА = Поступление.ССылка
ГДЕ
        <Твои условия по второму доку>
51 Skom
 
21.10.14
11:12
мне уже чертовски интересно, куда нас заведет кривая :-)
52 Ёпрст
 
21.10.14
11:13
(47) завязывай ужо с наркотой
53 Skom
 
21.10.14
11:13
(47) Спайс?
54 Любопытная
 
21.10.14
11:13
55 Ёпрст
 
21.10.14
11:15
На вот, развлекайся

     "ВЫБРАТЬ
     |    Док.Количество КАК Количество,
     |    Док.Номенклатура КАК Номенклатура
     |ИЗ
     |    Документ.РеализацияТоваровУслуг.Товары КАК Док
     |ГДЕ
     |    Док.Ссылка.Дата = &Дата
     |    И Док.Ссылка.Проведен    
     |    И Док.Ссылка.Контрагент = &Контрагент
     |
     |ОБЪЕДИНИТЬ ВСЕ
     |
     |ВЫБРАТЬ
     |    Док.Количество,
     |    Док.Номенклатура
     |ИЗ
     |    Документ.ПоступлениеТоваровУслуг.Товары КАК Док
     |ГДЕ
     |    Док.Ссылка.Дата = &Дата
     |    И Док.Ссылка.Проведен
     |    И Док.Ссылка.Контрагент = &Контрагент
     |    И Док.Ссылка.Организация = &Организация"
56 an-korot
 
21.10.14
11:15
(46) спасибо
57 Kamas
 
21.10.14
11:16
an-korot блин чел только на мисте больше 2х лет сидит
58 an-korot
 
21.10.14
11:17
(53) в *опу тебе  асй, Ском, я о тебе  что то говорил? раз сам нюхаешь про других не суди
59 Skom
 
21.10.14
11:18
(58) вот человек, сначала спасибо говорит, потом в *опу посылает)
60 an-korot
 
21.10.14
11:18
Ёпрст, да все все уже, больше не нада
61 Kamas
 
21.10.14
11:19
(59) ))) спасибо идите в *опу(Прикольно звучит)
62 an-korot
 
21.10.14
11:19
(59) Ском, спасибо, просто про спайс обидно :((((((((((((((
63 Skom
 
21.10.14
11:19
(62) ты чего нервный-то такой. расслабься) это ж интернет, тут вечно угарает народ, особенно на плодотворной почве).
64 Skom
 
21.10.14
11:20
не серьезно на свой счет воспринимать все. ясень пень, что тут никто не думает что ты реально нарик.
Просто таким образом высказывают свое удивление тому, что для тебя в новинку такая простецкая задача с запросами.
65 Любопытная
 
21.10.14
11:20
Дык и что? Разобрались, не?
66 Skom
 
21.10.14
11:21
(62) Как говорится, пожалуйста, идите в *опу )))
))))))))))))))))))
67 an-korot
 
21.10.14
11:21
(65) не знаю как автор темы, думаю после нашего обсуждения даже дурак поймет как делать :)))
68 Kamas
 
21.10.14
11:23
(66) идите замени на пройдите))))
69 an-korot
 
21.10.14
11:23
(64) Я в 8 редко захожу, поэтому и бывают такие заскоки, неделю назад пытался 2 дока склеить, зараза писал что объеденять табличные части разных доков нельзя %-/ ну я тогда другим путем пошел, мучатся с выгрузкой в вирт таблицу не стал, оказывается я неправильно данные выбирал, вот зараза.
70 Skom
 
21.10.14
11:23
Вот Ёпрст любитель обращаться через 3 точки, я о 3-х точках забыл еще из книжек по 7.7
Лично мне удобнее через соединение, хотя, подозреваю, что оптимизатору запроса пофигу, через соединить или как ёпрст
71 Kerk
 
21.10.14
11:25
(66) Ну вот уже лучше, а то "не нуди", да "не нуди". :)
72 an-korot
 
21.10.14
11:25
(70) так построитель по умолчанию код выдает, епрст даже не заморачивался.
73 Skom
 
21.10.14
11:26
(72) не пользуюсь построителем. Всегда сам пишу запрос.
74 Ёпрст
 
21.10.14
11:27
(72) если это не составной тип то и пофик на это, один хрен будет тоже левое соединение потом на выходе - смысл в явном указывании нет - только больше кода
75 Skom
 
21.10.14
11:27
Мне не нравится как построитель формирует запрос.
Может быть иногда основу я делаю в построителе, а дальше уже сам переделываю для себя.
76 Kerk
 
21.10.14
11:27
(73) Это не ты писал запросы в ЗУП-е?
А то там как не запрос, так целый эпос страниц на 5-10...
77 an-korot
 
21.10.14
11:28
(73) ну в 8 такие запросы в построителе 10 секунд накидать, в принципе удобно.
78 dron4ikkk
 
21.10.14
11:28
Ребят я уже сделал если честно, извините
79 Skom
 
21.10.14
11:29
(76), я наоборот за минимизацию.
Вот например: v8: Запрос, запустался с СОЕДИНЕНИЯМИ

долго мучался, но в итоге получился минимальный код, вполне себе удобочитаемый
80 Skom
 
21.10.14
11:30
(78), да ты тут уже совсем не причем )))) иди работай! :-)
81 dron4ikkk
 
21.10.14
11:30
(55) все верно
82 an-korot
 
21.10.14
11:30
(80) :-D))))))
83 an-korot
 
21.10.14
11:31
(75) так есть коды которые построитель не осилит ))
например исключить из выборки данные которые есть в другой выборке %) построитель такого не сможет тут только руками.
84 Kerk
 
21.10.14
11:34
(83) HAVING ещё в конструкторе не сделать просто.
Халявят разработчики конструктора...
85 an-korot
 
21.10.14
11:35
(79) вот как раз твоя тема,  как исключить из множества значения, принадлежащие другому множеству :))) вчера код накатал )))
86 dron4ikkk
 
21.10.14
11:37
кстати запрос полностью провалился когда селект лист был таков:

"ВЫБРАТЬ
     |    Док.Количество КАК Количество,
     |    Док.Номенклатура КАК Номенклатура

И

"ВЫБРАТЬ
     |    Док.Номенклатура КАК Номенклатура,
     |    Док.Количество КАК Количество
87 an-korot
 
21.10.14
11:37
(84) ну  по моему через ГДЕ можно любое условие задать им получается having не нужен ;)
88 an-korot
 
21.10.14
11:38
(86) ты издеваешся я секунду назад тестовый файл c кодом стер :-D
89 Skom
 
21.10.14
11:38
(85) у меня наоборот, как включить в запрос, а не исключить)
(87) ГДЕ используется ДО группировок, а ХЭВИНГ после!
все зависит о того что и как ты хочешь получить и как сгруппировать
90 dron4ikkk
 
21.10.14
11:40
(88) все нормально, сделал  объединение.
91 an-korot
 
21.10.14
11:40
(89) так  вроде тоже самое: включаем все чего нет в другом запросе
смысл 1 и тот же просто звучит по другому ))
92 an-korot
 
21.10.14
11:41
(90) заработал? если выборка большая поставь условия чтобы лишнее не цеплять ;)
93 dron4ikkk
 
21.10.14
11:42
(92) да
94 an-korot
 
21.10.14
11:43
(93) ну отлично ))
95 dron4ikkk
 
21.10.14
11:43
посмотрите лучше запрос в ЗУПЕ по расчетным листам...там настоящие спецы делали
96 an-korot
 
21.10.14
11:45
(89) подозреваю что через вложенный множно чтото сделать, но конечно с готовой командой было бы удобней.
97 an-korot
 
21.10.14
11:47
(95) большой  запрос беда, контроля 0 %  
;)
98 Skom
 
21.10.14
11:52
(97) главное запрос удобочитаемым сделать и тогда просто его отлаживать.
99 Skom
 
21.10.14
11:52
+ можно же каменты ставить в запрос, кстати, всегда снабжаю свои запросы каментами, если они большие или сложные.
100 Kerk
 
21.10.14
11:59
(99) 100!
Это хорошо, но конструктор, гад, их трет.